sha1.h
author Ryan C. Gordon <icculus@icculus.org>
Sun, 18 Jun 2017 19:50:43 -0400
changeset 57 4974e5368a29
parent 53 ea43dbad123b
permissions -rw-r--r--
Minor type cleanup ("unsigned char" -> "uint8_t").
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     1
/*	$OpenBSD: sha1.h,v 1.5 2007/09/10 22:19:42 henric Exp $	*/
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     2
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     3
/*
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     4
 * SHA-1 in C
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     5
 * By Steve Reid <steve@edmweb.com>
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     6
 * 100% Public Domain
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     7
 */
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     8
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     9
#ifndef _SHA1_H_
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    10
#define _SHA1_H_
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    11
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    12
#define	SHA1_BLOCK_LENGTH		64
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    13
#define	SHA1_DIGEST_LENGTH		20
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    14
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    15
#include <stdint.h>
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    16
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    17
typedef struct {
52
7f21abb9ff17 Made the SHA1 code more stdint-friendly.
Ryan C. Gordon <icculus@icculus.org>
parents: 0
diff changeset
    18
	uint32_t	state[5];
7f21abb9ff17 Made the SHA1 code more stdint-friendly.
Ryan C. Gordon <icculus@icculus.org>
parents: 0
diff changeset
    19
	uint64_t	count;
7f21abb9ff17 Made the SHA1 code more stdint-friendly.
Ryan C. Gordon <icculus@icculus.org>
parents: 0
diff changeset
    20
	uint8_t	buffer[SHA1_BLOCK_LENGTH];
0
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    21
} SHA1_CTX;
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    22
  
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    23
void SHA1Init(SHA1_CTX * context);
52
7f21abb9ff17 Made the SHA1 code more stdint-friendly.
Ryan C. Gordon <icculus@icculus.org>
parents: 0
diff changeset
    24
void SHA1Transform(uint32_t state[5], const uint8_t buffer[SHA1_BLOCK_LENGTH]);
7f21abb9ff17 Made the SHA1 code more stdint-friendly.
Ryan C. Gordon <icculus@icculus.org>
parents: 0
diff changeset
    25
void SHA1Update(SHA1_CTX *context, const uint8_t *data, const uint32_t len);
7f21abb9ff17 Made the SHA1 code more stdint-friendly.
Ryan C. Gordon <icculus@icculus.org>
parents: 0
diff changeset
    26
void SHA1Final(uint8_t digest[SHA1_DIGEST_LENGTH], SHA1_CTX *context);
0
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    27
53
ea43dbad123b Implemented SHA1Hmac().
Ryan C. Gordon <icculus@icculus.org>
parents: 52
diff changeset
    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]);
ea43dbad123b Implemented SHA1Hmac().
Ryan C. Gordon <icculus@icculus.org>
parents: 52
diff changeset
    29
0
d7ee4e2ed49d Initial work.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    30
#endif /* _SHA1_H_ */