2005-01-14 12:03:04 +00:00
|
|
|
#ifndef _SHA256_H
|
|
|
|
#define _SHA256_H 1
|
|
|
|
|
2005-05-04 16:32:54 +00:00
|
|
|
#include <inttypes.h>
|
2005-01-14 12:03:04 +00:00
|
|
|
|
|
|
|
#define SHA_LBLOCK 16
|
|
|
|
#define SHA_CBLOCK (SHA_LBLOCK*4) /* SHA treats input data as a
|
|
|
|
* contiguous array of 32 bit
|
|
|
|
* wide big-endian values. */
|
|
|
|
|
|
|
|
#define SHA256_CBLOCK (SHA_LBLOCK*4) /* SHA-256 treats input data as a
|
|
|
|
* contiguous array of 32 bit
|
|
|
|
* wide big-endian values. */
|
|
|
|
#define SHA224_DIGEST_LENGTH 28
|
|
|
|
#define SHA256_DIGEST_LENGTH 32
|
|
|
|
|
|
|
|
typedef struct SHA256state_st
|
|
|
|
{
|
|
|
|
uint32_t h[8];
|
|
|
|
uint32_t Nl,Nh;
|
|
|
|
uint32_t data[SHA_LBLOCK];
|
|
|
|
unsigned int num,md_len;
|
|
|
|
} SHA256_CTX;
|
|
|
|
|
|
|
|
int SHA224_Init(SHA256_CTX *c);
|
|
|
|
int SHA224_Update(SHA256_CTX *c, const void *data, size_t len);
|
|
|
|
int SHA224_Final(unsigned char *md, SHA256_CTX *c);
|
|
|
|
unsigned char *SHA224(const unsigned char *d, size_t n,unsigned char *md);
|
|
|
|
int SHA256_Init(SHA256_CTX *c);
|
|
|
|
int SHA256_Update(SHA256_CTX *c, const void *data, size_t len);
|
|
|
|
int SHA256_Final(unsigned char *md, SHA256_CTX *c);
|
|
|
|
unsigned char *SHA256(const unsigned char *d, size_t n,unsigned char *md);
|
|
|
|
void SHA256_Transform(SHA256_CTX *c, const unsigned char *data);
|
|
|
|
|
|
|
|
#endif
|