1189251Ssam/* 2189251Ssam * SHA256 hash implementation and interface functions 3281806Srpaulo * Copyright (c) 2003-2014, Jouni Malinen <j@w1.fi> 4189251Ssam * 5252726Srpaulo * This software may be distributed under the terms of the BSD license. 6252726Srpaulo * See README for more details. 7189251Ssam */ 8189251Ssam 9189251Ssam#ifndef SHA256_H 10189251Ssam#define SHA256_H 11189251Ssam 12189251Ssam#define SHA256_MAC_LEN 32 13189251Ssam 14252726Srpauloint hmac_sha256_vector(const u8 *key, size_t key_len, size_t num_elem, 15252726Srpaulo const u8 *addr[], const size_t *len, u8 *mac); 16252726Srpauloint hmac_sha256(const u8 *key, size_t key_len, const u8 *data, 17252726Srpaulo size_t data_len, u8 *mac); 18189251Ssamvoid sha256_prf(const u8 *key, size_t key_len, const char *label, 19189251Ssam const u8 *data, size_t data_len, u8 *buf, size_t buf_len); 20281806Srpaulovoid sha256_prf_bits(const u8 *key, size_t key_len, const char *label, 21281806Srpaulo const u8 *data, size_t data_len, u8 *buf, 22281806Srpaulo size_t buf_len_bits); 23252726Srpaulovoid tls_prf_sha256(const u8 *secret, size_t secret_len, 24252726Srpaulo const char *label, const u8 *seed, size_t seed_len, 25252726Srpaulo u8 *out, size_t outlen); 26281806Srpauloint hmac_sha256_kdf(const u8 *secret, size_t secret_len, 27281806Srpaulo const char *label, const u8 *seed, size_t seed_len, 28281806Srpaulo u8 *out, size_t outlen); 29189251Ssam 30189251Ssam#endif /* SHA256_H */ 31