]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
certtool: corrected import of pubkey in DER format
authorNikos Mavrogiannopoulos <nmav@redhat.com>
Wed, 1 Apr 2015 14:02:02 +0000 (16:02 +0200)
committerNikos Mavrogiannopoulos <nmav@redhat.com>
Wed, 1 Apr 2015 14:04:45 +0000 (16:04 +0200)
src/certtool.c

index 4995ba2b365d40ed50f930ba700bbfe5e563ead5..6da576cc80c75f2c4e476adb5f62cd255c743a22 100644 (file)
@@ -3463,16 +3463,8 @@ gnutls_pubkey_t find_pubkey(gnutls_x509_crt_t crt, common_info_st * cinfo)
                                        exit(1);
                                }
 
-                               if (memmem(pem.data, pem.size, "BEGIN PUBLIC KEY", 16) != 0) {
-
-                                       ret = gnutls_pubkey_import(pubkey, &pem, GNUTLS_X509_FMT_PEM);
-                                       if (ret < 0) {
-                                               fprintf(stderr,
-                                                       "pubkey_import: %s\n",
-                                                       gnutls_strerror(ret));
-                                               exit(1);
-                                       }
-                               } else {
+                               if (memmem(pem.data, pem.size, "BEGIN CERTIFICATE", 16) != 0 ||
+                                   memmem(pem.data, pem.size, "BEGIN X509", 10) != 0) {
                                        ret = gnutls_x509_crt_init(&crt);
                                        if (ret < 0) {
                                                fprintf(stderr,
@@ -3495,6 +3487,14 @@ gnutls_pubkey_t find_pubkey(gnutls_x509_crt_t crt, common_info_st * cinfo)
                                                gnutls_strerror(ret));
                                                exit(1);
                                        }
+                               } else {
+                                       ret = gnutls_pubkey_import(pubkey, &pem, incert_format);
+                                       if (ret < 0) {
+                                               fprintf(stderr,
+                                                       "pubkey_import: %s\n",
+                                                       gnutls_strerror(ret));
+                                               exit(1);
+                                       }
                                }
                        }