File: sha1.h

package info (click to toggle)
ldns 1.7.0-4
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 6,416 kB
  • sloc: ansic: 43,318; python: 7,675; sh: 3,642; pascal: 2,351; perl: 2,188; makefile: 1,439; xml: 518
file content (38 lines) | stat: -rw-r--r-- 1,165 bytes parent folder | download | duplicates (13)
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 */