summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStef Walter <stefw@collabora.co.uk>2011-05-30 13:11:26 +0200
committerStef Walter <stefw@collabora.co.uk>2011-05-30 13:11:26 +0200
commit2aa964160a1615077db18b03a6c72c286c27791f (patch)
treed8737ef5bf7ec6f7824bdfe01a11a5482ad9065f
parentcfeaf3de3d745d457feaba48c532d7a384d67341 (diff)
downloadp11-kit-2aa964160a1615077db18b03a6c72c286c27791f.tar.gz
Allow use with CRYPTOKI_GNU style use of PKCS#11
-rw-r--r--doc/p11-kit-sections.txt10
-rw-r--r--p11-kit/p11-kit.h11
-rw-r--r--p11-kit/uri.c2
-rw-r--r--p11-kit/uri.h14
4 files changed, 33 insertions, 4 deletions
diff --git a/doc/p11-kit-sections.txt b/doc/p11-kit-sections.txt
index c7b1596..baae53f 100644
--- a/doc/p11-kit-sections.txt
+++ b/doc/p11-kit-sections.txt
@@ -43,4 +43,12 @@ p11_kit_finalize_module
<SECTION>
<FILE>p11-kit-util</FILE>
p11_kit_strerror
-</SECTION> \ No newline at end of file
+<SUBSECTION Private>
+CK_FUNCTION_LIST_PTR
+CK_RV
+CK_ATTRIBUTE_PTR
+CK_ATTRIBUTE_TYPE
+CK_INFO_PTR
+CK_TOKEN_INFO_PTR
+CK_ULONG
+</SECTION>
diff --git a/p11-kit/p11-kit.h b/p11-kit/p11-kit.h
index 8807058..bf4bbcd 100644
--- a/p11-kit/p11-kit.h
+++ b/p11-kit/p11-kit.h
@@ -46,6 +46,15 @@
#include "p11-kit/pkcs11.h"
+/*
+ * If the caller is using the PKCS#11 GNU calling convention, then we cater
+ * to that here.
+ */
+#ifdef CRYPTOKI_GNU
+typedef ck_rv_t CK_RV;
+typedef struct ck_function_list* CK_FUNCTION_LIST_PTR;
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -68,7 +77,7 @@ CK_RV p11_kit_initialize_module (CK_FUNCTION_LIST_PTR
CK_RV p11_kit_finalize_module (CK_FUNCTION_LIST_PTR module);
CK_RV p11_kit_load_initialize_module (const char *module_path,
- CK_FUNCTION_LIST_PTR_PTR module);
+ CK_FUNCTION_LIST_PTR *module);
const char* p11_kit_strerror (CK_RV rv);
diff --git a/p11-kit/uri.c b/p11-kit/uri.c
index 14d00b1..55b0809 100644
--- a/p11-kit/uri.c
+++ b/p11-kit/uri.c
@@ -127,7 +127,7 @@ static const CK_ATTRIBUTE_TYPE SUPPORTED_ATTRIBUTE_TYPES[] = {
#define NUM_ATTRIBUTE_TYPES \
(sizeof (SUPPORTED_ATTRIBUTE_TYPES) / sizeof (SUPPORTED_ATTRIBUTE_TYPES[0]))
-struct _P11KitUri {
+struct p11_kit_uri {
int unrecognized;
CK_INFO module;
CK_TOKEN_INFO token;
diff --git a/p11-kit/uri.h b/p11-kit/uri.h
index 1cf5c00..e19166d 100644
--- a/p11-kit/uri.h
+++ b/p11-kit/uri.h
@@ -50,6 +50,18 @@
extern "C" {
#endif
+/*
+ * If the caller is using the PKCS#11 GNU calling convention, then we cater
+ * to that here.
+ */
+#ifdef CRYPTOKI_GNU
+typedef struct ck_info *CK_INFO_PTR;
+typedef struct ck_token_info *CK_TOKEN_INFO_PTR;
+typedef ck_attribute_type_t CK_ATTRIBUTE_TYPE;
+typedef struct ck_attribute *CK_ATTRIBUTE_PTR;
+typedef unsigned long int CK_ULONG;
+#endif
+
#define P11_KIT_URI_SCHEME "pkcs11:"
#define P11_KIT_URI_SCHEME_LEN 7
@@ -70,7 +82,7 @@ typedef enum {
P11_KIT_URI_IS_ANY = 0x0000FFFF,
} P11KitUriType;
-typedef struct _P11KitUri P11KitUri;
+typedef struct p11_kit_uri P11KitUri;
CK_INFO_PTR p11_kit_uri_get_module_info (P11KitUri *uri);