summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2015-06-02 09:44:17 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2015-06-02 09:44:17 +0200
commitea87e27ec2517fa4f38513967f05851c9a0b99f9 (patch)
tree0dd2ffc995f6da7f198b799094a3c6c1c2408c74
parent6f247d75a82e4753b8069c56c24ef70e426ccc27 (diff)
downloadlibtasn1-ea87e27ec2517fa4f38513967f05851c9a0b99f9.tar.gz
export asn1_get_object_id_der
-rw-r--r--lib/decoding.c20
-rw-r--r--lib/libtasn1.h5
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 */