summaryrefslogtreecommitdiffstats
path: root/crypto/asn1/a_mbstr.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>1999-10-27 00:15:11 +0000
committerDr. Stephen Henson <steve@openssl.org>1999-10-27 00:15:11 +0000
commit74400f7348c589bf9e7cd17f657c05b25f8758b1 (patch)
tree0f3af155bb1cf7cd0a717eab9a8183dae2bdf4ee /crypto/asn1/a_mbstr.c
parent62ac2938015939e2ef30f12295f0ee59ff79c11b (diff)
Continued multibyte character support.
Add a bunch of functions to simplify the creation of X509_NAME structures. Change the X509_NAME_entry_add stuff in req/ca so it no longer uses X509_NAME_entry_count(): passing -1 has the same effect.
Diffstat (limited to 'crypto/asn1/a_mbstr.c')
-rw-r--r--crypto/asn1/a_mbstr.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/crypto/asn1/a_mbstr.c b/crypto/asn1/a_mbstr.c
index 2fe658e085..9e7c7c39e5 100644
--- a/crypto/asn1/a_mbstr.c
+++ b/crypto/asn1/a_mbstr.c
@@ -91,6 +91,35 @@ unsigned long ASN1_STRING_get_default_mask(void)
return dirstring_mask;
}
+/* This function sets the default to various "flavours" of configuration.
+ * based on an ASCII string. Currently this is:
+ * MASK:XXXX : a numerical mask value.
+ * nobmp : Don't use BMPStrings (just Printable, T61).
+ * pkix : PKIX recommendation in RFC2459.
+ * utf8only : only use UTF8Strings (RFC2459 recommendation for 2004).
+ * default: the default value, Printable, T61, BMP.
+ */
+
+int ASN1_STRING_set_default_mask_asc(char *p)
+{
+ unsigned long mask;
+ char *end;
+ if(!strncmp(p, "MASK:", 5)) {
+ if(!p[5]) return 0;
+ mask = strtoul(p + 5, &end, 0);
+ if(*end) return 0;
+ } else if(!strcmp(p, "nobmp"))
+ mask = B_ASN1_PRINTABLESTRING | B_ASN1_T61STRING;
+ else if(!strcmp(p, "pkix"))
+ mask = B_ASN1_PRINTABLESTRING | B_ASN1_BMPSTRING;
+ else if(!strcmp(p, "utf8only")) mask = B_ASN1_UTF8STRING;
+ else if(!strcmp(p, "default"))
+ mask = B_ASN1_PRINTABLESTRING | B_ASN1_T61STRING | B_ASN1_BMPSTRING;
+ else return 0;
+ ASN1_STRING_set_default_mask(mask);
+ return 1;
+}
+
/* These functions take a string in UTF8, ASCII or multibyte form and
* a mask of permissible ASN1 string types. It then works out the minimal
* type (using the order Printable < IA5 < T61 < BMP < Universal < UTF8)