libsec: clarify the code by declaring constant for DirectoryString and handle conversion in mkstring()
This commit is contained in:
parent
6bb63f7832
commit
9ec1a07af2
1 changed files with 26 additions and 23 deletions
|
@ -2357,11 +2357,31 @@ mkbigint(mpint *p)
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
printable(char *s)
|
||||||
|
{
|
||||||
|
int c;
|
||||||
|
|
||||||
|
while((c = (uchar)*s++) != 0){
|
||||||
|
if((c >= 'a' && c <= 'z')
|
||||||
|
|| (c >= 'A' && c <= 'Z')
|
||||||
|
|| (c >= '0' && c <= '9')
|
||||||
|
|| strchr("'=()+,-./:? ", c) != nil)
|
||||||
|
continue;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define DirectoryString 0
|
||||||
|
|
||||||
static Elem
|
static Elem
|
||||||
mkstring(char *s, int t)
|
mkstring(char *s, int t)
|
||||||
{
|
{
|
||||||
Elem e;
|
Elem e;
|
||||||
|
|
||||||
|
if(t == DirectoryString)
|
||||||
|
t = printable(s) ? PrintableString : UTF8String;
|
||||||
e.tag.class = Universal;
|
e.tag.class = Universal;
|
||||||
e.tag.num = t;
|
e.tag.num = t;
|
||||||
e.val.tag = VString;
|
e.val.tag = VString;
|
||||||
|
@ -2451,22 +2471,6 @@ mkalg(int alg)
|
||||||
return mkseq(mkel(mkoid(alg_oid_tab[alg]), mkel(Null(), nil)));
|
return mkseq(mkel(mkoid(alg_oid_tab[alg]), mkel(Null(), nil)));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
printable(char *s)
|
|
||||||
{
|
|
||||||
int c;
|
|
||||||
|
|
||||||
while((c = (uchar)*s++) != 0){
|
|
||||||
if((c >= 'a' && c <= 'z')
|
|
||||||
|| (c >= 'A' && c <= 'Z')
|
|
||||||
|| (c >= '0' && c <= '9')
|
|
||||||
|| strchr("'=()+,-./:? ", c) != nil)
|
|
||||||
continue;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
typedef struct Ints7pref {
|
typedef struct Ints7pref {
|
||||||
int len;
|
int len;
|
||||||
int data[7];
|
int data[7];
|
||||||
|
@ -2475,11 +2479,11 @@ typedef struct Ints7pref {
|
||||||
} Ints7pref;
|
} Ints7pref;
|
||||||
Ints7pref DN_oid[] = {
|
Ints7pref DN_oid[] = {
|
||||||
{4, 2, 5, 4, 6, 0, 0, 0, "C=", PrintableString},
|
{4, 2, 5, 4, 6, 0, 0, 0, "C=", PrintableString},
|
||||||
{4, 2, 5, 4, 8, 0, 0, 0, "ST=" },
|
{4, 2, 5, 4, 8, 0, 0, 0, "ST=",DirectoryString},
|
||||||
{4, 2, 5, 4, 7, 0, 0, 0, "L=" },
|
{4, 2, 5, 4, 7, 0, 0, 0, "L=", DirectoryString},
|
||||||
{4, 2, 5, 4, 10, 0, 0, 0, "O=" },
|
{4, 2, 5, 4, 10, 0, 0, 0, "O=", DirectoryString},
|
||||||
{4, 2, 5, 4, 11, 0, 0, 0, "OU=" },
|
{4, 2, 5, 4, 11, 0, 0, 0, "OU=",DirectoryString},
|
||||||
{4, 2, 5, 4, 3, 0, 0, 0, "CN=" },
|
{4, 2, 5, 4, 3, 0, 0, 0, "CN=",DirectoryString},
|
||||||
{7, 1,2,840,113549,1,9,1, "E=", IA5String},
|
{7, 1,2,840,113549,1,9,1, "E=", IA5String},
|
||||||
{7, 0,9,2342,19200300,100,1,25, "DC=",IA5String},
|
{7, 0,9,2342,19200300,100,1,25, "DC=",IA5String},
|
||||||
};
|
};
|
||||||
|
@ -2487,8 +2491,7 @@ Ints7pref DN_oid[] = {
|
||||||
static Elem
|
static Elem
|
||||||
mkname(Ints7pref *oid, char *subj)
|
mkname(Ints7pref *oid, char *subj)
|
||||||
{
|
{
|
||||||
int stype = oid->stype ? oid->stype : (printable(subj) ? PrintableString : UTF8String);
|
return mkset(mkel(mkseq(mkel(mkoid((Ints*)oid), mkel(mkstring(subj, oid->stype), nil))), nil));
|
||||||
return mkset(mkel(mkseq(mkel(mkoid((Ints*)oid), mkel(mkstring(subj, stype), nil))), nil));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Elem
|
static Elem
|
||||||
|
|
Loading…
Reference in a new issue