Add context id getter to TKM nonce generator
authorAdrian-Ken Rueegsegger <ken@codelabs.ch>
Tue, 21 Aug 2012 12:31:13 +0000 (14:31 +0200)
committerTobias Brunner <tobias@strongswan.org>
Tue, 19 Mar 2013 14:23:46 +0000 (15:23 +0100)
src/charon-tkm/src/tkm/tkm_nonceg.c
src/charon-tkm/src/tkm/tkm_nonceg.h
src/charon-tkm/tests/nonceg_tests.c

index 90b033f..7079412 100644 (file)
@@ -65,6 +65,12 @@ METHOD(nonce_gen_t, destroy, void,
        free(this);
 }
 
+METHOD(tkm_nonceg_t, get_id, nc_id_type,
+       private_tkm_nonceg_t *this)
+{
+       return this->context_id;
+}
+
 /*
  * Described in header.
  */
@@ -79,6 +85,7 @@ tkm_nonceg_t *tkm_nonceg_create()
                                .allocate_nonce = _allocate_nonce,
                                .destroy = _destroy,
                        },
+                       .get_id = _get_id,
                },
                .context_id = tkm->idmgr->acquire_id(tkm->idmgr, TKM_CTX_NONCE),
        );
index 907890b..25ec48a 100644 (file)
@@ -20,6 +20,7 @@
 typedef struct tkm_nonceg_t tkm_nonceg_t;
 
 #include <library.h>
+#include <tkm/types.h>
 
 /**
  * nonce_gen_t implementation using the trusted key manager.
@@ -30,6 +31,14 @@ struct tkm_nonceg_t {
         * Implements nonce_gen_t.
         */
        nonce_gen_t nonce_gen;
+
+       /**
+        * Get nonce context id.
+        *
+        * @return      context id of this nonce generator.
+        */
+       nc_id_type (*get_id)(tkm_nonceg_t * const this);
+
 };
 
 /**
index 202a9e5..3a1effa 100644 (file)
@@ -26,6 +26,7 @@ START_TEST(test_nonceg_creation)
 
        ng = tkm_nonceg_create();
        fail_if(ng == NULL, "Error creating tkm nonce generator");
+       fail_if(ng->get_id(ng) == 0, "Invalid context id (0)");
 
        ng->nonce_gen.destroy(&ng->nonce_gen);
 }