Move pkcs11 public key lookup function declaration to header file
authorMartin Willi <martin@revosec.ch>
Mon, 15 Oct 2012 12:04:42 +0000 (14:04 +0200)
committerMartin Willi <martin@revosec.ch>
Wed, 24 Oct 2012 11:07:52 +0000 (13:07 +0200)
src/libstrongswan/plugins/pkcs11/pkcs11_private_key.c
src/libstrongswan/plugins/pkcs11/pkcs11_public_key.c
src/libstrongswan/plugins/pkcs11/pkcs11_public_key.h

index f7f7d3f..4f74f18 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "pkcs11_library.h"
 #include "pkcs11_manager.h"
+#include "pkcs11_public_key.h"
 
 #include <debug.h>
 
@@ -81,12 +82,6 @@ struct private_pkcs11_private_key_t {
        key_type_t type;
 };
 
-/**
- * Implemented in pkcs11_public_key.c
- */
-public_key_t *pkcs11_public_key_connect(pkcs11_library_t *p11,
-                                                                       int slot, key_type_t type, chunk_t keyid);
-
 
 METHOD(private_key_t, get_type, key_type_t,
        private_pkcs11_private_key_t *this)
index f0d7093..a8bfb56 100644 (file)
@@ -882,20 +882,10 @@ static private_pkcs11_public_key_t *find_key_by_keyid(pkcs11_library_t *p11,
 }
 
 /**
- * Find a public key on the given token with a specific keyid.
- *
- * Used by pkcs11_private_key_t.
- *
- * TODO: if no public key is found, we should perhaps search for a certificate
- * with the given keyid and extract the key from there
- *
- * @param p11          PKCS#11 module
- * @param slot         slot id
- * @param type         type of the key
- * @param keyid                key id
+ * See header.
  */
-pkcs11_public_key_t *pkcs11_public_key_connect(pkcs11_library_t *p11,
-                                                                       int slot, key_type_t type, chunk_t keyid)
+public_key_t *pkcs11_public_key_connect(pkcs11_library_t *p11, int slot,
+                                                                               key_type_t type, chunk_t keyid)
 {
        private_pkcs11_public_key_t *this;
 
@@ -904,5 +894,5 @@ pkcs11_public_key_t *pkcs11_public_key_connect(pkcs11_library_t *p11,
        {
                return NULL;
        }
-       return &this->public;
+       return &this->public.key;
 }
index b3ea725..4585e73 100644 (file)
@@ -26,6 +26,8 @@ typedef struct pkcs11_public_key_t pkcs11_public_key_t;
 #include <credentials/builder.h>
 #include <credentials/keys/private_key.h>
 
+#include "pkcs11_library.h"
+
 /**
  * PKCS#11 based public key implementation.
  */
@@ -46,4 +48,15 @@ struct pkcs11_public_key_t {
  */
 pkcs11_public_key_t *pkcs11_public_key_load(key_type_t type, va_list args);
 
+/**
+ * Find a public key on the given token with a specific keyid.
+ *
+ * @param p11          PKCS#11 module
+ * @param slot         slot id
+ * @param type         type of the key
+ * @param keyid                key id
+ */
+public_key_t *pkcs11_public_key_connect(pkcs11_library_t *p11, int slot,
+                                                                               key_type_t type, chunk_t keyid);
+
 #endif /** PKCS11_PUBLIC_KEY_H_ @}*/