tkm_nonceg: Return nonce generated by TKM
authorReto Buerki <reet@codelabs.ch>
Tue, 12 Jun 2012 09:05:14 +0000 (11:05 +0200)
committerTobias Brunner <tobias@strongswan.org>
Tue, 19 Mar 2013 14:23:45 +0000 (15:23 +0100)
src/charon-tkm/src/tkm/tkm_nonceg.c

index 1a83a5b..9ac32a7 100644 (file)
@@ -16,6 +16,9 @@
 
 #include "tkm_nonceg.h"
 
+#include <tkm/client.h>
+#include <tkm/constants.h>
+
 typedef struct private_tkm_nonceg_t private_tkm_nonceg_t;
 
 /**
@@ -33,7 +36,16 @@ struct private_tkm_nonceg_t {
 METHOD(nonce_gen_t, get_nonce, bool,
        private_tkm_nonceg_t *this, size_t size, u_int8_t *buffer)
 {
-       // TODO: Request nonce from TKM and fill it into buffer.
+       nonce_type nonce;
+
+       /* request nonce from TKM, the context is not yet used */
+       const result_type result = ike_nc_create(1, size, &nonce);
+       if (result != TKM_OK)
+       {
+               return FALSE;
+       }
+
+       memcpy(buffer, &nonce.data, size);
        return TRUE;
 }