2 * SHA1 hashing code copied from Lepton's crack <http://usuarios.lycos.es/reinob/>
4 * Adapted to be API-compatible with the previous (GPL-incompatible) code.
11 * This is the header file for code which implements the Secure
12 * Hashing Algorithm 1 as defined in FIPS PUB 180-1 published
15 * Many of the variable names in this code, especially the
16 * single character names, were used because those were the names
17 * used in the publication.
19 * Please read the file sha1.c for more information.
37 shaNull
, /* Null pointer parameter */
38 shaInputTooLong
, /* input data too long */
39 shaStateError
/* called Input after Result */
42 #define sha1_hash_size 20
45 * This structure will hold context information for the SHA-1
48 typedef struct SHA1Context
{
49 uint32_t Intermediate_Hash
[sha1_hash_size
/4]; /* Message Digest */
51 uint32_t Length_Low
; /* Message length in bits */
52 uint32_t Length_High
; /* Message length in bits */
54 /* Index into message block array */
55 int_least16_t Message_Block_Index
;
56 uint8_t Message_Block
[64]; /* 512-bit message blocks */
58 int Computed
; /* Is the digest computed? */
59 int Corrupted
; /* Is the message digest corrupted? */
66 G_MODULE_EXPORT
int sha1_init(sha1_state_t
*);
67 G_MODULE_EXPORT
int sha1_append(sha1_state_t
*, const uint8_t *, unsigned int);
68 G_MODULE_EXPORT
int sha1_finish(sha1_state_t
*, uint8_t Message_Digest
[sha1_hash_size
]);
69 G_MODULE_EXPORT
void sha1_hmac(const char *key_
, size_t key_len
, const char *payload
, size_t payload_len
, uint8_t Message_Digest
[sha1_hash_size
]);
70 G_MODULE_EXPORT
char *sha1_random_uuid( sha1_state_t
* context
);