Home | History | Annotate | Download | only in base
      1 /*
      2  * SHA-1 in C
      3  * By Steve Reid <sreid (at) 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