mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2024-11-25 00:38:24 -05:00
OpenSSL: Replace internal HMAC-MD5 implementation
Use OpenSSL HMAC_* functions to implement HMAC-MD5 instead of depending on the src/crypto/md5.c implementation. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
3f56a2b746
commit
983c6a606b
@ -181,8 +181,6 @@ OBJS += ctrl_iface.c
|
|||||||
OBJS += src/ap/ctrl_iface_ap.c
|
OBJS += src/ap/ctrl_iface_ap.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
OBJS += src/crypto/md5.c
|
|
||||||
|
|
||||||
L_CFLAGS += -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX
|
L_CFLAGS += -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX
|
||||||
|
|
||||||
ifdef CONFIG_IAPP
|
ifdef CONFIG_IAPP
|
||||||
@ -735,6 +733,10 @@ ifdef NEED_SHA1
|
|||||||
OBJS += $(SHA1OBJS)
|
OBJS += $(SHA1OBJS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($(CONFIG_TLS), openssl)
|
||||||
|
OBJS += src/crypto/md5.c
|
||||||
|
endif
|
||||||
|
|
||||||
ifdef NEED_MD5
|
ifdef NEED_MD5
|
||||||
ifdef CONFIG_INTERNAL_MD5
|
ifdef CONFIG_INTERNAL_MD5
|
||||||
OBJS += src/crypto/md5-internal.c
|
OBJS += src/crypto/md5-internal.c
|
||||||
|
@ -170,8 +170,6 @@ OBJS += ctrl_iface.o
|
|||||||
OBJS += ../src/ap/ctrl_iface_ap.o
|
OBJS += ../src/ap/ctrl_iface_ap.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
OBJS += ../src/crypto/md5.o
|
|
||||||
|
|
||||||
CFLAGS += -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX
|
CFLAGS += -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX
|
||||||
|
|
||||||
ifdef CONFIG_IAPP
|
ifdef CONFIG_IAPP
|
||||||
@ -728,6 +726,10 @@ ifdef NEED_SHA1
|
|||||||
OBJS += $(SHA1OBJS)
|
OBJS += $(SHA1OBJS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($(CONFIG_TLS), openssl)
|
||||||
|
OBJS += ../src/crypto/md5.o
|
||||||
|
endif
|
||||||
|
|
||||||
ifdef NEED_MD5
|
ifdef NEED_MD5
|
||||||
ifdef CONFIG_INTERNAL_MD5
|
ifdef CONFIG_INTERNAL_MD5
|
||||||
OBJS += ../src/crypto/md5-internal.o
|
OBJS += ../src/crypto/md5-internal.o
|
||||||
@ -954,7 +956,7 @@ hostapd_cli: $(OBJS_c)
|
|||||||
$(Q)$(CC) $(LDFLAGS) -o hostapd_cli $(OBJS_c) $(LIBS_c)
|
$(Q)$(CC) $(LDFLAGS) -o hostapd_cli $(OBJS_c) $(LIBS_c)
|
||||||
@$(E) " LD " $@
|
@$(E) " LD " $@
|
||||||
|
|
||||||
NOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o $(SHA1OBJS) ../src/crypto/md5.o
|
NOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o $(SHA1OBJS)
|
||||||
NOBJS += ../src/utils/common.o
|
NOBJS += ../src/utils/common.o
|
||||||
ifdef NEED_RC4
|
ifdef NEED_RC4
|
||||||
ifdef CONFIG_INTERNAL_RC4
|
ifdef CONFIG_INTERNAL_RC4
|
||||||
|
@ -688,6 +688,49 @@ int crypto_hash_finish(struct crypto_hash *ctx, u8 *mac, size_t *len)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef CONFIG_FIPS
|
||||||
|
|
||||||
|
int hmac_md5_vector(const u8 *key, size_t key_len, size_t num_elem,
|
||||||
|
const u8 *addr[], const size_t *len, u8 *mac)
|
||||||
|
{
|
||||||
|
HMAC_CTX ctx;
|
||||||
|
size_t i;
|
||||||
|
unsigned int mdlen;
|
||||||
|
int res;
|
||||||
|
|
||||||
|
HMAC_CTX_init(&ctx);
|
||||||
|
#if OPENSSL_VERSION_NUMBER < 0x00909000
|
||||||
|
HMAC_Init_ex(&ctx, key, key_len, EVP_md5(), NULL);
|
||||||
|
#else /* openssl < 0.9.9 */
|
||||||
|
if (HMAC_Init_ex(&ctx, key, key_len, EVP_md5(), NULL) != 1)
|
||||||
|
return -1;
|
||||||
|
#endif /* openssl < 0.9.9 */
|
||||||
|
|
||||||
|
for (i = 0; i < num_elem; i++)
|
||||||
|
HMAC_Update(&ctx, addr[i], len[i]);
|
||||||
|
|
||||||
|
mdlen = 16;
|
||||||
|
#if OPENSSL_VERSION_NUMBER < 0x00909000
|
||||||
|
HMAC_Final(&ctx, mac, &mdlen);
|
||||||
|
res = 1;
|
||||||
|
#else /* openssl < 0.9.9 */
|
||||||
|
res = HMAC_Final(&ctx, mac, &mdlen);
|
||||||
|
#endif /* openssl < 0.9.9 */
|
||||||
|
HMAC_CTX_cleanup(&ctx);
|
||||||
|
|
||||||
|
return res == 1 ? 0 : -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int hmac_md5(const u8 *key, size_t key_len, const u8 *data, size_t data_len,
|
||||||
|
u8 *mac)
|
||||||
|
{
|
||||||
|
return hmac_md5_vector(key, key_len, 1, &data, &data_len, mac);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* CONFIG_FIPS */
|
||||||
|
|
||||||
|
|
||||||
int pbkdf2_sha1(const char *passphrase, const u8 *ssid, size_t ssid_len,
|
int pbkdf2_sha1(const char *passphrase, const u8 *ssid, size_t ssid_len,
|
||||||
int iterations, u8 *buf, size_t buflen)
|
int iterations, u8 *buf, size_t buflen)
|
||||||
{
|
{
|
||||||
|
@ -1195,8 +1195,10 @@ endif
|
|||||||
|
|
||||||
MD5OBJS =
|
MD5OBJS =
|
||||||
ifndef CONFIG_FIPS
|
ifndef CONFIG_FIPS
|
||||||
|
ifneq ($(CONFIG_TLS), openssl)
|
||||||
MD5OBJS += src/crypto/md5.c
|
MD5OBJS += src/crypto/md5.c
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
ifdef NEED_MD5
|
ifdef NEED_MD5
|
||||||
ifdef CONFIG_INTERNAL_MD5
|
ifdef CONFIG_INTERNAL_MD5
|
||||||
MD5OBJS += src/crypto/md5-internal.c
|
MD5OBJS += src/crypto/md5-internal.c
|
||||||
|
@ -1208,8 +1208,10 @@ endif
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef CONFIG_FIPS
|
ifndef CONFIG_FIPS
|
||||||
|
ifneq ($(CONFIG_TLS), openssl)
|
||||||
MD5OBJS += ../src/crypto/md5.o
|
MD5OBJS += ../src/crypto/md5.o
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
ifdef NEED_MD5
|
ifdef NEED_MD5
|
||||||
ifdef CONFIG_INTERNAL_MD5
|
ifdef CONFIG_INTERNAL_MD5
|
||||||
MD5OBJS += ../src/crypto/md5-internal.o
|
MD5OBJS += ../src/crypto/md5-internal.o
|
||||||
|
Loading…
Reference in New Issue
Block a user