xref: /dflybsd-src/crypto/libressl/include/openssl/whrlpool.h (revision 72c3367655e64985522b7a48ddfab613e869dc68)
1*72c33676SMaxim Ag /* $OpenBSD: whrlpool.h,v 1.5 2014/07/10 22:45:58 jsing Exp $ */
2f5b1c8a1SJohn Marino 
3f5b1c8a1SJohn Marino #include <stddef.h>
4f5b1c8a1SJohn Marino 
5f5b1c8a1SJohn Marino #ifndef HEADER_WHRLPOOL_H
6f5b1c8a1SJohn Marino #define HEADER_WHRLPOOL_H
7f5b1c8a1SJohn Marino 
8f5b1c8a1SJohn Marino #include <openssl/opensslconf.h>
9f5b1c8a1SJohn Marino 
10f5b1c8a1SJohn Marino #ifdef __cplusplus
11f5b1c8a1SJohn Marino extern "C" {
12f5b1c8a1SJohn Marino #endif
13f5b1c8a1SJohn Marino 
14f5b1c8a1SJohn Marino #define WHIRLPOOL_DIGEST_LENGTH	(512/8)
15f5b1c8a1SJohn Marino #define WHIRLPOOL_BBLOCK	512
16f5b1c8a1SJohn Marino #define WHIRLPOOL_COUNTER	(256/8)
17f5b1c8a1SJohn Marino 
18f5b1c8a1SJohn Marino typedef struct	{
19f5b1c8a1SJohn Marino 	union	{
20f5b1c8a1SJohn Marino 		unsigned char	c[WHIRLPOOL_DIGEST_LENGTH];
21f5b1c8a1SJohn Marino 		/* double q is here to ensure 64-bit alignment */
22f5b1c8a1SJohn Marino 		double		q[WHIRLPOOL_DIGEST_LENGTH/sizeof(double)];
23f5b1c8a1SJohn Marino 		}	H;
24f5b1c8a1SJohn Marino 	unsigned char	data[WHIRLPOOL_BBLOCK/8];
25f5b1c8a1SJohn Marino 	unsigned int	bitoff;
26f5b1c8a1SJohn Marino 	size_t		bitlen[WHIRLPOOL_COUNTER/sizeof(size_t)];
27f5b1c8a1SJohn Marino 	} WHIRLPOOL_CTX;
28f5b1c8a1SJohn Marino 
29f5b1c8a1SJohn Marino #ifndef OPENSSL_NO_WHIRLPOOL
30f5b1c8a1SJohn Marino int WHIRLPOOL_Init	(WHIRLPOOL_CTX *c);
31f5b1c8a1SJohn Marino int WHIRLPOOL_Update	(WHIRLPOOL_CTX *c,const void *inp,size_t bytes);
32f5b1c8a1SJohn Marino void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c,const void *inp,size_t bits);
33f5b1c8a1SJohn Marino int WHIRLPOOL_Final	(unsigned char *md,WHIRLPOOL_CTX *c);
34f5b1c8a1SJohn Marino unsigned char *WHIRLPOOL(const void *inp,size_t bytes,unsigned char *md);
35f5b1c8a1SJohn Marino #endif
36f5b1c8a1SJohn Marino 
37f5b1c8a1SJohn Marino #ifdef __cplusplus
38f5b1c8a1SJohn Marino }
39f5b1c8a1SJohn Marino #endif
40f5b1c8a1SJohn Marino 
41f5b1c8a1SJohn Marino #endif
42