xref: /netbsd-src/external/bsd/wpa/dist/src/crypto/sha512.h (revision 0a73ee0a32b4208ab171f89f408b38fd4c664291)
1*0a73ee0aSchristos /*
2*0a73ee0aSchristos  * SHA512 hash implementation and interface functions
3*0a73ee0aSchristos  * Copyright (c) 2015-2017, Jouni Malinen <j@w1.fi>
4*0a73ee0aSchristos  *
5*0a73ee0aSchristos  * This software may be distributed under the terms of the BSD license.
6*0a73ee0aSchristos  * See README for more details.
7*0a73ee0aSchristos  */
8*0a73ee0aSchristos 
9*0a73ee0aSchristos #ifndef SHA512_H
10*0a73ee0aSchristos #define SHA512_H
11*0a73ee0aSchristos 
12*0a73ee0aSchristos #define SHA512_MAC_LEN 64
13*0a73ee0aSchristos 
14*0a73ee0aSchristos int hmac_sha512_vector(const u8 *key, size_t key_len, size_t num_elem,
15*0a73ee0aSchristos 		       const u8 *addr[], const size_t *len, u8 *mac);
16*0a73ee0aSchristos int hmac_sha512(const u8 *key, size_t key_len, const u8 *data,
17*0a73ee0aSchristos 		size_t data_len, u8 *mac);
18*0a73ee0aSchristos int sha512_prf(const u8 *key, size_t key_len, const char *label,
19*0a73ee0aSchristos 	       const u8 *data, size_t data_len, u8 *buf, size_t buf_len);
20*0a73ee0aSchristos int sha512_prf_bits(const u8 *key, size_t key_len, const char *label,
21*0a73ee0aSchristos 		    const u8 *data, size_t data_len, u8 *buf,
22*0a73ee0aSchristos 		    size_t buf_len_bits);
23*0a73ee0aSchristos int hmac_sha512_kdf(const u8 *secret, size_t secret_len,
24*0a73ee0aSchristos 		    const char *label, const u8 *seed, size_t seed_len,
25*0a73ee0aSchristos 		    u8 *out, size_t outlen);
26*0a73ee0aSchristos 
27*0a73ee0aSchristos #endif /* SHA512_H */
28