Extract function to convert ASN.1 INTEGER object to u_int64_t
This commit is contained in:
@@ -549,6 +549,22 @@ bool asn1_parse_simple_object(chunk_t *object, asn1_t type, u_int level, const c
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Described in header
|
||||
*/
|
||||
u_int64_t asn1_parse_integer_uint64(chunk_t blob)
|
||||
{
|
||||
u_int64_t val = 0;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < blob.len; i++)
|
||||
{ /* if it is longer than 8 bytes, we just use the 8 LSBs */
|
||||
val <<= 8;
|
||||
val |= (u_int64_t)blob.ptr[i];
|
||||
}
|
||||
return val;
|
||||
}
|
||||
|
||||
/**
|
||||
* ASN.1 definition of an algorithmIdentifier
|
||||
*/
|
||||
|
||||
@@ -170,6 +170,15 @@ int asn1_parse_algorithmIdentifier(chunk_t blob, int level0, chunk_t *params);
|
||||
bool asn1_parse_simple_object(chunk_t *object, asn1_t type, u_int level0,
|
||||
const char* name);
|
||||
|
||||
/**
|
||||
* Converts an ASN.1 INTEGER object to an u_int64_t. If the INTEGER is longer
|
||||
* than 8 bytes only the 8 LSBs are returned.
|
||||
*
|
||||
* @param blob body of an ASN.1 coded integer object
|
||||
* @return converted integer
|
||||
*/
|
||||
u_int64_t asn1_parse_integer_uint64(chunk_t blob);
|
||||
|
||||
/**
|
||||
* Print the value of an ASN.1 simple object
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user