aboutsummaryrefslogtreecommitdiffstats
path: root/src/libtls/tls_crypto.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2010-08-24 08:42:10 +0200
committerMartin Willi <martin@revosec.ch>2010-08-24 08:45:49 +0200
commitbda7d9d940d73f0a0d5b19136d99ea16b5178844 (patch)
tree482cdf48130be6d2e250fe9210661b840baac7ff /src/libtls/tls_crypto.c
parentf55f9c4e1ed1b0cfdd9e0ae75b4b76ec22ff80b4 (diff)
downloadstrongswan-bda7d9d940d73f0a0d5b19136d99ea16b5178844.tar.bz2
strongswan-bda7d9d940d73f0a0d5b19136d99ea16b5178844.tar.xz
Added generic TLS purposes
Diffstat (limited to 'src/libtls/tls_crypto.c')
-rw-r--r--src/libtls/tls_crypto.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/libtls/tls_crypto.c b/src/libtls/tls_crypto.c
index a12944af1..12c6b9851 100644
--- a/src/libtls/tls_crypto.c
+++ b/src/libtls/tls_crypto.c
@@ -862,13 +862,16 @@ METHOD(tls_crypto_t, change_cipher, void,
METHOD(tls_crypto_t, derive_eap_msk, void,
private_tls_crypto_t *this, chunk_t client_random, chunk_t server_random)
{
- chunk_t seed;
+ if (this->msk_label)
+ {
+ chunk_t seed;
- seed = chunk_cata("cc", client_random, server_random);
- free(this->msk.ptr);
- this->msk = chunk_alloc(64);
- this->prf->get_bytes(this->prf, this->msk_label, seed,
- this->msk.len, this->msk.ptr);
+ seed = chunk_cata("cc", client_random, server_random);
+ free(this->msk.ptr);
+ this->msk = chunk_alloc(64);
+ this->prf->get_bytes(this->prf, this->msk_label, seed,
+ this->msk.len, this->msk.ptr);
+ }
}
METHOD(tls_crypto_t, get_eap_msk, chunk_t,
@@ -931,6 +934,10 @@ tls_crypto_t *tls_crypto_create(tls_t *tls)
this->msk_label = "ttls keying material";
build_cipher_suite_list(this, TRUE);
break;
+ case TLS_PURPOSE_GENERIC:
+ case TLS_PURPOSE_GENERIC_CLIENT_AUTH:
+ build_cipher_suite_list(this, TRUE);
+ break;
}
return &this->public;
}