]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
Added initial PKCS #11 support. Certtool can now print lists of certificates
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Sun, 9 May 2010 15:20:40 +0000 (17:20 +0200)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Thu, 3 Jun 2010 17:52:30 +0000 (19:52 +0200)
available in system.

lib/Makefile.am
lib/configure.ac
lib/includes/gnutls/pkcs11.h
lib/pkcs11.c
src/certtool-gaa.c
src/certtool-gaa.h
src/certtool.gaa
src/pkcs11.c

index 6eeb5a216ad66a60204339afead245347fb47eb8..dac14faf4c688d28749f02fd3c1531f21f2f7b5e 100644 (file)
@@ -95,6 +95,10 @@ else
 SUBDIRS += gcrypt
 endif
 
+if ENABLE_PKCS11
+COBJECTS += pkcs11.c
+endif
+
 if ENABLE_OPRFI
 COBJECTS += $(OPRFI_COBJECTS)
 endif
index a372b89a145cf10aaac1fc2ea58dbfbc0dbf56e6..0918742d52196dd1614b5cad7b1aede9d46cab29 100644 (file)
@@ -90,10 +90,6 @@ if test x$ac_pakchois != xno; then
    AC_MSG_ERROR(
 *** 
 *** Pakchois was not found. This is required for PKCS11 support.)
- fi
-else
- AC_MSG_RESULT(no)
-fi
 AM_CONDITIONAL(ENABLE_PAKCHOIS, test "$ac_cv_libpakchois" = "yes")
 
 lgl_INIT
index cc2f861cd1f0051c22544514c3bda1c34b21d9e8..f121b0f5cf3a9c32ba9e7c2ee084c4c9360d6448 100644 (file)
@@ -18,7 +18,6 @@
 #include <gnutls/gnutls.h>
 #include <gnutls/x509.h>
 
-
 #define GNUTLS_PKCS11_MAX_PIN_LEN 32
 
 /**
@@ -70,8 +69,6 @@ typedef int (*gnutls_pkcs11_pin_callback_t)(void *userdata, int attempt,
 struct gnutls_pkcs11_obj_st;
 typedef struct gnutls_pkcs11_obj_st* gnutls_pkcs11_obj_t;
 
-
-
 #define GNUTLS_PKCS11_FLAG_MANUAL 0 /* Manual loading of libraries */
 #define GNUTLS_PKCS11_FLAG_AUTO 1 /* Automatically load libraries by reading /etc/gnutls/pkcs11.conf */
 
