aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/charon/plugins/eap_tls/eap_tls.c17
-rw-r--r--src/charon/plugins/eap_tls/tls/tls.c18
2 files changed, 17 insertions, 18 deletions
diff --git a/src/charon/plugins/eap_tls/eap_tls.c b/src/charon/plugins/eap_tls/eap_tls.c
index 57f327991..fddd5073e 100644
--- a/src/charon/plugins/eap_tls/eap_tls.c
+++ b/src/charon/plugins/eap_tls/eap_tls.c
@@ -33,16 +33,6 @@ struct private_eap_tls_t {
eap_tls_t public;
/**
- * ID of the server
- */
- identification_t *server;
-
- /**
- * ID of the peer
- */
- identification_t *peer;
-
- /**
* Number of EAP-TLS messages processed so far
*/
int processed;
@@ -399,9 +389,6 @@ METHOD(eap_method_t, is_mutual, bool,
METHOD(eap_method_t, destroy, void,
private_eap_tls_t *this)
{
- this->peer->destroy(this->peer);
- this->server->destroy(this->server);
-
free(this->input.ptr);
free(this->output.ptr);
@@ -427,11 +414,9 @@ static eap_tls_t *eap_tls_create(identification_t *server,
.get_msk = _get_msk,
.destroy = _destroy,
},
- .peer = peer->clone(peer),
- .server = server->clone(server),
.is_server = is_server,
- .tls = tls_create(is_server, server, peer),
);
+ this->tls = tls_create(is_server, server, peer);
return &this->public;
}
diff --git a/src/charon/plugins/eap_tls/tls/tls.c b/src/charon/plugins/eap_tls/tls/tls.c
index 7bc7869da..39a46e2ce 100644
--- a/src/charon/plugins/eap_tls/tls/tls.c
+++ b/src/charon/plugins/eap_tls/tls/tls.c
@@ -74,6 +74,16 @@ struct private_tls_t {
bool is_server;
/**
+ * Server identity
+ */
+ identification_t *server;
+
+ /**
+ * Peer identity
+ */
+ identification_t *peer;
+
+ /**
* Negotiated TLS version
*/
tls_version_t version;
@@ -148,6 +158,8 @@ METHOD(tls_t, destroy, void,
this->fragmentation->destroy(this->fragmentation);
this->crypto->destroy(this->crypto);
this->handshake->destroy(this->handshake);
+ this->peer->destroy(this->peer);
+ this->server->destroy(this->server);
free(this);
}
@@ -172,18 +184,20 @@ tls_t *tls_create(bool is_server, identification_t *server,
},
.is_server = is_server,
.version = TLS_1_2,
+ .server = server->clone(server),
+ .peer = peer->clone(peer),
);
this->crypto = tls_crypto_create(&this->public);
if (is_server)
{
this->handshake = &tls_server_create(&this->public, this->crypto,
- server, peer)->handshake;
+ this->server, this->peer)->handshake;
}
else
{
this->handshake = &tls_peer_create(&this->public, this->crypto,
- peer, server)->handshake;
+ this->peer, this->server)->handshake;
}
this->fragmentation = tls_fragmentation_create(this->handshake);
this->compression = tls_compression_create(this->fragmentation);