diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2008-10-22 19:54:55 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2008-10-22 19:54:55 +0000 |
commit | ac786241a2607ea14cf29e3a0e4ad1aae672a8df (patch) | |
tree | b593762819517511f83688e47dc534ee6011bf07 | |
parent | df0681e5540ae4e2c2d7a3c5235bfcd8ad6fa744 (diff) |
Add support for -crlnumber option in crl utility.
-rw-r--r-- | apps/crl.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/apps/crl.c b/apps/crl.c index a0040fba11..c395b2afd5 100644 --- a/apps/crl.c +++ b/apps/crl.c @@ -85,6 +85,7 @@ static const char *crl_usage[]={ " -issuer - print issuer DN\n", " -lastupdate - lastUpdate field\n", " -nextupdate - nextUpdate field\n", +" -crlnumber - print CRL number\n", " -noout - no CRL output\n", " -CAfile name - verify CRL using certificates in file \"name\"\n", " -CApath dir - verify CRL using certificates in \"dir\"\n", @@ -107,7 +108,7 @@ int MAIN(int argc, char **argv) int informat,outformat; char *infile=NULL,*outfile=NULL; int hash=0,issuer=0,lastupdate=0,nextupdate=0,noout=0,text=0; - int fingerprint = 0; + int fingerprint = 0, crlnumber = 0; const char **pp; X509_STORE *store = NULL; X509_STORE_CTX ctx; @@ -206,6 +207,8 @@ int MAIN(int argc, char **argv) noout= ++num; else if (strcmp(*argv,"-fingerprint") == 0) fingerprint= ++num; + else if (strcmp(*argv,"-crlnumber") == 0) + crlnumber= ++num; else if ((md_alg=EVP_get_digestbyname(*argv + 1))) { /* ok */ @@ -281,7 +284,21 @@ bad: { print_name(bio_out, "issuer=", X509_CRL_get_issuer(x), nmflag); } - + if (crlnumber == i) + { + ASN1_INTEGER *crlnum; + crlnum = X509_CRL_get_ext_d2i(x, NID_crl_number, + NULL, NULL); + BIO_printf(bio_out,"crlNumber="); + if (crlnum) + { + i2a_ASN1_INTEGER(bio_out, crlnum); + ASN1_INTEGER_free(crlnum); + } + else + BIO_puts(bio_out, "<NONE>"); + BIO_printf(bio_out,"\n"); + } if (hash == i) { BIO_printf(bio_out,"%08lx\n", |