RT1815: More const'ness improvements
[openssl.git] / crypto / asn1 / tasn_prn.c
index cf4c4ab3740f93b36a9fc8f9524e42b452d9df5d..424d395aa4b1eb09c7ad1630a9401e7ae8923c81 100644 (file)
@@ -1,5 +1,5 @@
 /* tasn_prn.c */
-/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
+/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
  * project 2000.
  */
 /* ====================================================================
@@ -354,6 +354,8 @@ int asn1_template_print_ctx(BIO *out, ASN1_VALUE **fld, int indent,
                {
                char *tname;
                ASN1_VALUE *skitem;
+               STACK_OF(ASN1_VALUE) *stack;
+
                /* SET OF, SEQUENCE OF */
                if (fname)
                        {
@@ -371,12 +373,13 @@ int asn1_template_print_ctx(BIO *out, ASN1_VALUE **fld, int indent,
                                        fname) <= 0)
                                return 0;
                        }
-               for(i = 0; i < sk_num((STACK *)*fld); i++)
+               stack = (STACK_OF(ASN1_VALUE) *)*fld;
+               for(i = 0; i < sk_ASN1_VALUE_num(stack); i++)
                        {
                        if ((i > 0) && (BIO_puts(out, "\n") <= 0))
                                return 0;
 
-                       skitem = (ASN1_VALUE *)sk_value((STACK *)*fld, i);
+                       skitem = sk_ASN1_VALUE_value(stack, i);
                        if (!asn1_item_print_ctx(out, &skitem, indent + 2,
                                ASN1_ITEM_ptr(tt->item), NULL, NULL, 1, pctx))
                                return 0;
@@ -398,8 +401,8 @@ static int asn1_print_fsname(BIO *out, int indent,
                        const char *fname, const char *sname,
                        const ASN1_PCTX *pctx)
        {
-       static char spaces[] = "                    ";
-       const int nspaces = sizeof(spaces) - 1;
+       static const char spaces[] = "                    ";
+       static const int nspaces = sizeof(spaces) - 1;
 
 #if 0
        if (!sname && !fname)
@@ -443,11 +446,11 @@ static int asn1_print_fsname(BIO *out, int indent,
        return 1;
        }
 
-static int asn1_print_boolean_ctx(BIO *out, const int bool,
+static int asn1_print_boolean_ctx(BIO *out, int boolval,
                                                        const ASN1_PCTX *pctx)
        {
        const char *str;
-       switch (bool)
+       switch (boolval)
                {
                case -1:
                str = "BOOL ABSENT";
@@ -522,8 +525,12 @@ static int asn1_primitive_print(BIO *out, ASN1_VALUE **fld,
        ASN1_STRING *str;
        int ret = 1, needlf = 1;
        const char *pname;
+       const ASN1_PRIMITIVE_FUNCS *pf;
+       pf = it->funcs;
        if (!asn1_print_fsname(out, indent, fname, sname, pctx))
                        return 0;
+       if (pf && pf->prim_print)
+               return pf->prim_print(out, fld, it, indent, pctx);
        str = (ASN1_STRING *)*fld;
        if (it->itype == ASN1_ITYPE_MSTRING)
                utype = str->type & ~V_ASN1_NEG;
@@ -533,7 +540,7 @@ static int asn1_primitive_print(BIO *out, ASN1_VALUE **fld,
                {
                ASN1_TYPE *atype = (ASN1_TYPE *)*fld;
                utype = atype->type;
-               fld = (ASN1_VALUE **)&atype->value.ptr;
+               fld = &atype->value.asn1_value;
                str = (ASN1_STRING *)*fld;
                if (pctx->flags & ASN1_PCTX_FLAGS_NO_ANY_TYPE)
                        pname = NULL;
@@ -567,10 +574,10 @@ static int asn1_primitive_print(BIO *out, ASN1_VALUE **fld,
                {
                case V_ASN1_BOOLEAN:
                        {
-                       int bool = *(int *)fld;
-                       if (bool == -1)
-                               bool = it->size;
-                       ret = asn1_print_boolean_ctx(out, bool, pctx);
+                       int boolval = *(int *)fld;
+                       if (boolval == -1)
+                               boolval = it->size;
+                       ret = asn1_print_boolean_ctx(out, boolval, pctx);
                        }
                break;