sha1.h
author Ryan C. Gordon <icculus@icculus.org>
Sun, 18 Jun 2017 01:56:42 -0400
changeset 54 3d70f17a68b8
parent 53 ea43dbad123b
permissions -rw-r--r--
Replaced existing HMAC-SHA1 code in pkcs5_pbkdf2.c with my new one.

Didn't realize this was already here, doh! It was a good learning experience
in any case!
/*	$OpenBSD: sha1.h,v 1.5 2007/09/10 22:19:42 henric Exp $	*/

/*
 * SHA-1 in C
 * By Steve Reid <steve@edmweb.com>
 * 100% Public Domain
 */

#ifndef _SHA1_H_
#define _SHA1_H_

#define	SHA1_BLOCK_LENGTH		64
#define	SHA1_DIGEST_LENGTH		20

#include <stdint.h>

typedef struct {
	uint32_t	state[5];
	uint64_t	count;
	uint8_t	buffer[SHA1_BLOCK_LENGTH];
} SHA1_CTX;
  
void SHA1Init(SHA1_CTX * context);
void SHA1Transform(uint32_t state[5], const uint8_t buffer[SHA1_BLOCK_LENGTH]);
void SHA1Update(SHA1_CTX *context, const uint8_t *data, const uint32_t len);
void SHA1Final(uint8_t digest[SHA1_DIGEST_LENGTH], SHA1_CTX *context);

void SHA1Hmac(const uint8_t *key, const uint32_t keylen, const uint8_t *msg, const uint32_t msglen, uint8_t digest[SHA1_DIGEST_LENGTH]);

#endif /* _SHA1_H_ */