diff options
author | Dr. Stephen Henson <steve@openssl.org> | 1999-10-27 00:15:11 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 1999-10-27 00:15:11 +0000 |
commit | 74400f7348c589bf9e7cd17f657c05b25f8758b1 (patch) | |
tree | 0f3af155bb1cf7cd0a717eab9a8183dae2bdf4ee /crypto/asn1/a_mbstr.c | |
parent | 62ac2938015939e2ef30f12295f0ee59ff79c11b (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.c | 29 |
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) |