xref: /netbsd-src/external/bsd/wpa/dist/src/crypto/sha512_i.h (revision 36ebd06e5ab61115eab7acca17a2350fc8222071)
1*36ebd06eSchristos /*
2*36ebd06eSchristos  * SHA-512 internal definitions
3*36ebd06eSchristos  * Copyright (c) 2015, Pali Rohár <pali.rohar@gmail.com>
4*36ebd06eSchristos  *
5*36ebd06eSchristos  * This software may be distributed under the terms of the BSD license.
6*36ebd06eSchristos  * See README for more details.
7*36ebd06eSchristos  */
8*36ebd06eSchristos 
9*36ebd06eSchristos #ifndef SHA512_I_H
10*36ebd06eSchristos #define SHA512_I_H
11*36ebd06eSchristos 
12*36ebd06eSchristos #define SHA512_BLOCK_SIZE 128
13*36ebd06eSchristos 
14*36ebd06eSchristos struct sha512_state {
15*36ebd06eSchristos 	u64 length, state[8];
16*36ebd06eSchristos 	u32 curlen;
17*36ebd06eSchristos 	u8 buf[SHA512_BLOCK_SIZE];
18*36ebd06eSchristos };
19*36ebd06eSchristos 
20*36ebd06eSchristos void sha512_init(struct sha512_state *md);
21*36ebd06eSchristos int sha512_process(struct sha512_state *md, const unsigned char *in,
22*36ebd06eSchristos 		   unsigned long inlen);
23*36ebd06eSchristos int sha512_done(struct sha512_state *md, unsigned char *out);
24*36ebd06eSchristos 
25*36ebd06eSchristos #endif /* SHA512_I_H */
26