renamed known_oid() to asn1_known_oid() and defined asn1_get_oid()

This commit is contained in:
Andreas Steffen
2009-04-15 18:37:17 +00:00
parent cb163ed52a
commit a4ac612eb8
7 changed files with 56 additions and 19 deletions
+2 -2
View File
@@ -519,7 +519,7 @@ parse_ac(chunk_t blob, x509acert_t *ac)
ac->notAfter = asn1totime(&object, ASN1_GENERALIZEDTIME);
break;
case AC_OBJ_ATTRIBUTE_TYPE:
type = known_oid(object);
type = asn1_known_oid(object);
break;
case AC_OBJ_ATTRIBUTE_VALUE:
{
@@ -549,7 +549,7 @@ parse_ac(chunk_t blob, x509acert_t *ac)
}
break;
case AC_OBJ_EXTN_ID:
extn_oid = known_oid(object);
extn_oid = asn1_known_oid(object);
break;
case AC_OBJ_CRITICAL:
critical = object.len && *object.ptr;
+39 -3
View File
@@ -116,7 +116,7 @@ asn1_algorithmIdentifier(int oid)
* position in the oid_names table is returned otherwise -1 is returned
*/
int
known_oid(chunk_t object)
asn1_known_oid(chunk_t object)
{
int oid = 0;
@@ -136,14 +136,50 @@ known_oid(chunk_t object)
else
{
if (oid_names[oid].next)
{
oid = oid_names[oid].next;
}
else
{
return OID_UNKNOWN;
}
}
}
return -1;
}
/*
* Converts an known OID index to ASN.1 OID
*/
chunk_t
asn1_get_known_oid(int n)
{
chunk_t oid;
int i;
if (n < 0 || n >= OID_MAX)
{
return empty_chunk;
}
i = oid_names[n].level + 1;
oid.ptr = alloc_bytes(i, "known oid");
oid.len = i;
do
{
if (oid_names[n].level >= i)
{
n--;
continue;
}
oid.ptr[--i] = oid_names[n--].octet;
}
while (i > 0);
return oid;
}
/*
* Decodes the length in bytes of an ASN.1 object
*/
@@ -484,7 +520,7 @@ debug_asn1_simple_object(chunk_t object, asn1_t type, u_int cond)
switch (type)
{
case ASN1_OID:
oid = known_oid(object);
oid = asn1_known_oid(object);
if (oid != OID_UNKNOWN)
{
DBG(DBG_PARSING,
@@ -735,7 +771,7 @@ parse_algorithmIdentifier(chunk_t blob, int level0, chunk_t *parameters)
switch (objectID)
{
case ALGORITHM_ID_ALG:
alg = known_oid(object);
alg = asn1_known_oid(object);
break;
case ALGORITHM_ID_PARAMETERS:
if (parameters != NULL)
+2 -1
View File
@@ -117,7 +117,8 @@ extern const chunk_t ASN1_md5WithRSA_id;
extern const chunk_t ASN1_sha1WithRSA_id;
extern chunk_t asn1_algorithmIdentifier(int oid);
extern int known_oid(chunk_t object);
extern int asn1_known_oid(chunk_t object);
extern chunk_t asn1_get_known_oid(int n);
extern u_int asn1_length(chunk_t *blob);
extern void code_asn1_length(size_t length, chunk_t *code);
extern u_char* build_asn1_object(chunk_t *object, asn1_t type, size_t datalen);
+1 -1
View File
@@ -480,7 +480,7 @@ parse_x509crl(chunk_t blob, u_int level0, x509crl_t *crl)
case CRL_OBJ_CRL_ENTRY_EXTN_VALUE:
case CRL_OBJ_EXTN_VALUE:
{
u_int extn_oid = known_oid(extnID);
u_int extn_oid = asn1_known_oid(extnID);
if (extn_oid == OID_CRL_REASON_CODE)
{
+3 -3
View File
@@ -1134,7 +1134,7 @@ parse_basic_ocsp_response(chunk_t blob, int level0, response_t *res)
res->responses = object;
break;
case BASIC_RESPONSE_EXT_ID:
extn_oid = known_oid(object);
extn_oid = asn1_known_oid(object);
break;
case BASIC_RESPONSE_CRITICAL:
critical = object.len && *object.ptr;
@@ -1223,7 +1223,7 @@ parse_ocsp_response(chunk_t blob, response_t * res)
}
break;
case OCSP_RESPONSE_TYPE:
ocspResponseType = known_oid(object);
ocspResponseType = asn1_known_oid(object);
break;
case OCSP_RESPONSE:
{
@@ -1303,7 +1303,7 @@ parse_ocsp_single_response(chunk_t blob, int level0, single_response_t *sres)
sres->nextUpdate = asn1totime(&object, ASN1_GENERALIZEDTIME);
break;
case SINGLE_RESPONSE_EXT_ID:
extn_oid = known_oid(object);
extn_oid = asn1_known_oid(object);
break;
case SINGLE_RESPONSE_CRITICAL:
critical = object.len && *object.ptr;
+2 -2
View File
@@ -217,7 +217,7 @@ pkcs7_parse_contentInfo(chunk_t blob, u_int level0, contentInfo_t *cInfo)
if (objectID == PKCS7_INFO_TYPE)
{
cInfo->type = known_oid(object);
cInfo->type = asn1_known_oid(object);
if (cInfo->type < OID_PKCS7_DATA
|| cInfo->type > OID_PKCS7_ENCRYPTED_DATA)
{
@@ -458,7 +458,7 @@ pkcs7_parse_envelopedData(chunk_t blob, chunk_t *data
)
break;
case PKCS7_CONTENT_TYPE:
if (known_oid(object) != OID_PKCS7_DATA)
if (asn1_known_oid(object) != OID_PKCS7_DATA)
{
plog("encrypted content not of type pkcs7 data");
goto failed;
+7 -7
View File
@@ -562,7 +562,7 @@ dn_parse(chunk_t dn, chunk_t *str)
}
/* print OID */
oid_code = known_oid(oid);
oid_code = asn1_known_oid(oid);
if (oid_code == OID_UNKNOWN) /* OID not found in list */
{
hex_str(oid, str);
@@ -877,7 +877,7 @@ same_dn(chunk_t a, chunk_t b)
/* printableStrings and email RDNs require uppercase comparison */
if (type_a == type_b && (type_a == ASN1_PRINTABLESTRING ||
(type_a == ASN1_IA5STRING && known_oid(oid_a) == OID_PKCS9_EMAIL)))
(type_a == ASN1_IA5STRING && asn1_known_oid(oid_a) == OID_PKCS9_EMAIL)))
{
if (strncasecmp(value_a.ptr, value_b.ptr, value_b.len) != 0)
{
@@ -955,7 +955,7 @@ match_dn(chunk_t a, chunk_t b, int *wildcards)
/* printableStrings and email RDNs require uppercase comparison */
if (type_a == type_b && (type_a == ASN1_PRINTABLESTRING ||
(type_a == ASN1_IA5STRING && known_oid(oid_a) == OID_PKCS9_EMAIL)))
(type_a == ASN1_IA5STRING && asn1_known_oid(oid_a) == OID_PKCS9_EMAIL)))
{
if (strncasecmp(value_a.ptr, value_b.ptr, value_b.len) != 0)
{
@@ -1553,7 +1553,7 @@ parse_otherName(chunk_t blob, int level0)
switch (objectID)
{
case ON_OBJ_ID_TYPE:
oid = known_oid(object);
oid = asn1_known_oid(object);
break;
case ON_OBJ_VALUE:
if (oid == OID_XMPP_ADDR)
@@ -1809,7 +1809,7 @@ parse_authorityInfoAccess(chunk_t blob, int level0, chunk_t *accessLocation)
switch (objectID)
{
case AUTH_INFO_ACCESS_METHOD:
accessMethod = known_oid(object);
accessMethod = asn1_known_oid(object);
break;
case AUTH_INFO_ACCESS_LOCATION:
{
@@ -1870,7 +1870,7 @@ parse_extendedKeyUsage(chunk_t blob, int level0)
return FALSE;
}
if (objectID == EXT_KEY_USAGE_PURPOSE_ID
&& known_oid(object) == OID_OCSP_SIGNING)
&& asn1_known_oid(object) == OID_OCSP_SIGNING)
{
return TRUE;
}
@@ -2027,7 +2027,7 @@ parse_x509cert(chunk_t blob, u_int level0, x509cert_t *cert)
cert->publicExponent = object;
break;
case X509_OBJ_EXTN_ID:
extn_oid = known_oid(object);
extn_oid = asn1_known_oid(object);
break;
case X509_OBJ_CRITICAL:
critical = object.len && *object.ptr;