diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2012-06-25 21:15:52 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2012-06-25 21:15:52 +0200 |
commit | 8db3a62d989479d9d2d52423724886185f2d708c (patch) | |
tree | 683e7616c5c227a20288b61170791cacf4bae3f7 | |
parent | 73af1ccd9c26425305749008f7a505996ed4f7c1 (diff) | |
download | gnutls-8db3a62d989479d9d2d52423724886185f2d708c.tar.gz |
Splitted Lucas' contribution to allow incorporation.
-rw-r--r-- | src/Makefile.am | 4 | ||||
-rw-r--r-- | src/certtool-common.c | 66 | ||||
-rw-r--r-- | src/certtool-common.h | 2 |
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[]; |