diff options
author | Martin Willi <martin@strongswan.org> | 2009-11-27 11:16:20 +0100 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2009-11-30 09:27:34 +0100 |
commit | 5a91fd453641c81b3d51470710cb7a257c8db993 (patch) | |
tree | 39a6d75fa5132c9efb6d3ad06a4036060b5e79d5 /src | |
parent | 8434c88b5e482db47b77c4dd34cad2cf6dc761ec (diff) | |
download | strongswan-5a91fd453641c81b3d51470710cb7a257c8db993.tar.bz2 strongswan-5a91fd453641c81b3d51470710cb7a257c8db993.tar.xz |
Invoke attribute/key hooks from libsimaka
Diffstat (limited to 'src')
-rw-r--r-- | src/libsimaka/simaka_crypto.c | 4 | ||||
-rw-r--r-- | src/libsimaka/simaka_message.c | 14 |
2 files changed, 13 insertions, 5 deletions
diff --git a/src/libsimaka/simaka_crypto.c b/src/libsimaka/simaka_crypto.c index 4afab234b..b85502012 100644 --- a/src/libsimaka/simaka_crypto.c +++ b/src/libsimaka/simaka_crypto.c @@ -124,6 +124,8 @@ static chunk_t derive_keys_full(private_simaka_crypto_t *this, this->signer->set_key(this->signer, k_auth); this->crypter->set_key(this->crypter, k_encr); + charon->sim->key_hook(charon->sim, k_encr, k_auth); + this->derived = TRUE; return chunk_clone(msk); } @@ -150,6 +152,8 @@ static void derive_keys_reauth(private_simaka_crypto_t *this, chunk_t mk) this->signer->set_key(this->signer, k_auth); this->crypter->set_key(this->crypter, k_encr); + charon->sim->key_hook(charon->sim, k_encr, k_auth); + this->derived = TRUE; } diff --git a/src/libsimaka/simaka_message.c b/src/libsimaka/simaka_message.c index b64ff1b9a..22d111bfd 100644 --- a/src/libsimaka/simaka_message.c +++ b/src/libsimaka/simaka_message.c @@ -256,12 +256,16 @@ static void add_attribute(private_simaka_message_t *this, { attr_t *attr; - attr = malloc(sizeof(attr_t) + data.len); - attr->len = data.len; - attr->type = type; - memcpy(attr->data, data.ptr, data.len); + if (!charon->sim->attribute_hook(charon->sim, this->hdr->code, + this->hdr->type, this->hdr->subtype, type, data)) + { + attr = malloc(sizeof(attr_t) + data.len); + attr->len = data.len; + attr->type = type; + memcpy(attr->data, data.ptr, data.len); - this->attributes->insert_last(this->attributes, attr); + this->attributes->insert_last(this->attributes, attr); + } } /** |