00001
00016 #ifndef SHA1_H
00017 #define SHA1_H
00018
00019 #define SHA1_MAC_LEN 20
00020
00021 void hmac_sha1_vector(const u8 *key, size_t key_len, size_t num_elem,
00022 const u8 *addr[], const size_t *len, u8 *mac);
00023 void hmac_sha1(const u8 *key, size_t key_len, const u8 *data, size_t data_len,
00024 u8 *mac);
00025 void sha1_prf(const u8 *key, size_t key_len, const char *label,
00026 const u8 *data, size_t data_len, u8 *buf, size_t buf_len);
00027 void sha1_t_prf(const u8 *key, size_t key_len, const char *label,
00028 const u8 *seed, size_t seed_len, u8 *buf, size_t buf_len);
00029 int tls_prf(const u8 *secret, size_t secret_len, const char *label,
00030 const u8 *seed, size_t seed_len, u8 *out, size_t outlen);
00031 void pbkdf2_sha1(const char *passphrase, const char *ssid, size_t ssid_len,
00032 int iterations, u8 *buf, size_t buflen);
00033
00034 #ifdef CONFIG_CRYPTO_INTERNAL
00035 struct SHA1Context;
00036
00037 void SHA1Init(struct SHA1Context *context);
00038 void SHA1Update(struct SHA1Context *context, const void *data, u32 len);
00039 void SHA1Final(unsigned char digest[20], struct SHA1Context *context);
00040 #endif
00041
00042 #endif
00043