aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdrian-Ken Rueegsegger <ken@codelabs.ch>2012-08-22 11:17:14 +0200
committerTobias Brunner <tobias@strongswan.org>2013-03-19 15:23:46 +0100
commit528fc21ffe01f4b7a0fcc277aeb5af3f993dbed3 (patch)
tree6cc13614e356566bc95e00d04140eb88b7ba54e4 /src
parentba0d7d9a76ec8dd8f53e92c8dd4b6bed794e6bf9 (diff)
downloadstrongswan-528fc21ffe01f4b7a0fcc277aeb5af3f993dbed3.tar.bz2
strongswan-528fc21ffe01f4b7a0fcc277aeb5af3f993dbed3.tar.xz
Add context id getter to TKM DH implementation
Diffstat (limited to 'src')
-rw-r--r--src/charon-tkm/src/tkm/tkm_diffie_hellman.c7
-rw-r--r--src/charon-tkm/src/tkm/tkm_diffie_hellman.h9
-rw-r--r--src/charon-tkm/tests/diffie_hellman_tests.c1
3 files changed, 17 insertions, 0 deletions
diff --git a/src/charon-tkm/src/tkm/tkm_diffie_hellman.c b/src/charon-tkm/src/tkm/tkm_diffie_hellman.c
index 21378da5a..9a38c1637 100644
--- a/src/charon-tkm/src/tkm/tkm_diffie_hellman.c
+++ b/src/charon-tkm/src/tkm/tkm_diffie_hellman.c
@@ -103,6 +103,12 @@ METHOD(diffie_hellman_t, destroy, void,
free(this);
}
+METHOD(tkm_diffie_hellman_t, get_id, dh_id_type,
+ private_tkm_diffie_hellman_t *this)
+{
+ return this->context_id;
+}
+
/*
* Described in header.
*/
@@ -119,6 +125,7 @@ tkm_diffie_hellman_t *tkm_diffie_hellman_create(diffie_hellman_group_t group)
.get_dh_group = _get_dh_group,
.destroy = _destroy,
},
+ .get_id = _get_id,
},
.group = group,
.context_id = tkm->idmgr->acquire_id(tkm->idmgr, TKM_CTX_DH),
diff --git a/src/charon-tkm/src/tkm/tkm_diffie_hellman.h b/src/charon-tkm/src/tkm/tkm_diffie_hellman.h
index 25d196764..0f457931a 100644
--- a/src/charon-tkm/src/tkm/tkm_diffie_hellman.h
+++ b/src/charon-tkm/src/tkm/tkm_diffie_hellman.h
@@ -20,6 +20,7 @@
typedef struct tkm_diffie_hellman_t tkm_diffie_hellman_t;
#include <library.h>
+#include <tkm/types.h>
/**
* diffie_hellman_t implementation using the trusted key manager.
@@ -30,6 +31,14 @@ struct tkm_diffie_hellman_t {
* Implements diffie_hellman_t interface.
*/
diffie_hellman_t dh;
+
+ /**
+ * Get Diffie-Hellman context id.
+ *
+ * @return id of this DH context.
+ */
+ dh_id_type (*get_id)(tkm_diffie_hellman_t * const this);
+
};
/**
diff --git a/src/charon-tkm/tests/diffie_hellman_tests.c b/src/charon-tkm/tests/diffie_hellman_tests.c
index c2e905e76..ffe99614d 100644
--- a/src/charon-tkm/tests/diffie_hellman_tests.c
+++ b/src/charon-tkm/tests/diffie_hellman_tests.c
@@ -27,6 +27,7 @@ START_TEST(test_dh_creation)
dh = tkm_diffie_hellman_create(MODP_4096_BIT);
fail_if(!dh, "MODP_4096 not created");
+ fail_if(!dh->get_id(dh), "Invalid context id (0)");
dh->dh.destroy(&dh->dh);
}