@@ -113,7 +110,7 @@ void gnutls_pkcs11_set_token_function(gnutls_pkcs11_token_callback_t fn, void *u
  * @param data         Data to use when calling callback.
  * @return gnutls status.
  */
-void gnutls_pkcs11_set_pin_function (gnutls_pkcs11_pin_callback_t callback, void * const data);
+void gnutls_pkcs11_set_pin_function (gnutls_pkcs11_pin_callback_t callback, void * data);
 
 /**
  * @brief Add PKCS#11 provider.
index cfb9550716d3bb1b9a83726220e33183457e1bb6..5e9bfeeccf4668dbf98069b6d4225e90cce80e86 100644 (file)
@@ -491,7 +491,6 @@ size_t l;
     ret = 0;
    
 cleanup:
-    
     return ret;
 
 }
@@ -572,7 +571,6 @@ int pkcs11_info_to_url(const struct pkcs11_url_info* info, char** url)
         init = 1;
     }
 
-
     if (info->manufacturer[0]) {
         ret = append(&str, info->manufacturer, "manufacturer", init);
         if (ret < 0) {
index 8d2a250577613175b626487d2d2e5b483dca9bbb..f70ecadf52821f2f1859d6f0c3df9c984287a3a2 100644 (file)
@@ -201,37 +201,37 @@ typedef struct _gaainfo gaainfo;
 
 struct _gaainfo
 {
-#line 149 "certtool.gaa"
+#line 148 "certtool.gaa"
        int debug;
-#line 142 "certtool.gaa"
+#line 141 "certtool.gaa"
        int pkcs11_type;
-#line 139 "certtool.gaa"
+#line 138 "certtool.gaa"
        char* pkcs11_url;
-#line 136 "certtool.gaa"
+#line 135 "certtool.gaa"
        char* pkcs11_provider;
-#line 133 "certtool.gaa"
+#line 132 "certtool.gaa"
        char *pkcs_cipher;
-#line 130 "certtool.gaa"
+#line 129 "certtool.gaa"
        char *template;
-#line 127 "certtool.gaa"
+#line 126 "certtool.gaa"
        char *infile;
-#line 124 "certtool.gaa"
+#line 123 "certtool.gaa"
        char *outfile;
-#line 121 "certtool.gaa"
+#line 120 "certtool.gaa"
        int quick_random;
-#line 118 "certtool.gaa"
+#line 117 "certtool.gaa"
        int bits;
-#line 114 "certtool.gaa"
+#line 113 "certtool.gaa"
        int outcert_format;
-#line 110 "certtool.gaa"
+#line 109 "certtool.gaa"
        int incert_format;
-#line 107 "certtool.gaa"
+#line 106 "certtool.gaa"
        int export;
-#line 104 "certtool.gaa"
+#line 103 "certtool.gaa"
        char *hash;
-#line 101 "certtool.gaa"
+#line 100 "certtool.gaa"
        int dsa;
-#line 98 "certtool.gaa"
+#line 97 "certtool.gaa"
        int pkcs8;
 #line 90 "certtool.gaa"
        int v1_cert;
@@ -853,14 +853,14 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list)
     {
        case GAAOPTID_version:
        OK = 0;
-#line 154 "certtool.gaa"
+#line 153 "certtool.gaa"
 { certtool_version(); exit(0); ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_help:
        OK = 0;
-#line 152 "certtool.gaa"
+#line 151 "certtool.gaa"
 { gaa_help(); exit(0); ;};
 
                return GAA_OK;
@@ -870,42 +870,42 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_debug.arg1, gaa_getint, GAATMP_debug.size1);
                gaa_index++;
-#line 150 "certtool.gaa"
+#line 149 "certtool.gaa"
 { gaaval->debug = GAATMP_debug.arg1 ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_pkcs11_list_tokens:
        OK = 0;
-#line 147 "certtool.gaa"
+#line 146 "certtool.gaa"
 { gaaval->action = ACTION_PKCS11_TOKENS; ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_pkcs11_list_all:
        OK = 0;
-#line 146 "certtool.gaa"
+#line 145 "certtool.gaa"
 { gaaval->action = ACTION_PKCS11_LIST; gaaval->pkcs11_type=PKCS11_TYPE_ALL; ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_pkcs11_list_all_certs:
        OK = 0;
-#line 145 "certtool.gaa"
+#line 144 "certtool.gaa"
 { gaaval->action = ACTION_PKCS11_LIST; gaaval->pkcs11_type=PKCS11_TYPE_CRT_ALL; ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_pkcs11_list_trusted:
        OK = 0;
-#line 144 "certtool.gaa"
+#line 143 "certtool.gaa"
 { gaaval->action = ACTION_PKCS11_LIST; gaaval->pkcs11_type=PKCS11_TYPE_TRUSTED; ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_pkcs11_list_certs:
        OK = 0;
-#line 143 "certtool.gaa"
+#line 142 "certtool.gaa"
 { gaaval->action = ACTION_PKCS11_LIST; gaaval->pkcs11_type=PKCS11_TYPE_PK; ;};
 
                return GAA_OK;
@@ -915,7 +915,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_pkcs11_export_url.arg1, gaa_getstr, GAATMP_pkcs11_export_url.size1);
                gaa_index++;
-#line 140 "certtool.gaa"
+#line 139 "certtool.gaa"
 { gaaval->action = ACTION_PKCS11_EXPORT_URL; gaaval->pkcs11_url = GAATMP_pkcs11_export_url.arg1; ;};
 
                return GAA_OK;
@@ -925,7 +925,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_pkcs11_provider.arg1, gaa_getstr, GAATMP_pkcs11_provider.size1);
                gaa_index++;
-#line 137 "certtool.gaa"
+#line 136 "certtool.gaa"
 { gaaval->pkcs11_provider = GAATMP_pkcs11_provider.arg1 ;};
 
                return GAA_OK;
@@ -935,7 +935,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_pkcs_cipher.arg1, gaa_getstr, GAATMP_pkcs_cipher.size1);
                gaa_index++;
-#line 134 "certtool.gaa"
+#line 133 "certtool.gaa"
 { gaaval->pkcs_cipher = GAATMP_pkcs_cipher.arg1 ;};
 
                return GAA_OK;
@@ -945,7 +945,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_template.arg1, gaa_getstr, GAATMP_template.size1);
                gaa_index++;
-#line 131 "certtool.gaa"
+#line 130 "certtool.gaa"
 { gaaval->template = GAATMP_template.arg1 ;};
 
                return GAA_OK;
@@ -955,7 +955,7 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_infile.arg1, gaa_getstr, GAATMP_infile.size1);
                gaa_index++;
-#line 128 "certtool.gaa"
+#line 127 "certtool.gaa"
 { gaaval->infile = GAATMP_infile.arg1 ;};
 
                return GAA_OK;
@@ -965,14 +965,14 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_outfile.arg1, gaa_getstr, GAATMP_outfile.size1);
                gaa_index++;
-#line 125 "certtool.gaa"
+#line 124 "certtool.gaa"
 { gaaval->outfile = GAATMP_outfile.arg1 ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_disable_quick_random:
        OK = 0;
-#line 122 "certtool.gaa"
+#line 121 "certtool.gaa"
 { gaaval->quick_random = 0; ;};
 
                return GAA_OK;
@@ -982,42 +982,42 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_bits.arg1, gaa_getint, GAATMP_bits.size1);
                gaa_index++;
-#line 119 "certtool.gaa"
+#line 118 "certtool.gaa"
 { gaaval->bits = GAATMP_bits.arg1 ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_outraw:
        OK = 0;
-#line 116 "certtool.gaa"
+#line 115 "certtool.gaa"
 { gaaval->outcert_format=1 ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_outder:
        OK = 0;
-#line 115 "certtool.gaa"
+#line 114 "certtool.gaa"
 { gaaval->outcert_format=1 ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_inraw:
        OK = 0;
-#line 112 "certtool.gaa"
+#line 111 "certtool.gaa"
 { gaaval->incert_format=1 ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_inder:
        OK = 0;
-#line 111 "certtool.gaa"
+#line 110 "certtool.gaa"
 { gaaval->incert_format=1 ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_export_ciphers:
        OK = 0;
-#line 108 "certtool.gaa"
+#line 107 "certtool.gaa"
 { gaaval->export=1 ;};
 
                return GAA_OK;
@@ -1027,21 +1027,21 @@ static int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list)
                GAA_TESTMOREARGS;
                GAA_FILL(GAATMP_hash.arg1, gaa_getstr, GAATMP_hash.size1);
                gaa_index++;
-#line 105 "certtool.gaa"
+#line 104 "certtool.gaa"
 { gaaval->hash = GAATMP_hash.arg1 ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_dsa:
        OK = 0;
-#line 102 "certtool.gaa"
+#line 101 "certtool.gaa"
 { gaaval->dsa=1 ;};
 
                return GAA_OK;
                break;
        case GAAOPTID_pkcs8:
        OK = 0;
-#line 99 "certtool.gaa"
+#line 98 "certtool.gaa"
 { gaaval->pkcs8=1 ;};
 
                return GAA_OK;
@@ -1329,13 +1329,13 @@ int gaa(int argc, char **argv, gaainfo *gaaval)
     if(inited == 0)
     {
 
-#line 156 "certtool.gaa"
+#line 155 "certtool.gaa"
 { gaaval->bits = 2048; gaaval->pkcs8 = 0; gaaval->privkey = NULL; gaaval->ca=NULL; gaaval->ca_privkey = NULL; 
        gaaval->debug=1; gaaval->request = NULL; gaaval->infile = NULL; gaaval->outfile = NULL; gaaval->cert = NULL; 
        gaaval->incert_format = 0; gaaval->outcert_format = 0; gaaval->action=-1; gaaval->pass = NULL; gaaval->v1_cert = 0;
        gaaval->export = 0; gaaval->template = NULL; gaaval->hash=NULL; gaaval->fix_key = 0; gaaval->quick_random=1; 
        gaaval->privkey_op = 0; gaaval->pkcs_cipher = "3des"; gaaval->crq_extensions=1; gaaval->pkcs11_provider= NULL;
-       gaaval->pkcs11_url = NULL; gaaval->pkcs11_type = PKCS11_TYPE_PK; gaaval->pubkey=NULL; ;};
+       gaaval->pkcs11_url = NULL; ;};
 
     }
     inited = 1;
index 80b022a1bbfe37a77b7fc717ef3b682e7b4d275e..b96924aa61c2ccb03e2400ed994446b608ab5a9a 100644 (file)
@@ -8,37 +8,37 @@ typedef struct _gaainfo gaainfo;
 
 struct _gaainfo
 {
-#line 149 "certtool.gaa"
+#line 148 "certtool.gaa"
        int debug;
-#line 142 "certtool.gaa"
+#line 141 "certtool.gaa"
        int pkcs11_type;
-#line 139 "certtool.gaa"
+#line 138 "certtool.gaa"
        char* pkcs11_url;
-#line 136 "certtool.gaa"
+#line 135 "certtool.gaa"
        char* pkcs11_provider;
-#line 133 "certtool.gaa"
+#line 132 "certtool.gaa"
        char *pkcs_cipher;
-#line 130 "certtool.gaa"
+#line 129 "certtool.gaa"
        char *template;
-#line 127 "certtool.gaa"
+#line 126 "certtool.gaa"
        char *infile;
-#line 124 "certtool.gaa"
+#line 123 "certtool.gaa"
        char *outfile;
-#line 121 "certtool.gaa"
+#line 120 "certtool.gaa"
        int quick_random;
-#line 118 "certtool.gaa"
+#line 117 "certtool.gaa"
        int bits;
-#line 114 "certtool.gaa"
+#line 113 "certtool.gaa"
        int outcert_format;
-#line 110 "certtool.gaa"
+#line 109 "certtool.gaa"
        int incert_format;
-#line 107 "certtool.gaa"
+#line 106 "certtool.gaa"
        int export;
-#line 104 "certtool.gaa"
+#line 103 "certtool.gaa"
        char *hash;
-#line 101 "certtool.gaa"
+#line 100 "certtool.gaa"
        int dsa;
-#line 98 "certtool.gaa"
+#line 97 "certtool.gaa"
        int pkcs8;
 #line 90 "certtool.gaa"
        int v1_cert;
index 7ad13a114a6a0e9d7dc9776a0e9123ba61254eba..aaeb93daaaee1e740065151a7407061f1b087ca0 100644 (file)
@@ -94,7 +94,6 @@ option (to-p12) { $action = ACTION_TO_PKCS12; } "Generate a PKCS #12 structure."
 
 option (to-p8) { $action = ACTION_GENERATE_PKCS8; } "Generate a PKCS #8 key structure."
 
-
 #int pkcs8;
 option (8, pkcs8) { $pkcs8=1 } "Use PKCS #8 format for private keys."
 
@@ -158,4 +157,4 @@ init { $bits = 2048; $pkcs8 = 0; $privkey = NULL; $ca=NULL; $ca_privkey = NULL;
        $incert_format = 0; $outcert_format = 0; $action=-1; $pass = NULL; $v1_cert = 0;
        $export = 0; $template = NULL; $hash=NULL; $fix_key = 0; $quick_random=1; 
        $privkey_op = 0; $pkcs_cipher = "3des"; $crq_extensions=1; $pkcs11_provider= NULL;
-       $pkcs11_url = NULL; $pkcs11_type = PKCS11_TYPE_PK; $pubkey=NULL; }
+       $pkcs11_url = NULL; }
index cfd23408d41bb6843205f2af27cf8d2ca8eb7038..94704e324d9895721e7576ddabee5a97b3771251 100644 (file)
@@ -341,6 +341,4 @@ size_t size;
 
        return;
 
-
-
 }