Added method to add additional shared secrets to stroke_cred_t.
authorTobias Brunner <tobias@strongswan.org>
Tue, 17 Apr 2012 09:14:38 +0000 (11:14 +0200)
committerTobias Brunner <tobias@strongswan.org>
Tue, 17 Apr 2012 12:20:58 +0000 (14:20 +0200)
src/libcharon/plugins/stroke/stroke_cred.c
src/libcharon/plugins/stroke/stroke_cred.h

index c004e7d..2b96833 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008-2011 Tobias Brunner
+ * Copyright (C) 2008-2012 Tobias Brunner
  * Copyright (C) 2008 Martin Willi
  * Hochschule fuer Technik Rapperswil
  *
@@ -1065,6 +1065,12 @@ METHOD(stroke_cred_t, reread, void,
        }
 }
 
+METHOD(stroke_cred_t, add_shared, void,
+       private_stroke_cred_t *this, shared_key_t *shared, linked_list_t *owners)
+{
+       this->creds->add_shared_list(this->creds, shared, owners);
+}
+
 METHOD(stroke_cred_t, destroy, void,
        private_stroke_cred_t *this)
 {
@@ -1092,6 +1098,7 @@ stroke_cred_t *stroke_cred_create()
                        .reread = _reread,
                        .load_ca = _load_ca,
                        .load_peer = _load_peer,
+                       .add_shared = _add_shared,
                        .cachecrl = _cachecrl,
                        .destroy = _destroy,
                },
index ccee7d8..89b235f 100644 (file)
@@ -1,4 +1,5 @@
 /*
+ * Copyright (C) 2012 Tobias Brunner
  * Copyright (C) 2008 Martin Willi
  * Hochschule fuer Technik Rapperswil
  *
@@ -26,6 +27,7 @@
 #include <stroke_msg.h>
 #include <credentials/credential_set.h>
 #include <credentials/certificates/certificate.h>
+#include <utils/linked_list.h>
 
 typedef struct stroke_cred_t stroke_cred_t;
 
@@ -56,7 +58,7 @@ struct stroke_cred_t {
        certificate_t* (*load_ca)(stroke_cred_t *this, char *filename);
 
        /**
-        * Load a peer certificate and serve it rhrough the credential_set.
+        * Load a peer certificate and serve it through the credential_set.
         *
         * @param filename              file to load peer cert from
         * @return                              reference to loaded certificate, or NULL
@@ -64,6 +66,15 @@ struct stroke_cred_t {
        certificate_t* (*load_peer)(stroke_cred_t *this, char *filename);
 
        /**
+        * Add a shared secret to serve through the credential_set.
+        *
+        * @param shared                shared key to add, gets owned
+        * @param owners                list of owners (identification_t*), gets owned
+        */
+       void (*add_shared)(stroke_cred_t *this, shared_key_t *shared,
+                                          linked_list_t *owners);
+
+       /**
         * Enable/Disable CRL caching to disk.
         *
         * @param enabled               TRUE to enable, FALSE to disable