18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/*
28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * SHA1 hash implementation and interface functions
38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2003-2009, Jouni Malinen <j@w1.fi>
48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license.
6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details.
78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */
88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifndef SHA1_H
108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define SHA1_H
118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define SHA1_MAC_LEN 20
138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint hmac_sha1_vector(const u8 *key, size_t key_len, size_t num_elem,
158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		     const u8 *addr[], const size_t *len, u8 *mac);
168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint hmac_sha1(const u8 *key, size_t key_len, const u8 *data, size_t data_len,
178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	       u8 *mac);
188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint sha1_prf(const u8 *key, size_t key_len, const char *label,
198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	     const u8 *data, size_t data_len, u8 *buf, size_t buf_len);
208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint sha1_t_prf(const u8 *key, size_t key_len, const char *label,
218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	       const u8 *seed, size_t seed_len, u8 *buf, size_t buf_len);
221f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtint __must_check tls_prf_sha1_md5(const u8 *secret, size_t secret_len,
231f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt				  const char *label, const u8 *seed,
241f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt				  size_t seed_len, u8 *out, size_t outlen);
2561d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidtint pbkdf2_sha1(const char *passphrase, const u8 *ssid, size_t ssid_len,
268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		int iterations, u8 *buf, size_t buflen);
278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* SHA1_H */
28