|
|
1.1.1.5 ! root 1: #ifndef TC_HEADER_Crypto_Ripemd160 ! 2: #define TC_HEADER_Crypto_Ripemd160 1.1 root 3: 1.1.1.4 root 4: #if defined(__cplusplus) 5: extern "C" 6: { 7: #endif 8: 1.1.1.5 ! root 9: #define RIPEMD160_BLOCK_LENGTH 64 1.1 root 10: 1.1.1.5 ! root 11: typedef struct RMD160Context ! 12: { ! 13: unsigned __int32 state[5]; 1.1.1.4 root 14: #ifndef TC_NO_COMPILER_INT64 1.1.1.5 ! root 15: unsigned __int64 count; 1.1.1.4 root 16: #else 1.1.1.5 ! root 17: unsigned __int32 count; 1.1.1.4 root 18: #endif 1.1.1.5 ! root 19: unsigned char buffer[RIPEMD160_BLOCK_LENGTH]; 1.1 root 20: } RMD160_CTX; 21: 1.1.1.5 ! root 22: void RMD160Init (RMD160_CTX *ctx); ! 23: void RMD160Transform (unsigned __int32 *state, const unsigned __int32 *data); ! 24: void RMD160Update (RMD160_CTX *ctx, const unsigned char *input, unsigned __int32 len); ! 25: void RMD160Final (unsigned char *digest, RMD160_CTX *ctx); 1.1 root 26: 1.1.1.4 root 27: #if defined(__cplusplus) 28: } 29: #endif 30: 1.1.1.5 ! root 31: #endif // TC_HEADER_Crypto_Ripemd160
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.