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