blob: f3242b34989a14baf8a836b930dc532dc0e724b1 [file] [log] [blame]
henrike@webrtc.orgf0488722014-05-13 18:00:26 +00001/*
2 * SHA-1 in C
3 * By Steve Reid <sreid@sea-to-sky.net>
4 * 100% Public Domain
5 *
6*/
7
Peter Boström0c4e06b2015-10-07 12:23:21 +02008// Ported to C++, Google style, under namespace rtc.
henrike@webrtc.orgf0488722014-05-13 18:00:26 +00009
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020010#ifndef RTC_BASE_SHA1_H_
11#define RTC_BASE_SHA1_H_
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000012
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020013#include <stdint.h>
14#include <stdlib.h>
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000015
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020016namespace rtc {
17
18struct 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
27void SHA1Init(SHA1_CTX* context);
28void SHA1Update(SHA1_CTX* context, const uint8_t* data, size_t len);
29void SHA1Final(SHA1_CTX* context, uint8_t digest[SHA1_DIGEST_SIZE]);
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000030
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020031} // namespace rtc
Henrik Kjellanderc0362762017-06-29 08:03:04 +020032
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020033#endif // RTC_BASE_SHA1_H_