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