1*a399b765Szf /*
2*a399b765Szf  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
3*a399b765Szf  * Use is subject to license terms.
4*a399b765Szf  */
5*a399b765Szf 
6*a399b765Szf /*
7*a399b765Szf  * Copyright (c) 2003-2004, Jouni Malinen <jkmaline@cc.hut.fi>
8*a399b765Szf  * Sun elects to license this software under the BSD license.
9*a399b765Szf  * See README for more details.
10*a399b765Szf  */
11*a399b765Szf #ifndef __WPA_ENC_H
12*a399b765Szf #define	__WPA_ENC_H
13*a399b765Szf 
14*a399b765Szf #include <openssl/sha.h>
15*a399b765Szf #include <openssl/md5.h>
16*a399b765Szf 
17*a399b765Szf #ifdef	__cplusplus
18*a399b765Szf extern "C" {
19*a399b765Szf #endif
20*a399b765Szf 
21*a399b765Szf #define	SHA1_MAC_LEN	SHA_DIGEST_LENGTH
22*a399b765Szf #define	MD5_MAC_LEN	MD5_DIGEST_LENGTH
23*a399b765Szf 
24*a399b765Szf void aes_wrap(uint8_t *, int, uint8_t *, uint8_t *);
25*a399b765Szf int aes_unwrap(uint8_t *, int, uint8_t *, uint8_t *);
26*a399b765Szf 
27*a399b765Szf void hmac_sha1_vector(unsigned char *, unsigned int,
28*a399b765Szf     size_t, unsigned char *[], unsigned int *, unsigned char *);
29*a399b765Szf 
30*a399b765Szf void hmac_sha1(unsigned char *, unsigned int,
31*a399b765Szf     unsigned char *, unsigned int, unsigned char *);
32*a399b765Szf 
33*a399b765Szf void sha1_prf(unsigned char *, unsigned int,
34*a399b765Szf     char *, unsigned char *, unsigned int, unsigned char *, size_t);
35*a399b765Szf 
36*a399b765Szf void pbkdf2_sha1(char *, char *, size_t, int, unsigned char *, size_t);
37*a399b765Szf 
38*a399b765Szf void rc4_skip(uint8_t *, size_t, size_t, uint8_t *, size_t);
39*a399b765Szf void rc4(uint8_t *, size_t, uint8_t *, size_t);
40*a399b765Szf 
41*a399b765Szf void hmac_md5_vector(uint8_t *, size_t, size_t,
42*a399b765Szf     uint8_t *[], size_t *, uint8_t *);
43*a399b765Szf void hmac_md5(uint8_t *, size_t, uint8_t *, size_t, uint8_t *);
44*a399b765Szf 
45*a399b765Szf #ifdef __cplusplus
46*a399b765Szf }
47*a399b765Szf #endif
48*a399b765Szf 
49*a399b765Szf #endif /* __WPA_ENC_H */
50