use case compare for teletex string
This commit is contained in:
@@ -319,7 +319,7 @@ _hx509_Name_to_string(const Name *n, char **str)
|
|||||||
static int
|
static int
|
||||||
dsstringprep(const DirectoryString *ds, uint32_t **rname, size_t *rlen)
|
dsstringprep(const DirectoryString *ds, uint32_t **rname, size_t *rlen)
|
||||||
{
|
{
|
||||||
wind_profile_flags flags = 0;
|
wind_profile_flags flags;
|
||||||
size_t i, len;
|
size_t i, len;
|
||||||
int ret;
|
int ret;
|
||||||
uint32_t *name;
|
uint32_t *name;
|
||||||
@@ -329,22 +329,28 @@ dsstringprep(const DirectoryString *ds, uint32_t **rname, size_t *rlen)
|
|||||||
|
|
||||||
switch(ds->element) {
|
switch(ds->element) {
|
||||||
case choice_DirectoryString_ia5String:
|
case choice_DirectoryString_ia5String:
|
||||||
|
flags = WIND_PROFILE_LDAP;
|
||||||
COPYCHARARRAY(ds, ia5String, len, name);
|
COPYCHARARRAY(ds, ia5String, len, name);
|
||||||
break;
|
break;
|
||||||
case choice_DirectoryString_printableString:
|
case choice_DirectoryString_printableString:
|
||||||
flags = WIND_PROFILE_LDAP_CASE_EXACT_ATTRIBUTE;
|
flags = WIND_PROFILE_LDAP;
|
||||||
|
flags |= WIND_PROFILE_LDAP_CASE_EXACT_ATTRIBUTE;
|
||||||
COPYCHARARRAY(ds, printableString, len, name);
|
COPYCHARARRAY(ds, printableString, len, name);
|
||||||
break;
|
break;
|
||||||
case choice_DirectoryString_teletexString:
|
case choice_DirectoryString_teletexString:
|
||||||
|
flags = WIND_PROFILE_LDAP_CASE;
|
||||||
COPYCHARARRAY(ds, teletexString, len, name);
|
COPYCHARARRAY(ds, teletexString, len, name);
|
||||||
break;
|
break;
|
||||||
case choice_DirectoryString_bmpString:
|
case choice_DirectoryString_bmpString:
|
||||||
|
flags = WIND_PROFILE_LDAP;
|
||||||
COPYVALARRAY(ds, bmpString, len, name);
|
COPYVALARRAY(ds, bmpString, len, name);
|
||||||
break;
|
break;
|
||||||
case choice_DirectoryString_universalString:
|
case choice_DirectoryString_universalString:
|
||||||
|
flags = WIND_PROFILE_LDAP;
|
||||||
COPYVALARRAY(ds, universalString, len, name);
|
COPYVALARRAY(ds, universalString, len, name);
|
||||||
break;
|
break;
|
||||||
case choice_DirectoryString_utf8String:
|
case choice_DirectoryString_utf8String:
|
||||||
|
flags = WIND_PROFILE_LDAP;
|
||||||
ret = wind_utf8ucs4_length(ds->u.utf8String, &len);
|
ret = wind_utf8ucs4_length(ds->u.utf8String, &len);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
@@ -367,8 +373,7 @@ dsstringprep(const DirectoryString *ds, uint32_t **rname, size_t *rlen)
|
|||||||
*rlen = *rlen * 2;
|
*rlen = *rlen * 2;
|
||||||
*rname = malloc(*rlen * sizeof((*rname)[0]));
|
*rname = malloc(*rlen * sizeof((*rname)[0]));
|
||||||
|
|
||||||
ret = wind_stringprep(name, len, *rname, rlen,
|
ret = wind_stringprep(name, len, *rname, rlen, flags);
|
||||||
WIND_PROFILE_LDAP|flags);
|
|
||||||
if (ret == WIND_ERR_OVERRUN) {
|
if (ret == WIND_ERR_OVERRUN) {
|
||||||
free(*rname);
|
free(*rname);
|
||||||
*rname = NULL;
|
*rname = NULL;
|
||||||
|
Reference in New Issue
Block a user