aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2009-11-27 11:16:20 +0100
committerMartin Willi <martin@strongswan.org>2009-11-30 09:27:34 +0100
commit5a91fd453641c81b3d51470710cb7a257c8db993 (patch)
tree39a6d75fa5132c9efb6d3ad06a4036060b5e79d5 /src
parent8434c88b5e482db47b77c4dd34cad2cf6dc761ec (diff)
downloadstrongswan-5a91fd453641c81b3d51470710cb7a257c8db993.tar.bz2
strongswan-5a91fd453641c81b3d51470710cb7a257c8db993.tar.xz
Invoke attribute/key hooks from libsimaka
Diffstat (limited to 'src')
-rw-r--r--src/libsimaka/simaka_crypto.c4
-rw-r--r--src/libsimaka/simaka_message.c14
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);
+ }
}
/**