1 /* 2 * SHA-1 in C 3 * By Steve Reid <sreid@sea-to-sky.net> 4 * 100% Public Domain 5 * 6 */ 7 8 // Ported to C++, Google style, under namespace rtc. 9 10 #ifndef WEBRTC_BASE_SHA1_H_ 11 #define WEBRTC_BASE_SHA1_H_ 12 13 #include <stdint.h> 14 #include <stdlib.h> 15 16 namespace rtc { 17 18 struct SHA1_CTX { 19 uint32_t state[5]; 20 // TODO: Change bit count to uint64_t. 21 uint32_t count[2]; // Bit count of input. 22 uint8_t buffer[64]; 23 }; 24 25 #define SHA1_DIGEST_SIZE 20 26 27 void SHA1Init(SHA1_CTX* context); 28 void SHA1Update(SHA1_CTX* context, const uint8_t* data, size_t len); 29 void SHA1Final(SHA1_CTX* context, uint8_t digest[SHA1_DIGEST_SIZE]); 30 31 #endif // WEBRTC_BASE_SHA1_H_ 32 33 } // namespace rtc 34