3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-12-24 06:52:37 +01:00

eap-wsc: Init DH5 prime & generator keys

This commit is contained in:
Denis Kenzior 2016-08-12 17:36:04 -05:00
parent eb539ddd82
commit 349bc26d41

View File

@ -29,11 +29,15 @@
#include <errno.h> #include <errno.h>
#include <ell/ell.h> #include <ell/ell.h>
#include "crypto.h"
#include "eap.h" #include "eap.h"
#include "wscutil.h" #include "wscutil.h"
#define EAP_WSC_OFFSET 12 #define EAP_WSC_OFFSET 12
static struct l_key *dh5_generator;
static struct l_key *dh5_prime;
struct eap_wsc_state { struct eap_wsc_state {
}; };
@ -88,9 +92,32 @@ static struct eap_method eap_wsc = {
static int eap_wsc_init(void) static int eap_wsc_init(void)
{ {
int r = -ENOTSUP;
l_debug(""); l_debug("");
return eap_register_method(&eap_wsc); dh5_generator = l_key_new(L_KEY_RAW, crypto_dh5_generator,
crypto_dh5_generator_size);
if (!dh5_generator)
goto fail_generator;
dh5_prime = l_key_new(L_KEY_RAW, crypto_dh5_prime,
crypto_dh5_prime_size);
if (!dh5_prime)
goto fail_prime;
r = eap_register_method(&eap_wsc);
if (!r)
return 0;
l_key_free(dh5_prime);
dh5_prime = NULL;
fail_prime:
l_key_free(dh5_generator);
dh5_generator = NULL;
fail_generator:
return r;
} }
static void eap_wsc_exit(void) static void eap_wsc_exit(void)
@ -98,6 +125,9 @@ static void eap_wsc_exit(void)
l_debug(""); l_debug("");
eap_unregister_method(&eap_wsc); eap_unregister_method(&eap_wsc);
l_key_free(dh5_prime);
l_key_free(dh5_generator);
} }
EAP_METHOD_BUILTIN(eap_wsc, eap_wsc_init, eap_wsc_exit) EAP_METHOD_BUILTIN(eap_wsc, eap_wsc_init, eap_wsc_exit)