42 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * SHA1 hash implementation and interface functions
 | |
|  * Copyright (c) 2003-2005, Jouni Malinen <j@w1.fi>
 | |
|  *
 | |
|  * This program is free software; you can redistribute it and/or modify
 | |
|  * it under the terms of the GNU General Public License version 2 as
 | |
|  * published by the Free Software Foundation.
 | |
|  *
 | |
|  * Alternatively, this software may be distributed under the terms of BSD
 | |
|  * license.
 | |
|  *
 | |
|  * See README and COPYING for more details.
 | |
|  */
 | |
| 
 | |
| #ifndef SHA1_H
 | |
| #define SHA1_H
 | |
| 
 | |
| #define SHA1_MAC_LEN 20
 | |
| 
 | |
| void hmac_sha1_vector(const u8 *key, size_t key_len, size_t num_elem,
 | |
| 		      const u8 *addr[], const size_t *len, u8 *mac);
 | |
| void hmac_sha1(const u8 *key, size_t key_len, const u8 *data, size_t data_len,
 | |
| 	       u8 *mac);
 | |
| void sha1_prf(const u8 *key, size_t key_len, const char *label,
 | |
| 	      const u8 *data, size_t data_len, u8 *buf, size_t buf_len);
 | |
| void sha1_t_prf(const u8 *key, size_t key_len, const char *label,
 | |
| 		const u8 *seed, size_t seed_len, u8 *buf, size_t buf_len);
 | |
| int tls_prf(const u8 *secret, size_t secret_len, const char *label,
 | |
| 	    const u8 *seed, size_t seed_len, u8 *out, size_t outlen);
 | |
| void pbkdf2_sha1(const char *passphrase, const char *ssid, size_t ssid_len,
 | |
| 		 int iterations, u8 *buf, size_t buflen);
 | |
| 
 | |
| #ifdef CONFIG_CRYPTO_INTERNAL
 | |
| struct SHA1Context;
 | |
| 
 | |
| void SHA1Init(struct SHA1Context *context);
 | |
| void SHA1Update(struct SHA1Context *context, const void *data, u32 len);
 | |
| void SHA1Final(unsigned char digest[20], struct SHA1Context *context);
 | |
| #endif /* CONFIG_CRYPTO_INTERNAL */
 | |
| 
 | |
| #endif /* SHA1_H */
 |