diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2004-12-13 19:02:23 +0100 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2004-12-13 19:02:23 +0100 |
commit | abbc186bd2798afc4ad405af15d7e2668d66ef3e (patch) | |
tree | 534987276bedf4b83f084cee44bd32d92aaa8c01 /apps | |
parent | Propagate a few more variables to Makefile.shared when linking (diff) | |
download | openssl-abbc186bd2798afc4ad405af15d7e2668d66ef3e.tar.xz openssl-abbc186bd2798afc4ad405af15d7e2668d66ef3e.zip |
Fix s_client so it works without a certificate again.
Diffstat (limited to 'apps')
-rw-r--r-- | apps/s_cb.c | 2 | ||||
-rw-r--r-- | apps/s_client.c | 31 |
2 files changed, 23 insertions, 10 deletions
diff --git a/apps/s_cb.c b/apps/s_cb.c index 21aab25d7e..92d9ae8893 100644 --- a/apps/s_cb.c +++ b/apps/s_cb.c @@ -231,6 +231,8 @@ int set_cert_stuff(SSL_CTX *ctx, char *cert_file, char *key_file) int set_cert_key_stuff(SSL_CTX *ctx, X509 *cert, EVP_PKEY *key) { + if (cert == NULL) + return 1; if (SSL_CTX_use_certificate(ctx,cert) <= 0) { BIO_printf(bio_err,"error setting certificate\n"); diff --git a/apps/s_client.c b/apps/s_client.c index 0204b517b1..c1fcd9d97f 100644 --- a/apps/s_client.c +++ b/apps/s_client.c @@ -482,21 +482,32 @@ bad: if (key_file == NULL) key_file = cert_file; - key = load_key(bio_err, key_file, key_format, 0, pass, e, - "client certificate private key file"); - if (!key) + + if (key_file) + { - ERR_print_errors(bio_err); - goto end; + + key = load_key(bio_err, key_file, key_format, 0, pass, e, + "client certificate private key file"); + if (!key) + { + ERR_print_errors(bio_err); + goto end; + } + } - cert = load_cert(bio_err,cert_file,cert_format, - NULL, e, "client certificate file"); + if (cert_file) - if (!cert) { - ERR_print_errors(bio_err); - goto end; + cert = load_cert(bio_err,cert_file,cert_format, + NULL, e, "client certificate file"); + + if (!cert) + { + ERR_print_errors(bio_err); + goto end; + } } if (!app_RAND_load_file(NULL, bio_err, 1) && inrand == NULL |