Add support for -crlnumber option in crl utility.

This commit is contained in:
Dr. Stephen Henson 2008-10-22 19:54:55 +00:00
parent df0681e554
commit ac786241a2

View File

@ -85,6 +85,7 @@ static const char *crl_usage[]={
" -issuer - print issuer DN\n", " -issuer - print issuer DN\n",
" -lastupdate - lastUpdate field\n", " -lastupdate - lastUpdate field\n",
" -nextupdate - nextUpdate field\n", " -nextupdate - nextUpdate field\n",
" -crlnumber - print CRL number\n",
" -noout - no CRL output\n", " -noout - no CRL output\n",
" -CAfile name - verify CRL using certificates in file \"name\"\n", " -CAfile name - verify CRL using certificates in file \"name\"\n",
" -CApath dir - verify CRL using certificates in \"dir\"\n", " -CApath dir - verify CRL using certificates in \"dir\"\n",
@ -107,7 +108,7 @@ int MAIN(int argc, char **argv)
int informat,outformat; int informat,outformat;
char *infile=NULL,*outfile=NULL; char *infile=NULL,*outfile=NULL;
int hash=0,issuer=0,lastupdate=0,nextupdate=0,noout=0,text=0; int hash=0,issuer=0,lastupdate=0,nextupdate=0,noout=0,text=0;
int fingerprint = 0; int fingerprint = 0, crlnumber = 0;
const char **pp; const char **pp;
X509_STORE *store = NULL; X509_STORE *store = NULL;
X509_STORE_CTX ctx; X509_STORE_CTX ctx;
@ -206,6 +207,8 @@ int MAIN(int argc, char **argv)
noout= ++num; noout= ++num;
else if (strcmp(*argv,"-fingerprint") == 0) else if (strcmp(*argv,"-fingerprint") == 0)
fingerprint= ++num; fingerprint= ++num;
else if (strcmp(*argv,"-crlnumber") == 0)
crlnumber= ++num;
else if ((md_alg=EVP_get_digestbyname(*argv + 1))) else if ((md_alg=EVP_get_digestbyname(*argv + 1)))
{ {
/* ok */ /* ok */
@ -281,7 +284,21 @@ bad:
{ {
print_name(bio_out, "issuer=", X509_CRL_get_issuer(x), nmflag); 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) if (hash == i)
{ {
BIO_printf(bio_out,"%08lx\n", BIO_printf(bio_out,"%08lx\n",