X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=crypto%2Fasn1%2Ft_x509.c;h=6ee1065ce9468c081f087d24dc3d2ecdf65c6e4f;hb=8d5b4ee1cab7cd02f9fe246fb60d7d018a315a86;hp=bfee6f66a790fbda9f347b4050173430ce64bd63;hpb=f6aed2cda608d6291225030fc259f207aac33732;p=oweals%2Fopenssl.git diff --git a/crypto/asn1/t_x509.c b/crypto/asn1/t_x509.c index bfee6f66a7..6ee1065ce9 100644 --- a/crypto/asn1/t_x509.c +++ b/crypto/asn1/t_x509.c @@ -58,21 +58,20 @@ #include #include "cryptlib.h" -#include "buffer.h" -#include "bn.h" +#include +#include #ifndef NO_RSA -#include "rsa.h" +#include #endif #ifndef NO_DSA -#include "dsa.h" +#include #endif -#include "objects.h" -#include "x509.h" +#include +#include +#include #ifndef NO_FP_API -int X509_print_fp(fp,x) -FILE *fp; -X509 *x; +int X509_print_fp(FILE *fp, X509 *x) { BIO *b; int ret; @@ -89,9 +88,7 @@ X509 *x; } #endif -int X509_print(bp,x) -BIO *bp; -X509 *x; +int X509_print(BIO *bp, X509 *x) { long l; int ret=0,i,j,n; @@ -99,7 +96,7 @@ X509 *x; X509_CINF *ci; ASN1_INTEGER *bs; EVP_PKEY *pkey=NULL; - char *neg; + const char *neg; X509_EXTENSION *ex; ASN1_STRING *str=NULL; @@ -146,9 +143,9 @@ X509 *x; if (!X509_NAME_print(bp,X509_get_issuer_name(x),16)) goto err; if (BIO_write(bp,"\n Validity\n",18) <= 0) goto err; if (BIO_write(bp," Not Before: ",24) <= 0) goto err; - if (!ASN1_UTCTIME_print(bp,X509_get_notBefore(x))) goto err; + if (!ASN1_TIME_print(bp,X509_get_notBefore(x))) goto err; if (BIO_write(bp,"\n Not After : ",25) <= 0) goto err; - if (!ASN1_UTCTIME_print(bp,X509_get_notAfter(x))) goto err; + if (!ASN1_TIME_print(bp,X509_get_notAfter(x))) goto err; if (BIO_write(bp,"\n Subject: ",18) <= 0) goto err; if (!X509_NAME_print(bp,X509_get_subject_name(x),16)) goto err; if (BIO_write(bp,"\n Subject Public Key Info:\n",34) <= 0) @@ -161,6 +158,7 @@ X509 *x; if (pkey == NULL) { BIO_printf(bp,"%12sUnable to load Public Key\n",""); + ERR_print_errors(bp); } else #ifndef NO_RSA @@ -190,50 +188,18 @@ X509 *x; BIO_printf(bp,"%8sX509v3 extensions:\n",""); for (i=0; idata, - str->length) <= 0) - goto err; - } - else if (data_type == V_ASN1_BIT_STRING) - { - BIO_printf(bp,"0x"); - for (j=0; jlength; j++) - { - BIO_printf(bp,"%02X", - str->data[j]); - } - } - } - else + if(!X509V3_EXT_print(bp, ex, 0, 16)) { - ASN1_OCTET_STRING_print(bp,ex->value); + BIO_printf(bp, "%16s", ""); + M_ASN1_OCTET_STRING_print(bp,ex->value); } if (BIO_write(bp,"\n",1) <= 0) goto err; } @@ -253,16 +219,15 @@ X509 *x; ((i+1) == n)?"":":") <= 0) goto err; } if (BIO_write(bp,"\n",1) != 1) goto err; + if (!X509_CERT_AUX_print(bp, x->aux, 0)) goto err; ret=1; err: if (str != NULL) ASN1_STRING_free(str); - if (m != NULL) Free((char *)m); + if (m != NULL) Free(m); return(ret); } -int ASN1_STRING_print(bp,v) -BIO *bp; -ASN1_STRING *v; +int ASN1_STRING_print(BIO *bp, ASN1_STRING *v) { int i,n; char buf[80],*p;; @@ -291,9 +256,7 @@ ASN1_STRING *v; return(1); } -int ASN1_TIME_print(bp, tm) -BIO *bp; -ASN1_TIME *tm; +int ASN1_TIME_print(BIO *bp, ASN1_TIME *tm) { if(tm->type == V_ASN1_UTCTIME) return ASN1_UTCTIME_print(bp, tm); if(tm->type == V_ASN1_GENERALIZEDTIME) @@ -302,16 +265,16 @@ ASN1_TIME *tm; return(0); } +static const char *mon[12]= + { + "Jan","Feb","Mar","Apr","May","Jun", + "Jul","Aug","Sep","Oct","Nov","Dec" + }; -int ASN1_GENERALIZEDTIME_print(bp,tm) -BIO *bp; -ASN1_GENERALIZEDTIME *tm; +int ASN1_GENERALIZEDTIME_print(BIO *bp, ASN1_GENERALIZEDTIME *tm) { char *v; int gmt=0; - static char *mon[12]={ - "Jan","Feb","Mar","Apr","May","Jun", - "Jul","Aug","Sep","Oct","Nov","Dec"}; int i; int y=0,M=0,d=0,h=0,m=0,s=0; @@ -342,15 +305,10 @@ err: return(0); } -int ASN1_UTCTIME_print(bp,tm) -BIO *bp; -ASN1_UTCTIME *tm; +int ASN1_UTCTIME_print(BIO *bp, ASN1_UTCTIME *tm) { char *v; int gmt=0; - static char *mon[12]={ - "Jan","Feb","Mar","Apr","May","Jun", - "Jul","Aug","Sep","Oct","Nov","Dec"}; int i; int y=0,M=0,d=0,h=0,m=0,s=0; @@ -382,10 +340,7 @@ err: return(0); } -int X509_NAME_print(bp,name,obase) -BIO *bp; -X509_NAME *name; -int obase; +int X509_NAME_print(BIO *bp, X509_NAME *name, int obase) { char *s,*c; int ret=0,l,ll,i,first=1; @@ -400,6 +355,7 @@ int obase; c=s; for (;;) { +#ifndef CHARSET_EBCDIC if ( ((*s == '/') && ((s[1] >= 'A') && (s[1] <= 'Z') && ( (s[2] == '=') || @@ -407,6 +363,15 @@ int obase; (s[3] == '=')) ))) || (*s == '\0')) +#else + if ( ((*s == '/') && + (isupper(s[1]) && ( + (s[2] == '=') || + (isupper(s[2]) && + (s[3] == '=')) + ))) || + (*s == '\0')) +#endif { if ((l <= 0) && !first) {