mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2025-01-18 10:54:03 -05:00
Add dh5_init_fixed() to allow fixed DH parameters to be used
This allows pre-configured private and public key to be used when initializing DH for group 5. Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
0965813640
commit
a0d0c560c3
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* WPA Supplicant / wrapper functions for libcrypto
|
* WPA Supplicant / wrapper functions for libcrypto
|
||||||
* Copyright (c) 2004-2009, Jouni Malinen <j@w1.fi>
|
* Copyright (c) 2004-2012, Jouni Malinen <j@w1.fi>
|
||||||
*
|
*
|
||||||
* This software may be distributed under the terms of the BSD license.
|
* This software may be distributed under the terms of the BSD license.
|
||||||
* See README for more details.
|
* See README for more details.
|
||||||
@ -452,6 +452,41 @@ err:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void * dh5_init_fixed(const struct wpabuf *priv, const struct wpabuf *publ)
|
||||||
|
{
|
||||||
|
DH *dh;
|
||||||
|
|
||||||
|
dh = DH_new();
|
||||||
|
if (dh == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
dh->g = BN_new();
|
||||||
|
if (dh->g == NULL || BN_set_word(dh->g, 2) != 1)
|
||||||
|
goto err;
|
||||||
|
|
||||||
|
dh->p = get_group5_prime();
|
||||||
|
if (dh->p == NULL)
|
||||||
|
goto err;
|
||||||
|
|
||||||
|
dh->priv_key = BN_bin2bn(wpabuf_head(priv), wpabuf_len(priv), NULL);
|
||||||
|
if (dh->priv_key == NULL)
|
||||||
|
goto err;
|
||||||
|
|
||||||
|
dh->pub_key = BN_bin2bn(wpabuf_head(publ), wpabuf_len(publ), NULL);
|
||||||
|
if (dh->pub_key == NULL)
|
||||||
|
goto err;
|
||||||
|
|
||||||
|
if (DH_generate_key(dh) != 1)
|
||||||
|
goto err;
|
||||||
|
|
||||||
|
return dh;
|
||||||
|
|
||||||
|
err:
|
||||||
|
DH_free(dh);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
struct wpabuf * dh5_derive_shared(void *ctx, const struct wpabuf *peer_public,
|
struct wpabuf * dh5_derive_shared(void *ctx, const struct wpabuf *peer_public,
|
||||||
const struct wpabuf *own_private)
|
const struct wpabuf *own_private)
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Diffie-Hellman group 5 operations
|
* Diffie-Hellman group 5 operations
|
||||||
* Copyright (c) 2009, Jouni Malinen <j@w1.fi>
|
* Copyright (c) 2009, 2012, Jouni Malinen <j@w1.fi>
|
||||||
*
|
*
|
||||||
* This software may be distributed under the terms of the BSD license.
|
* This software may be distributed under the terms of the BSD license.
|
||||||
* See README for more details.
|
* See README for more details.
|
||||||
@ -22,6 +22,12 @@ void * dh5_init(struct wpabuf **priv, struct wpabuf **publ)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void * dh5_init_fixed(const struct wpabuf *priv, const struct wpabuf *publ)
|
||||||
|
{
|
||||||
|
return (void *) 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
struct wpabuf * dh5_derive_shared(void *ctx, const struct wpabuf *peer_public,
|
struct wpabuf * dh5_derive_shared(void *ctx, const struct wpabuf *peer_public,
|
||||||
const struct wpabuf *own_private)
|
const struct wpabuf *own_private)
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Diffie-Hellman group 5 operations
|
* Diffie-Hellman group 5 operations
|
||||||
* Copyright (c) 2009, Jouni Malinen <j@w1.fi>
|
* Copyright (c) 2009, 2012, Jouni Malinen <j@w1.fi>
|
||||||
*
|
*
|
||||||
* This software may be distributed under the terms of the BSD license.
|
* This software may be distributed under the terms of the BSD license.
|
||||||
* See README for more details.
|
* See README for more details.
|
||||||
@ -10,6 +10,7 @@
|
|||||||
#define DH_GROUP5_H
|
#define DH_GROUP5_H
|
||||||
|
|
||||||
void * dh5_init(struct wpabuf **priv, struct wpabuf **publ);
|
void * dh5_init(struct wpabuf **priv, struct wpabuf **publ);
|
||||||
|
void * dh5_init_fixed(const struct wpabuf *priv, const struct wpabuf *publ);
|
||||||
struct wpabuf * dh5_derive_shared(void *ctx, const struct wpabuf *peer_public,
|
struct wpabuf * dh5_derive_shared(void *ctx, const struct wpabuf *peer_public,
|
||||||
const struct wpabuf *own_private);
|
const struct wpabuf *own_private);
|
||||||
void dh5_free(void *ctx);
|
void dh5_free(void *ctx);
|
||||||
|
Loading…
Reference in New Issue
Block a user