Fix more error codes.
[openssl.git] / crypto / asn1 / t_crl.c
index bdfa03aa1a1d3d640bc3fecd244c2b37806dd3f3..929b3e590438e47fa99e5d15ea6c8327c54faae9 100644 (file)
 #include <openssl/x509.h>
 #include <openssl/x509v3.h>
 
-#ifndef NOPROTO
-static void ext_print(BIO *out, X509_EXTENSION *ex);
-#else
-static void ext_print();
-#endif
-
-#ifndef NO_FP_API
+#ifndef OPENSSL_NO_FP_API
 int X509_CRL_print_fp(FILE *fp, X509_CRL *x)
         {
         BIO *b;
@@ -78,7 +72,7 @@ int X509_CRL_print_fp(FILE *fp, X509_CRL *x)
 
         if ((b=BIO_new(BIO_s_file())) == NULL)
                {
-               X509err(X509_F_X509_PRINT_FP,ERR_R_BUF_LIB);
+               X509err(X509_F_X509_CRL_PRINT_FP,ERR_R_BUF_LIB);
                 return(0);
                }
         BIO_set_fp(b,fp,BIO_NOCLOSE);
@@ -90,12 +84,11 @@ int X509_CRL_print_fp(FILE *fp, X509_CRL *x)
 
 int X509_CRL_print(BIO *out, X509_CRL *x)
 {
-       char buf[256];
-       unsigned char *s;
-       STACK *rev;
+       STACK_OF(X509_REVOKED) *rev;
        X509_REVOKED *r;
        long l;
-       int i, j, n;
+       int i, n;
+       char *p;
 
        BIO_printf(out, "Certificate Revocation List (CRL):\n");
        l = X509_CRL_get_version(x);
@@ -103,8 +96,9 @@ int X509_CRL_print(BIO *out, X509_CRL *x)
        i = OBJ_obj2nid(x->sig_alg->algorithm);
        BIO_printf(out, "%8sSignature Algorithm: %s\n", "",
                                 (i == NID_undef) ? "NONE" : OBJ_nid2ln(i));
-       X509_NAME_oneline(X509_CRL_get_issuer(x),buf,256);
-       BIO_printf(out,"%8sIssuer: %s\n","",buf);
+       p=X509_NAME_oneline(X509_CRL_get_issuer(x),NULL,0);
+       BIO_printf(out,"%8sIssuer: %s\n","",p);
+       OPENSSL_free(p);
        BIO_printf(out,"%8sLast Update: ","");
        ASN1_TIME_print(out,X509_CRL_get_lastUpdate(x));
        BIO_printf(out,"\n%8sNext Update: ","");
@@ -114,57 +108,27 @@ int X509_CRL_print(BIO *out, X509_CRL *x)
        BIO_printf(out,"\n");
 
        n=X509_CRL_get_ext_count(x);
-       if (n > 0) {
-               BIO_printf(out,"%8sCRL extensions:\n","");
-               for (i=0; i<n; i++) ext_print(out, X509_CRL_get_ext(x, i));
-       }
-
+       X509V3_extensions_print(out, "CRL extensions",
+                                               x->crl->extensions, 0, 8);
 
        rev = X509_CRL_get_REVOKED(x);
 
-       if(sk_num(rev)) BIO_printf(out, "Revoked Certificates:\n");
+       if(sk_X509_REVOKED_num(rev) > 0)
+           BIO_printf(out, "Revoked Certificates:\n");
        else BIO_printf(out, "No Revoked Certificates.\n");
 
-       for(i = 0; i < sk_num(rev); i++) {
-               r = (X509_REVOKED *) sk_value(rev, i);
+       for(i = 0; i < sk_X509_REVOKED_num(rev); i++) {
+               r = sk_X509_REVOKED_value(rev, i);
                BIO_printf(out,"    Serial Number: ");
                i2a_ASN1_INTEGER(out,r->serialNumber);
-               BIO_printf(out,"\n        Revocation Date: ","");
+               BIO_printf(out,"\n        Revocation Date: ");
                ASN1_TIME_print(out,r->revocationDate);
                BIO_printf(out,"\n");
-               for(j = 0; j < X509_REVOKED_get_ext_count(r); j++)
-                               ext_print(out, X509_REVOKED_get_ext(r, j));
+               X509V3_extensions_print(out, "CRL entry extensions",
+                                               r->extensions, 0, 8);
        }
-
-       i=OBJ_obj2nid(x->sig_alg->algorithm);
-       BIO_printf(out,"    Signature Algorithm: %s",
-                               (i == NID_undef)?"UNKNOWN":OBJ_nid2ln(i));
-
-       s = x->signature->data;
-       n = x->signature->length;
-       for (i=0; i<n; i++, s++)
-       {
-               if ((i%18) == 0) BIO_write(out,"\n        ",9);
-               BIO_printf(out,"%02x%s",*s, ((i+1) == n)?"":":");
-       }
-       BIO_write(out,"\n",1);
+       X509_signature_print(out, x->sig_alg, x->signature);
 
        return 1;
 
 }
-
-static void ext_print(BIO *out, X509_EXTENSION *ex)
-{
-       ASN1_OBJECT *obj;
-       int j;
-       BIO_printf(out,"%12s","");
-       obj=X509_EXTENSION_get_object(ex);
-       i2a_ASN1_OBJECT(out,obj);
-       j=X509_EXTENSION_get_critical(ex);
-       BIO_printf(out, ": %s\n", j ? "critical":"","");
-       if(!X509V3_EXT_print(out, ex, 0, 16)) {
-               BIO_printf(out, "%16s", "");
-               ASN1_OCTET_STRING_print(out,ex->value);
-       }
-       BIO_write(out,"\n",1);
-}