#ifndef _LRAD_SHA1_H
#define _LRAD_SHA1_H
/*
* FreeRADIUS defines to ensure globally unique SHA1 function names,
* so that we don't pick up vendor-specific broken SHA1 libraries.
*/
#define SHA1_CTX librad_SHA1_CTX
#define SHA1Transform librad_SHA1Transform
#define SHA1Init librad_SHA1Init
#define SHA1Update librad_SHA1Update
#define SHA1Final librad_SHA1Final
typedef struct {
uint32_t state[5];
uint32_t count[2];
uint8_t buffer[64];
} SHA1_CTX;
void SHA1Transform(uint32_t state[5], const uint8_t buffer[64]);
void SHA1Init(SHA1_CTX* context);
void SHA1Update(SHA1_CTX* context, const uint8_t* data, unsigned int len);
void SHA1Final(uint8_t digest[20], SHA1_CTX* context);
/*
* this version implements a raw SHA1 transform, no length is appended,
* nor any 128s out to the block size.
*/
void SHA1FinalNoLen(uint8_t digest[20], SHA1_CTX* context);
/*
* FIPS 186-2 PRF based upon SHA1.
*/
extern void fips186_2prf(uint8_t mk[20], uint8_t finalkey[160]);
#endif /* _LRAD_SHA1_H */
syntax highlighted by Code2HTML, v. 0.9.1