From: Reto Buerki Date: Tue, 16 Oct 2012 15:12:51 +0000 (+0200) Subject: charon-tkm: Register TKM private key on startup X-Git-Tag: 5.0.3rc1~39^2~32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c457128ab6f532daffa8268614da6cbb51c0e482;p=thirdparty%2Fstrongswan.git charon-tkm: Register TKM private key on startup --- diff --git a/src/charon-tkm/src/charon-tkm.c b/src/charon-tkm/src/charon-tkm.c index 59c3ffaad7..eac9a27e2b 100644 --- a/src/charon-tkm/src/charon-tkm.c +++ b/src/charon-tkm/src/charon-tkm.c @@ -32,6 +32,7 @@ #include #include #include +#include #include "tkm.h" #include "tkm_nonceg.h" @@ -40,6 +41,7 @@ #include "tkm_listener.h" #include "tkm_kernel_ipsec.h" #include "tkm_public_key.h" +#include "tkm_private_key.h" /** * TKM bus listener for IKE authorize events. @@ -238,6 +240,10 @@ int main(int argc, char *argv[]) dmn_name = "charon-tkm"; } + /* credential set and TKM private key */ + mem_cred_t *creds; + tkm_private_key_t *key; + struct sigaction action; int status = SS_RC_INITIALIZATION_FAILED; @@ -341,6 +347,12 @@ int main(int argc, char *argv[]) listener = tkm_listener_create(); charon->bus->add_listener(charon->bus, &listener->listener); + /* register TKM private key */ + creds = mem_cred_create(); + key = tkm_private_key_init(); + creds->add_key(creds, (private_key_t *)key); + lib->credmgr->add_set(lib->credmgr, (credential_set_t*)creds); + /* add handler for SEGV and ILL, * INT and TERM are handled by sigwait() in run() */ action.sa_handler = segv_handler; @@ -366,6 +378,7 @@ int main(int argc, char *argv[]) status = 0; charon->bus->remove_listener(charon->bus, &listener->listener); listener->destroy(listener); + creds->destroy(creds); deinit: libcharon_deinit();