mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-12-20 02:32:36 +01:00
build: Use new l_tls_prf_get_bytes and remove ell/tls-private.h usage
This commit is contained in:
parent
467d3958b4
commit
8f8a214fbd
@ -29,8 +29,6 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <ell/ell.h>
|
#include <ell/ell.h>
|
||||||
|
|
||||||
#include "ell/tls-private.h"
|
|
||||||
|
|
||||||
#include "eap.h"
|
#include "eap.h"
|
||||||
#include "eap-private.h"
|
#include "eap-private.h"
|
||||||
|
|
||||||
@ -495,7 +493,6 @@ static void eap_peap_tunnel_ready(const char *peer_identity, void *user_data)
|
|||||||
struct eap_peap_state *peap = eap_get_data(eap);
|
struct eap_peap_state *peap = eap_get_data(eap);
|
||||||
|
|
||||||
uint8_t msk_emsk[128];
|
uint8_t msk_emsk[128];
|
||||||
uint8_t random[64];
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PEAPv1: draft-josefsson-pppext-eap-tls-eap-05, Section 2.1.1
|
* PEAPv1: draft-josefsson-pppext-eap-tls-eap-05, Section 2.1.1
|
||||||
@ -515,14 +512,8 @@ static void eap_peap_tunnel_ready(const char *peer_identity, void *user_data)
|
|||||||
eap_start_complete_timeout(eap);
|
eap_start_complete_timeout(eap);
|
||||||
|
|
||||||
/* MSK, EMSK and challenge derivation */
|
/* MSK, EMSK and challenge derivation */
|
||||||
memcpy(random + 0, peap->tunnel->pending.client_random, 32);
|
l_tls_prf_get_bytes(peap->tunnel, L_CHECKSUM_SHA256, 32, true,
|
||||||
memcpy(random + 32, peap->tunnel->pending.server_random, 32);
|
"client EAP encryption", msk_emsk, 128);
|
||||||
|
|
||||||
l_tls_prf_get_bytes(peap->tunnel, L_CHECKSUM_SHA256, 32,
|
|
||||||
peap->tunnel->pending.master_secret,
|
|
||||||
sizeof(peap->tunnel->pending.master_secret),
|
|
||||||
"client EAP encryption", random, 64,
|
|
||||||
msk_emsk, 128);
|
|
||||||
|
|
||||||
eap_set_key_material(eap, msk_emsk + 0, 64, NULL, 0, NULL, 0);
|
eap_set_key_material(eap, msk_emsk + 0, 64, NULL, 0, NULL, 0);
|
||||||
|
|
||||||
|
@ -29,8 +29,6 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <ell/ell.h>
|
#include <ell/ell.h>
|
||||||
|
|
||||||
#include "ell/tls-private.h"
|
|
||||||
|
|
||||||
#include "eap.h"
|
#include "eap.h"
|
||||||
#include "eap-private.h"
|
#include "eap-private.h"
|
||||||
|
|
||||||
@ -137,7 +135,6 @@ static void eap_tls_ready_cb(const char *peer_identity, void *user_data)
|
|||||||
struct eap_tls_state *tls = eap_get_data(eap);
|
struct eap_tls_state *tls = eap_get_data(eap);
|
||||||
uint8_t msk_emsk[128];
|
uint8_t msk_emsk[128];
|
||||||
uint8_t iv[64];
|
uint8_t iv[64];
|
||||||
uint8_t seed[64];
|
|
||||||
|
|
||||||
/* TODO: if we have a CA certificate require non-NULL peer_identity */
|
/* TODO: if we have a CA certificate require non-NULL peer_identity */
|
||||||
|
|
||||||
@ -147,19 +144,10 @@ static void eap_tls_ready_cb(const char *peer_identity, void *user_data)
|
|||||||
eap_start_complete_timeout(eap);
|
eap_start_complete_timeout(eap);
|
||||||
|
|
||||||
/* MSK, EMSK and IV derivation */
|
/* MSK, EMSK and IV derivation */
|
||||||
memcpy(seed + 0, tls->tls->pending.client_random, 32);
|
l_tls_prf_get_bytes(tls->tls, L_CHECKSUM_SHA256, 32, true,
|
||||||
memcpy(seed + 32, tls->tls->pending.server_random, 32);
|
"client EAP encryption", msk_emsk, 128);
|
||||||
|
l_tls_prf_get_bytes(tls->tls, L_CHECKSUM_SHA256, 32, false,
|
||||||
l_tls_prf_get_bytes(tls->tls, L_CHECKSUM_SHA256, 32,
|
"client EAP encryption", iv, 64);
|
||||||
tls->tls->pending.master_secret,
|
|
||||||
sizeof(tls->tls->pending.master_secret),
|
|
||||||
"client EAP encryption", seed, 64,
|
|
||||||
msk_emsk, 128);
|
|
||||||
l_tls_prf_get_bytes(tls->tls, L_CHECKSUM_SHA256, 32, NULL, 0,
|
|
||||||
"client EAP encryption", seed, 64,
|
|
||||||
iv, 64);
|
|
||||||
|
|
||||||
memset(seed, 0, 64);
|
|
||||||
|
|
||||||
eap_set_key_material(eap, msk_emsk + 0, 64, msk_emsk + 64, 64, iv, 64);
|
eap_set_key_material(eap, msk_emsk + 0, 64, msk_emsk + 64, 64, iv, 64);
|
||||||
}
|
}
|
||||||
|
@ -29,8 +29,6 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <ell/ell.h>
|
#include <ell/ell.h>
|
||||||
|
|
||||||
#include "ell/tls-private.h"
|
|
||||||
|
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "eap.h"
|
#include "eap.h"
|
||||||
#include "eap-private.h"
|
#include "eap-private.h"
|
||||||
@ -455,18 +453,8 @@ static void eap_ttls_phase2_chap_generate_challenge(struct l_tls *tunnel,
|
|||||||
uint8_t *challenge,
|
uint8_t *challenge,
|
||||||
size_t challenge_len)
|
size_t challenge_len)
|
||||||
{
|
{
|
||||||
uint8_t seed[64];
|
l_tls_prf_get_bytes(tunnel, L_CHECKSUM_SHA256, 32, true,
|
||||||
|
"ttls challenge", challenge, challenge_len);
|
||||||
memcpy(seed + 0, tunnel->pending.client_random, 32);
|
|
||||||
memcpy(seed + 32, tunnel->pending.server_random, 32);
|
|
||||||
|
|
||||||
l_tls_prf_get_bytes(tunnel, L_CHECKSUM_SHA256, 32,
|
|
||||||
tunnel->pending.master_secret,
|
|
||||||
sizeof(tunnel->pending.master_secret),
|
|
||||||
"ttls challenge", seed, 64,
|
|
||||||
challenge, challenge_len);
|
|
||||||
|
|
||||||
memset(seed, 0, 64);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool eap_ttls_phase2_chap_init(struct eap_state *eap)
|
static bool eap_ttls_phase2_chap_init(struct eap_state *eap)
|
||||||
@ -696,7 +684,6 @@ static void eap_ttls_ready_cb(const char *peer_identity, void *user_data)
|
|||||||
struct eap_state *eap = user_data;
|
struct eap_state *eap = user_data;
|
||||||
struct eap_ttls_state *ttls = eap_get_data(eap);
|
struct eap_ttls_state *ttls = eap_get_data(eap);
|
||||||
uint8_t msk_emsk[128];
|
uint8_t msk_emsk[128];
|
||||||
uint8_t seed[64];
|
|
||||||
|
|
||||||
/* TODO: if we have a CA certificate require non-NULL peer_identity */
|
/* TODO: if we have a CA certificate require non-NULL peer_identity */
|
||||||
|
|
||||||
@ -710,16 +697,8 @@ static void eap_ttls_ready_cb(const char *peer_identity, void *user_data)
|
|||||||
eap_method_success(eap);
|
eap_method_success(eap);
|
||||||
|
|
||||||
/* MSK, EMSK and challenge derivation */
|
/* MSK, EMSK and challenge derivation */
|
||||||
memcpy(seed + 0, ttls->tls->pending.client_random, 32);
|
l_tls_prf_get_bytes(ttls->tls, L_CHECKSUM_SHA256, 32, true,
|
||||||
memcpy(seed + 32, ttls->tls->pending.server_random, 32);
|
"ttls keying material", msk_emsk, 128);
|
||||||
|
|
||||||
l_tls_prf_get_bytes(ttls->tls, L_CHECKSUM_SHA256, 32,
|
|
||||||
ttls->tls->pending.master_secret,
|
|
||||||
sizeof(ttls->tls->pending.master_secret),
|
|
||||||
"ttls keying material", seed, 64,
|
|
||||||
msk_emsk, 128);
|
|
||||||
|
|
||||||
memset(seed, 0, 64);
|
|
||||||
|
|
||||||
eap_set_key_material(eap, msk_emsk + 0, 64, msk_emsk + 64, 64,
|
eap_set_key_material(eap, msk_emsk + 0, 64, msk_emsk + 64, 64,
|
||||||
NULL, 0);
|
NULL, 0);
|
||||||
|
@ -30,8 +30,6 @@
|
|||||||
#include <linux/if_ether.h>
|
#include <linux/if_ether.h>
|
||||||
#include <ell/ell.h>
|
#include <ell/ell.h>
|
||||||
|
|
||||||
#include "ell/tls-private.h"
|
|
||||||
|
|
||||||
#include "src/util.h"
|
#include "src/util.h"
|
||||||
#include "src/eapol.h"
|
#include "src/eapol.h"
|
||||||
#include "src/crypto.h"
|
#include "src/crypto.h"
|
||||||
@ -2840,20 +2838,14 @@ static void eapol_sm_test_tls_test_ready(const char *peer_identity,
|
|||||||
void *user_data)
|
void *user_data)
|
||||||
{
|
{
|
||||||
struct eapol_8021x_tls_test_state *s = user_data;
|
struct eapol_8021x_tls_test_state *s = user_data;
|
||||||
uint8_t seed[64];
|
|
||||||
|
|
||||||
assert(!s->tx_ack);
|
assert(!s->tx_ack);
|
||||||
/* TODO: require the right peer_identity */
|
/* TODO: require the right peer_identity */
|
||||||
|
|
||||||
s->success = true;
|
s->success = true;
|
||||||
|
|
||||||
memcpy(seed + 0, s->tls->pending.client_random, 32);
|
l_tls_prf_get_bytes(s->tls, L_CHECKSUM_SHA256, 32, true,
|
||||||
memcpy(seed + 32, s->tls->pending.server_random, 32);
|
"client EAP encryption", s->pmk, 32);
|
||||||
|
|
||||||
l_tls_prf_get_bytes(s->tls, L_CHECKSUM_SHA256, 32,
|
|
||||||
s->tls->pending.master_secret,
|
|
||||||
sizeof(s->tls->pending.master_secret),
|
|
||||||
"client EAP encryption", seed, 64, s->pmk, 32);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void eapol_sm_test_tls_test_disconnected(enum l_tls_alert_desc reason,
|
static void eapol_sm_test_tls_test_disconnected(enum l_tls_alert_desc reason,
|
||||||
@ -3164,19 +3156,12 @@ static void eapol_sm_test_eap_ttls_test_ready(const char *peer_identity,
|
|||||||
void *user_data)
|
void *user_data)
|
||||||
{
|
{
|
||||||
struct eapol_8021x_eap_ttls_test_state *s = user_data;
|
struct eapol_8021x_eap_ttls_test_state *s = user_data;
|
||||||
uint8_t seed[64];
|
|
||||||
|
|
||||||
assert(!s->tls.tx_ack);
|
assert(!s->tls.tx_ack);
|
||||||
/* TODO: require the right peer_identity */
|
/* TODO: require the right peer_identity */
|
||||||
|
|
||||||
memcpy(seed + 0, s->tls.tls->pending.client_random, 32);
|
l_tls_prf_get_bytes(s->tls.tls, L_CHECKSUM_SHA256, 32, true,
|
||||||
memcpy(seed + 32, s->tls.tls->pending.server_random, 32);
|
"ttls keying material", s->tls.pmk, 32);
|
||||||
|
|
||||||
l_tls_prf_get_bytes(s->tls.tls, L_CHECKSUM_SHA256, 32,
|
|
||||||
s->tls.tls->pending.master_secret,
|
|
||||||
sizeof(s->tls.tls->pending.master_secret),
|
|
||||||
"ttls keying material", seed, 64,
|
|
||||||
s->tls.pmk, 32);
|
|
||||||
|
|
||||||
s->challenge_sent = false;
|
s->challenge_sent = false;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user