2 * SHA1 hash implementation and interface functions
3 * Copyright (c) 2003-2005, Jouni Malinen <j@w1.fi>
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
9 * Alternatively, this software may be distributed under the terms of BSD
12 * See README and COPYING for more details.
18 #define SHA1_MAC_LEN 20
20 void hmac_sha1_vector(const u8
*key
, size_t key_len
, size_t num_elem
,
21 const u8
*addr
[], const size_t *len
, u8
*mac
);
22 void hmac_sha1(const u8
*key
, size_t key_len
, const u8
*data
, size_t data_len
,
24 void sha1_prf(const u8
*key
, size_t key_len
, const char *label
,
25 const u8
*data
, size_t data_len
, u8
*buf
, size_t buf_len
);
26 void sha1_t_prf(const u8
*key
, size_t key_len
, const char *label
,
27 const u8
*seed
, size_t seed_len
, u8
*buf
, size_t buf_len
);
28 int tls_prf(const u8
*secret
, size_t secret_len
, const char *label
,
29 const u8
*seed
, size_t seed_len
, u8
*out
, size_t outlen
);
30 void pbkdf2_sha1(const char *passphrase
, const char *ssid
, size_t ssid_len
,
31 int iterations
, u8
*buf
, size_t buflen
);
33 #ifdef CONFIG_CRYPTO_INTERNAL
36 void SHA1Init(struct SHA1Context
*context
);
37 void SHA1Update(struct SHA1Context
*context
, const void *data
, u32 len
);
38 void SHA1Final(unsigned char digest
[20], struct SHA1Context
*context
);
39 #endif /* CONFIG_CRYPTO_INTERNAL */