From: Martin Willi Date: Fri, 27 Nov 2009 10:16:20 +0000 (+0100) Subject: Invoke attribute/key hooks from libsimaka X-Git-Tag: 4.3.6~161 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5a91fd453641c81b3d51470710cb7a257c8db993;p=thirdparty%2Fstrongswan.git Invoke attribute/key hooks from libsimaka --- diff --git a/src/libsimaka/simaka_crypto.c b/src/libsimaka/simaka_crypto.c index 4afab234bc..b85502012e 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 b64ff1b9a0..22d111bfd3 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); + } } /**