summaryrefslogtreecommitdiffstats
path: root/apps/apps.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2012-12-02 16:16:28 +0000
committerDr. Stephen Henson <steve@openssl.org>2012-12-02 16:16:28 +0000
commitfdb78f3d8867c9b0c21608840ce0bd3135bcd710 (patch)
tree52488ff5454690b376d5e1f4b65aeb7d67178db5 /apps/apps.c
parent95ea53186413c293d981ec1b042954a5fa47d8b7 (diff)
New option to add CRLs for s_client and s_server.
Diffstat (limited to 'apps/apps.c')
-rw-r--r--apps/apps.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/apps/apps.c b/apps/apps.c
index b36e51799b..b378836066 100644
--- a/apps/apps.c
+++ b/apps/apps.c
@@ -929,6 +929,55 @@ end:
return(x);
}
+X509_CRL *load_crl(char *infile, int format)
+ {
+ X509_CRL *x=NULL;
+ BIO *in=NULL;
+
+ if (format == FORMAT_HTTP)
+ {
+ load_cert_crl_http(infile, bio_err, NULL, &x);
+ return x;
+ }
+
+ in=BIO_new(BIO_s_file());
+ if (in == NULL)
+ {
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+
+ if (infile == NULL)
+ BIO_set_fp(in,stdin,BIO_NOCLOSE);
+ else
+ {
+ if (BIO_read_filename(in,infile) <= 0)
+ {
+ perror(infile);
+ goto end;
+ }
+ }
+ if (format == FORMAT_ASN1)
+ x=d2i_X509_CRL_bio(in,NULL);
+ else if (format == FORMAT_PEM)
+ x=PEM_read_bio_X509_CRL(in,NULL,NULL,NULL);
+ else {
+ BIO_printf(bio_err,"bad input format specified for input crl\n");
+ goto end;
+ }
+ if (x == NULL)
+ {
+ BIO_printf(bio_err,"unable to load CRL\n");
+ ERR_print_errors(bio_err);
+ goto end;
+ }
+
+end:
+ BIO_free(in);
+ return(x);
+ }
+
+
EVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin,
const char *pass, ENGINE *e, const char *key_descrip)
{