diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2015-06-02 09:44:17 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2015-06-02 09:44:17 +0200 |
commit | ea87e27ec2517fa4f38513967f05851c9a0b99f9 (patch) | |
tree | 0dd2ffc995f6da7f198b799094a3c6c1c2408c74 | |
parent | 6f247d75a82e4753b8069c56c24ef70e426ccc27 (diff) | |
download | libtasn1-ea87e27ec2517fa4f38513967f05851c9a0b99f9.tar.gz |
export asn1_get_object_id_der
-rw-r--r-- | lib/decoding.c | 20 | ||||
-rw-r--r-- | lib/libtasn1.h | 5 |
2 files changed, 21 insertions, 4 deletions
diff --git a/lib/decoding.c b/lib/decoding.c index 6b0aca6..5cc7c89 100644 --- a/lib/decoding.c +++ b/lib/decoding.c @@ -346,8 +346,20 @@ _asn1_get_time_der (unsigned type, const unsigned char *der, int der_len, int *r return ASN1_SUCCESS; } -static int -_asn1_get_objectid_der (const unsigned char *der, int der_len, int *ret_len, +/** + * asn1_get_objectid_der: + * @der: DER data to decode containing the OBJECT IDENTIFIER + * @der_len: Length of DER data to decode. + * @ret_len: Output variable containing the length of the DER data. + * @str: Pre-allocated output buffer to put the textual object id in. + * @str_size: Length of pre-allocated output buffer. + * + * Converts a DER encoded object identifier to its textual form. + * + * Returns: %ASN1_SUCCESS on success, or an error. + **/ +int +asn1_get_object_id_der (const unsigned char *der, int der_len, int *ret_len, char *str, int str_size) { int len_len, len, k; @@ -419,7 +431,7 @@ _asn1_get_objectid_der (const unsigned char *der, int der_len, int *ret_len, * * Extract a BIT SEQUENCE from DER data. * - * Returns: Return %ASN1_SUCCESS on success, or an error. + * Returns: %ASN1_SUCCESS on success, or an error. **/ int asn1_get_bit_der (const unsigned char *der, int der_len, @@ -1224,7 +1236,7 @@ asn1_der_decoding2 (asn1_node *element, const void *ider, int *max_ider_len, break; case ASN1_ETYPE_OBJECT_ID: result = - _asn1_get_objectid_der (der + counter, ider_len, &len2, + asn1_get_object_id_der (der + counter, ider_len, &len2, temp, sizeof (temp)); if (result != ASN1_SUCCESS) { diff --git a/lib/libtasn1.h b/lib/libtasn1.h index 53cec5e..4d3772b 100644 --- a/lib/libtasn1.h +++ b/lib/libtasn1.h @@ -374,6 +374,11 @@ extern "C" int *ret_len, unsigned char *str, int str_size, int *bit_len); + extern ASN1_API int + asn1_get_object_id_der (const unsigned char *der, + int der_len, int *ret_len, + char *str, int str_size); + /* Compatibility types */ typedef int asn1_retCode; /* type returned by libtasn1 functions */ |