blob: d5b1082e670f4a26e96e4b62580cf12a0987f183 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#ifndef LDNS_SHA1_H
#define LDNS_SHA1_H
#ifdef __cplusplus
extern "C" {
#endif
#define LDNS_SHA1_BLOCK_LENGTH 64
#define LDNS_SHA1_DIGEST_LENGTH 20
typedef struct {
uint32_t state[5];
uint64_t count;
unsigned char buffer[LDNS_SHA1_BLOCK_LENGTH];
} ldns_sha1_ctx;
void ldns_sha1_init(ldns_sha1_ctx * context);
void ldns_sha1_transform(uint32_t state[5], const unsigned char buffer[LDNS_SHA1_BLOCK_LENGTH]);
void ldns_sha1_update(ldns_sha1_ctx *context, const unsigned char *data, unsigned int len);
void ldns_sha1_final(unsigned char digest[LDNS_SHA1_DIGEST_LENGTH], ldns_sha1_ctx *context);
/**
* Convenience function to digest a fixed block of data at once.
*
* \param[in] data the data to digest
* \param[in] data_len the length of data in bytes
* \param[out] digest the length of data in bytes
* This pointer MUST have LDNS_SHA1_DIGEST_LENGTH bytes
* available
* \return the SHA1 digest of the given data
*/
unsigned char *ldns_sha1(unsigned char *data, unsigned int data_len, unsigned char *digest);
#ifdef __cplusplus
}
#endif
#endif /* LDNS_SHA1_H */
|