00001 00023 #ifndef MBEDTLS_RIPEMD160_H 00024 #define MBEDTLS_RIPEMD160_H 00025 00026 #if !defined(MBEDTLS_CONFIG_FILE) 00027 #include "config.h" 00028 #else 00029 #include MBEDTLS_CONFIG_FILE 00030 #endif 00031 00032 #include <stddef.h> 00033 #include <stdint.h> 00034 00035 #if !defined(MBEDTLS_RIPEMD160_ALT) 00036 // Regular implementation 00037 // 00038 00039 #ifdef __cplusplus 00040 extern "C" { 00041 #endif 00042 00046 typedef struct 00047 { 00048 uint32_t total[2]; 00049 uint32_t state[5]; 00050 unsigned char buffer[64]; 00051 } 00052 mbedtls_ripemd160_context; 00053 00059 void mbedtls_ripemd160_init( mbedtls_ripemd160_context *ctx ); 00060 00066 void mbedtls_ripemd160_free( mbedtls_ripemd160_context *ctx ); 00067 00074 void mbedtls_ripemd160_clone( mbedtls_ripemd160_context *dst, 00075 const mbedtls_ripemd160_context *src ); 00076 00082 void mbedtls_ripemd160_starts( mbedtls_ripemd160_context *ctx ); 00083 00091 void mbedtls_ripemd160_update( mbedtls_ripemd160_context *ctx, 00092 const unsigned char *input, size_t ilen ); 00093 00100 void mbedtls_ripemd160_finish( mbedtls_ripemd160_context *ctx, unsigned char output[20] ); 00101 00102 /* Internal use */ 00103 void mbedtls_ripemd160_process( mbedtls_ripemd160_context *ctx, const unsigned char data[64] ); 00104 00105 #ifdef __cplusplus 00106 } 00107 #endif 00108 00109 #else /* MBEDTLS_RIPEMD160_ALT */ 00110 #include "ripemd160.h" 00111 #endif /* MBEDTLS_RIPEMD160_ALT */ 00112 00113 #ifdef __cplusplus 00114 extern "C" { 00115 #endif 00116 00124 void mbedtls_ripemd160( const unsigned char *input, size_t ilen, 00125 unsigned char output[20] ); 00126 00132 int mbedtls_ripemd160_self_test( int verbose ); 00133 00134 #ifdef __cplusplus 00135 } 00136 #endif 00137 00138 #endif /* mbedtls_ripemd160.h */