sha1.h
author Ryan C. Gordon <icculus@icculus.org>
Sun, 18 Jun 2017 01:57:23 -0400
changeset 55 0aaf56a96d21
parent 53 ea43dbad123b
permissions -rw-r--r--
Added initial code for producing time-based One Time Passwords.
icculus@0
     1
/*	$OpenBSD: sha1.h,v 1.5 2007/09/10 22:19:42 henric Exp $	*/
icculus@0
     2
icculus@0
     3
/*
icculus@0
     4
 * SHA-1 in C
icculus@0
     5
 * By Steve Reid <steve@edmweb.com>
icculus@0
     6
 * 100% Public Domain
icculus@0
     7
 */
icculus@0
     8
icculus@0
     9
#ifndef _SHA1_H_
icculus@0
    10
#define _SHA1_H_
icculus@0
    11
icculus@0
    12
#define	SHA1_BLOCK_LENGTH		64
icculus@0
    13
#define	SHA1_DIGEST_LENGTH		20
icculus@0
    14
icculus@0
    15
#include <stdint.h>
icculus@0
    16
icculus@0
    17
typedef struct {
icculus@52
    18
	uint32_t	state[5];
icculus@52
    19
	uint64_t	count;
icculus@52
    20
	uint8_t	buffer[SHA1_BLOCK_LENGTH];
icculus@0
    21
} SHA1_CTX;
icculus@0
    22
  
icculus@0
    23
void SHA1Init(SHA1_CTX * context);
icculus@52
    24
void SHA1Transform(uint32_t state[5], const uint8_t buffer[SHA1_BLOCK_LENGTH]);
icculus@52
    25
void SHA1Update(SHA1_CTX *context, const uint8_t *data, const uint32_t len);
icculus@52
    26
void SHA1Final(uint8_t digest[SHA1_DIGEST_LENGTH], SHA1_CTX *context);
icculus@0
    27
icculus@53
    28
void SHA1Hmac(const uint8_t *key, const uint32_t keylen, const uint8_t *msg, const uint32_t msglen, uint8_t digest[SHA1_DIGEST_LENGTH]);
icculus@53
    29
icculus@0
    30
#endif /* _SHA1_H_ */