Add support for VISIBLESTRING and UTF8String
[openssl.git] / crypto / asn1 / a_type.c
index a3cf736026b53b95c8021653ce9f619626dae8c8..2f8a16174efa1fc1ff0027a2d37ed3f466e3185f 100644 (file)
@@ -117,6 +117,12 @@ unsigned char **pp;
        case V_ASN1_UNIVERSALSTRING:
                r=M_i2d_ASN1_UNIVERSALSTRING(a->value.universalstring,pp);
                break;
+       case V_ASN1_UTF8STRING:
+               r=M_i2d_ASN1_UTF8STRING(a->value.utf8string,pp);
+               break;
+       case V_ASN1_VISIBLESTRING:
+               r=M_i2d_ASN1_VISIBLESTRING(a->value.visiblestring,pp);
+               break;
        case V_ASN1_BMPSTRING:
                r=M_i2d_ASN1_BMPSTRING(a->value.bmpstring,pp);
                break;
@@ -196,6 +202,16 @@ long length;
                        d2i_ASN1_OCTET_STRING(NULL,&p,max-p)) == NULL)
                        goto err;
                break;
+       case V_ASN1_VISIBLESTRING:
+               if ((ret->value.visiblestring=
+                       d2i_ASN1_VISIBLESTRING(NULL,&p,max-p)) == NULL)
+                       goto err;
+               break;
+       case V_ASN1_UTF8STRING:
+               if ((ret->value.utf8string=
+                       d2i_ASN1_UTF8STRING(NULL,&p,max-p)) == NULL)
+                       goto err;
+               break;
        case V_ASN1_OBJECT:
                if ((ret->value.object=
                        d2i_ASN1_OBJECT(NULL,&p,max-p)) == NULL)
@@ -336,6 +352,7 @@ ASN1_TYPE *a;
                case V_ASN1_GENERALSTRING:
                case V_ASN1_UNIVERSALSTRING:
                case V_ASN1_BMPSTRING:
+               case V_ASN1_UTF8STRING:
                        ASN1_STRING_free((ASN1_STRING *)a->value.ptr);
                        break;
                default: