diff options
author | Martin Willi <martin@strongswan.org> | 2009-07-03 11:06:51 +0200 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2009-07-06 13:15:28 +0200 |
commit | 596e0540a579fce6e4e2ab722ae82cb29c60f788 (patch) | |
tree | c4def8308e5bba9bc5030221f4cf35077736a6fa /src/libstrongswan/asn1/asn1.h | |
parent | eebecebead5cdf1d4fc38ed47a7d3be1574ed54a (diff) | |
download | strongswan-596e0540a579fce6e4e2ab722ae82cb29c60f788.tar.bz2 strongswan-596e0540a579fce6e4e2ab722ae82cb29c60f788.tar.xz |
asn1_unwrap() function to parse ASN.1 objects with length/type
Diffstat (limited to 'src/libstrongswan/asn1/asn1.h')
-rw-r--r-- | src/libstrongswan/asn1/asn1.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/libstrongswan/asn1/asn1.h b/src/libstrongswan/asn1/asn1.h index 6a2b594c0..8072d62d6 100644 --- a/src/libstrongswan/asn1/asn1.h +++ b/src/libstrongswan/asn1/asn1.h @@ -74,7 +74,9 @@ typedef enum { ASN1_CONTEXT_C_2 = 0xA2, ASN1_CONTEXT_C_3 = 0xA3, ASN1_CONTEXT_C_4 = 0xA4, - ASN1_CONTEXT_C_5 = 0xA5 + ASN1_CONTEXT_C_5 = 0xA5, + + ASN1_INVALID = 0x100, } asn1_t; #define ASN1_INVALID_LENGTH 0xffffffff @@ -123,6 +125,15 @@ chunk_t asn1_build_known_oid(int n); size_t asn1_length(chunk_t *blob); /** + * Unwrap the inner content of an ASN.1 type/length wrapped object. + * + * @param blob blob to parse header from, moved behind parsed content + * @param content inner content + * @return parsed type, ASN1_INVALID if length parsing failed + */ +int asn1_unwrap(chunk_t *blob, chunk_t *content); + +/** * Parses an ASN.1 algorithmIdentifier object * * @param blob ASN.1 coded blob |