a399b7655a1d835aa8606c2b29e4e777baac8635zf/*
a399b7655a1d835aa8606c2b29e4e777baac8635zf * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
a399b7655a1d835aa8606c2b29e4e777baac8635zf * Use is subject to license terms.
a399b7655a1d835aa8606c2b29e4e777baac8635zf */
a399b7655a1d835aa8606c2b29e4e777baac8635zf
a399b7655a1d835aa8606c2b29e4e777baac8635zf/*
a399b7655a1d835aa8606c2b29e4e777baac8635zf * Copyright (c) 2003-2004, Jouni Malinen <jkmaline@cc.hut.fi>
a399b7655a1d835aa8606c2b29e4e777baac8635zf * Sun elects to license this software under the BSD license.
a399b7655a1d835aa8606c2b29e4e777baac8635zf * See README for more details.
a399b7655a1d835aa8606c2b29e4e777baac8635zf */
a399b7655a1d835aa8606c2b29e4e777baac8635zf#ifndef __WPA_ENC_H
a399b7655a1d835aa8606c2b29e4e777baac8635zf#define __WPA_ENC_H
a399b7655a1d835aa8606c2b29e4e777baac8635zf
a399b7655a1d835aa8606c2b29e4e777baac8635zf#pragma ident "%Z%%M% %I% %E% SMI"
a399b7655a1d835aa8606c2b29e4e777baac8635zf
a399b7655a1d835aa8606c2b29e4e777baac8635zf#include <openssl/sha.h>
a399b7655a1d835aa8606c2b29e4e777baac8635zf#include <openssl/md5.h>
a399b7655a1d835aa8606c2b29e4e777baac8635zf
a399b7655a1d835aa8606c2b29e4e777baac8635zf#ifdef __cplusplus
a399b7655a1d835aa8606c2b29e4e777baac8635zfextern "C" {
a399b7655a1d835aa8606c2b29e4e777baac8635zf#endif
a399b7655a1d835aa8606c2b29e4e777baac8635zf
a399b7655a1d835aa8606c2b29e4e777baac8635zf#define SHA1_MAC_LEN SHA_DIGEST_LENGTH
a399b7655a1d835aa8606c2b29e4e777baac8635zf#define MD5_MAC_LEN MD5_DIGEST_LENGTH
a399b7655a1d835aa8606c2b29e4e777baac8635zf
a399b7655a1d835aa8606c2b29e4e777baac8635zfvoid aes_wrap(uint8_t *, int, uint8_t *, uint8_t *);
a399b7655a1d835aa8606c2b29e4e777baac8635zfint aes_unwrap(uint8_t *, int, uint8_t *, uint8_t *);
a399b7655a1d835aa8606c2b29e4e777baac8635zf
a399b7655a1d835aa8606c2b29e4e777baac8635zfvoid hmac_sha1_vector(unsigned char *, unsigned int,
a399b7655a1d835aa8606c2b29e4e777baac8635zf size_t, unsigned char *[], unsigned int *, unsigned char *);
a399b7655a1d835aa8606c2b29e4e777baac8635zf
a399b7655a1d835aa8606c2b29e4e777baac8635zfvoid hmac_sha1(unsigned char *, unsigned int,
a399b7655a1d835aa8606c2b29e4e777baac8635zf unsigned char *, unsigned int, unsigned char *);
a399b7655a1d835aa8606c2b29e4e777baac8635zf
a399b7655a1d835aa8606c2b29e4e777baac8635zfvoid sha1_prf(unsigned char *, unsigned int,
a399b7655a1d835aa8606c2b29e4e777baac8635zf char *, unsigned char *, unsigned int, unsigned char *, size_t);
a399b7655a1d835aa8606c2b29e4e777baac8635zf
a399b7655a1d835aa8606c2b29e4e777baac8635zfvoid pbkdf2_sha1(char *, char *, size_t, int, unsigned char *, size_t);
a399b7655a1d835aa8606c2b29e4e777baac8635zf
a399b7655a1d835aa8606c2b29e4e777baac8635zfvoid rc4_skip(uint8_t *, size_t, size_t, uint8_t *, size_t);
a399b7655a1d835aa8606c2b29e4e777baac8635zfvoid rc4(uint8_t *, size_t, uint8_t *, size_t);
a399b7655a1d835aa8606c2b29e4e777baac8635zf
a399b7655a1d835aa8606c2b29e4e777baac8635zfvoid hmac_md5_vector(uint8_t *, size_t, size_t,
a399b7655a1d835aa8606c2b29e4e777baac8635zf uint8_t *[], size_t *, uint8_t *);
a399b7655a1d835aa8606c2b29e4e777baac8635zfvoid hmac_md5(uint8_t *, size_t, uint8_t *, size_t, uint8_t *);
a399b7655a1d835aa8606c2b29e4e777baac8635zf
a399b7655a1d835aa8606c2b29e4e777baac8635zf#ifdef __cplusplus
a399b7655a1d835aa8606c2b29e4e777baac8635zf}
a399b7655a1d835aa8606c2b29e4e777baac8635zf#endif
a399b7655a1d835aa8606c2b29e4e777baac8635zf
a399b7655a1d835aa8606c2b29e4e777baac8635zf#endif /* __WPA_ENC_H */