Add skeleton for TKM keymat variant
[strongswan.git] / src / charon-tkm / src / charon-tkm.c
index 3e52fa4..e102b4e 100644 (file)
 #include <library.h>
 #include <utils/backtrace.h>
 #include <threading/thread.h>
+#include <sa/keymat.h>
 
 #include "tkm.h"
+#include "tkm_nonceg.h"
+#include "tkm_diffie_hellman.h"
+#include "tkm_keymat.h"
 
 /**
  * PID file, in which charon-tkm stores its process id
@@ -267,6 +271,20 @@ int main(int argc, char *argv[])
 
        DBG1(DBG_DMN, "Starting charon with TKM backend (strongSwan "VERSION")");
 
+       /* register TKM specific plugins */
+       static plugin_feature_t features[] = {
+               PLUGIN_REGISTER(NONCE_GEN, tkm_nonceg_create),
+                       PLUGIN_PROVIDE(NONCE_GEN),
+               PLUGIN_REGISTER(DH, tkm_diffie_hellman_create),
+                       PLUGIN_PROVIDE(DH, MODP_3072_BIT),
+                       PLUGIN_PROVIDE(DH, MODP_4096_BIT),
+       };
+       lib->plugins->add_static_features(lib->plugins, "tkm-backend", features,
+                       countof(features), TRUE);
+
+       /* register TKM keymat variant */
+       keymat_register_constructor(IKEV2, (keymat_constructor_t)tkm_keymat_create);
+
        /* initialize daemon */
        if (!charon->initialize(charon, PLUGINS))
        {