Revert the size_t modifications from HEAD that had led to more
[openssl.git] / crypto / asn1 / asn1_par.c
index bd8de1e8d404117abfd77688da6df55febb170ca..c322dec2b299a4f3c16fa2802379390bf65296e0 100644 (file)
 
 static int asn1_print_info(BIO *bp, int tag, int xclass,int constructed,
        int indent);
-static int asn1_parse2(BIO *bp, unsigned char **pp, long length,
+static int asn1_parse2(BIO *bp, const unsigned char **pp, long length,
        int offset, int depth, int indent, int dump);
 static int asn1_print_info(BIO *bp, int tag, int xclass, int constructed,
             int indent)
        {
        static const char fmt[]="%-18s";
-       static const char fmt2[]="%2d %-15s";
        char str[128];
-       const char *p,*p2=NULL;
+       const char *p;
 
        if (constructed & V_ASN1_CONSTRUCTED)
                p="cons: ";
@@ -88,35 +87,32 @@ static int asn1_print_info(BIO *bp, int tag, int xclass, int constructed,
                BIO_snprintf(str,sizeof str,"cont [ %d ]",tag);
        else if ((xclass & V_ASN1_APPLICATION) == V_ASN1_APPLICATION)
                BIO_snprintf(str,sizeof str,"appl [ %d ]",tag);
-       else p = ASN1_tag2str(tag);
-
-       if (p2 != NULL)
-               {
-               if (BIO_printf(bp,fmt2,tag,p2) <= 0) goto err;
-               }
+       else if (tag > 30)
+               BIO_snprintf(str,sizeof str,"<ASN1 %d>",tag);
        else
-               {
-               if (BIO_printf(bp,fmt,p) <= 0) goto err;
-               }
+               p = ASN1_tag2str(tag);
+
+       if (BIO_printf(bp,fmt,p) <= 0)
+               goto err;
        return(1);
 err:
        return(0);
        }
 
-int ASN1_parse(BIO *bp, unsigned char *pp, long len, int indent)
+int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent)
        {
        return(asn1_parse2(bp,&pp,len,0,0,indent,0));
        }
 
-int ASN1_parse_dump(BIO *bp, unsigned char *pp, long len, int indent, int dump)
+int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, int dump)
        {
        return(asn1_parse2(bp,&pp,len,0,0,indent,dump));
        }
 
-static int asn1_parse2(BIO *bp, unsigned char **pp, long length, int offset,
+static int asn1_parse2(BIO *bp, const unsigned char **pp, long length, int offset,
             int depth, int indent, int dump)
        {
-       unsigned char *p,*ep,*tot,*op,*opp;
+       const unsigned char *p,*ep,*tot,*op,*opp;
        long len;
        int tag,xclass,ret=0;
        int nl,hl,j,r;
@@ -215,7 +211,7 @@ static int asn1_parse2(BIO *bp, unsigned char **pp, long length, int offset,
                                {
                                if (BIO_write(bp,":",1) <= 0) goto end;
                                if ((len > 0) &&
-                                       BIO_write(bp,(char *)p,(int)len)
+                                       BIO_write(bp,(const char *)p,(int)len)
                                        != (int)len)
                                        goto end;
                                }
@@ -278,7 +274,7 @@ static int asn1_parse2(BIO *bp, unsigned char **pp, long length, int offset,
                                                {
                                                if (BIO_write(bp,":",1) <= 0)
                                                        goto end;
-                                               if (BIO_write(bp,(char *)opp,
+                                               if (BIO_write(bp,(const char *)opp,
                                                        os->length) <= 0)
                                                        goto end;
                                                }
@@ -303,7 +299,8 @@ static int asn1_parse2(BIO *bp, unsigned char **pp, long length, int offset,
                                                        if (BIO_write(bp,"\n",1) <= 0)
                                                                goto end;
                                                        }
-                                               if (BIO_dump_indent(bp,(char *)opp,
+                                               if (BIO_dump_indent(bp,
+                                                       (const char *)opp,
                                                        ((dump == -1 || dump > 
                                                        os->length)?os->length:dump),
                                                        dump_indent) <= 0)
@@ -388,7 +385,7 @@ static int asn1_parse2(BIO *bp, unsigned char **pp, long length, int offset,
                                        if (BIO_write(bp,"\n",1) <= 0)
                                                goto end;
                                        }
-                               if (BIO_dump_indent(bp,(char *)p,
+                               if (BIO_dump_indent(bp,(const char *)p,
                                        ((dump == -1 || dump > len)?len:dump),
                                        dump_indent) <= 0)
                                        goto end;
@@ -418,7 +415,7 @@ end:
 
 const char *ASN1_tag2str(int tag)
 {
-       const static char *tag2str[] = {
+       static const char * const tag2str[] = {
         "EOC", "BOOLEAN", "INTEGER", "BIT STRING", "OCTET STRING", /* 0-4 */
         "NULL", "OBJECT", "OBJECT DESCRIPTOR", "EXTERNAL", "REAL", /* 5-9 */
         "ENUMERATED", "<ASN1 11>", "UTF8STRING", "<ASN1 13>",      /* 10-13 */