summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2012-06-25 21:15:52 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2012-06-25 21:15:52 +0200
commit8db3a62d989479d9d2d52423724886185f2d708c (patch)
tree683e7616c5c227a20288b61170791cacf4bae3f7
parent73af1ccd9c26425305749008f7a505996ed4f7c1 (diff)
downloadgnutls-8db3a62d989479d9d2d52423724886185f2d708c.tar.gz
Splitted Lucas' contribution to allow incorporation.
-rw-r--r--src/Makefile.am4
-rw-r--r--src/certtool-common.c66
-rw-r--r--src/certtool-common.h2
3 files changed, 4 insertions, 68 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 8b3b5786d0..48f32861ad 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -120,7 +120,7 @@ libcmd_cli_debug_la_SOURCES = cli-debug-args.def cli-debug-args.c cli-debug-args
#certtool
-certtool_SOURCES = certtool.c dh.c certtool-common.c $(PKCS11_SRCS)
+certtool_SOURCES = certtool.c dh.c certtool-common.c certtool-extras.c $(PKCS11_SRCS)
certtool_LDADD = ../lib/libgnutls.la
certtool_LDADD += libcmd-certtool.la ../gl/libgnu.la
@@ -136,7 +136,7 @@ libcmd_certtool_la_LIBADD += ../gl/libgnu.la $(INET_PTON_LIB)
# p11 tool
if ENABLE_PKCS11
-p11tool_SOURCES = p11tool-args.def p11tool.c pkcs11.c certtool-common.c p11tool.h $(PKCS11_SRCS)
+p11tool_SOURCES = p11tool-args.def p11tool.c pkcs11.c certtool-common.c certtool-extras.c p11tool.h $(PKCS11_SRCS)
p11tool_LDADD = ../lib/libgnutls.la $(LIBOPTS_LDADD) $(LTLIBINTL)
p11tool_LDADD += libcmd-p11tool.la ../gl/libgnu.la
diff --git a/src/certtool-common.c b/src/certtool-common.c
index 3a1bd5c751..13aee71243 100644
--- a/src/certtool-common.c
+++ b/src/certtool-common.c
@@ -346,72 +346,6 @@ load_x509_private_key (int mand, common_info_st * info)
return key;
}
-#define MAX_KEYS 256
-
-/* Loads a x509 private key list
- */
-gnutls_x509_privkey_t *
-load_privkey_list (int mand, size_t * privkey_size, common_info_st * info)
-{
- static gnutls_x509_privkey_t key[MAX_KEYS];
- char *ptr;
- int ret, i;
- gnutls_datum_t dat, file_data;
- int ptr_size;
-
- *privkey_size = 0;
- fprintf (stderr, "Loading private key list...\n");
-
- if (info->privkey == NULL)
- {
- if (mand)
- error (EXIT_FAILURE, 0, "missing --load-privkey");
- else
- return NULL;
- }
-
- ret = gnutls_load_file(info->privkey, &file_data);
- if (ret < 0)
- error (EXIT_FAILURE, errno, "%s", info->privkey);
-
- ptr = (void*)file_data.data;
- ptr_size = file_data.size;
-
- for (i = 0; i < MAX_KEYS; i++)
- {
- ret = gnutls_x509_privkey_init (&key[i]);
- if (ret < 0)
- error (EXIT_FAILURE, 0, "privkey_init: %s", gnutls_strerror (ret));
-
- dat.data = (void*)ptr;
- dat.size = ptr_size;
-
- ret = gnutls_x509_privkey_import (key[i], &dat, info->incert_format);
- if (ret < 0 && *privkey_size > 0)
- break;
- if (ret < 0)
- error (EXIT_FAILURE, 0, "privkey_import: %s", gnutls_strerror (ret));
-
- ptr = strstr (ptr, "---END");
- if (ptr == NULL)
- break;
- ptr++;
-
- ptr_size = file_data.size;
- ptr_size -=
- (unsigned int) ((unsigned char *) ptr - (unsigned char *) buffer);
-
- if (ptr_size < 0)
- break;
-
- (*privkey_size)++;
- }
-
- gnutls_free(file_data.data);
- fprintf (stderr, "Loaded %d private keys.\n", (int) *privkey_size);
-
- return key;
-}
/* Loads the certificate
* If mand is non zero then a certificate is mandatory. Otherwise
diff --git a/src/certtool-common.h b/src/certtool-common.h
index 96bec5bff7..deb3853b22 100644
--- a/src/certtool-common.h
+++ b/src/certtool-common.h
@@ -72,6 +72,8 @@ gnutls_sec_param_t str_to_sec_param (const char *str);
int generate_prime (int how, common_info_st * info);
void dh_info (common_info_st * ci);
+gnutls_x509_privkey_t * load_privkey_list (int mand, size_t * privkey_size, common_info_st * info);
+
FILE *safe_open_rw (const char *file, int privkey_op);
extern unsigned char buffer[];