From 59400ffed5562cc64b6ea1fb373834e3a1e817e4 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 21 Feb 2023 15:27:16 +0000 Subject: [PATCH] Improve header docs and rename parameter Signed-off-by: David Horstmann --- include/mbedtls/oid.h | 17 +++++++++++------ library/oid.c | 8 ++++---- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/include/mbedtls/oid.h b/include/mbedtls/oid.h index 1284aa929..49f4af520 100644 --- a/include/mbedtls/oid.h +++ b/include/mbedtls/oid.h @@ -470,15 +470,20 @@ int mbedtls_oid_get_numeric_string(char *buf, size_t size, const mbedtls_asn1_bu * \brief Translate a string containing a numeric representation * of an ASN.1 OID into its encoded form * (e.g. "1.2.840.113549" into "\x2A\x86\x48\x86\xF7\x0D") + * On success, this function allocates oid->buf from the + * heap. It must be free'd by the caller. * - * \param buf buffer to put representation in - * \param size size of the buffer - * \param oid OID to translate + * \param oid mbedtls_asn1_buf to populate with the DER-encoded OID + * \param oid_str string representation of the OID to parse + * \param size length of the OID string * - * \return Length of the string written (excluding final NULL) or - * MBEDTLS_ERR_OID_BUF_TOO_SMALL in case of error + * \return 0 if successful + * \return #MBEDTLS_ERR_ASN1_INVALID_DATA if oid_str does not + * represent a valid OID + * \return #MBEDTLS_ERR_ASN1_ALLOC_FAILED if the function fails to + * allocate oid->buf */ -int mbedtls_oid_from_numeric_string(mbedtls_asn1_buf *oid, const char *buf, size_t size); +int mbedtls_oid_from_numeric_string(mbedtls_asn1_buf *oid, const char *oid_str, size_t size); /** * \brief Translate an X.509 extension OID into local values diff --git a/library/oid.c b/library/oid.c index 06127c26e..6c62b949b 100644 --- a/library/oid.c +++ b/library/oid.c @@ -948,12 +948,12 @@ static int oid_subidentifier_encode_into(unsigned char **p, /* Return the OID for the given x.y.z.... style numeric string */ int mbedtls_oid_from_numeric_string(mbedtls_asn1_buf *oid, - const char *buf, size_t size) + const char *oid_str, size_t size) { int ret = MBEDTLS_ERR_ASN1_INVALID_DATA; - const char *str_ptr = buf; - const char *str_bound = buf + size; + const char *str_ptr = oid_str; + const char *str_bound = oid_str + size; int val = 0; size_t encoded_len; @@ -1020,7 +1020,7 @@ int mbedtls_oid_from_numeric_string(mbedtls_asn1_buf *oid, oid->len = encoded_len; /* Now that we've allocated the buffer, go back to the start and encode */ - str_ptr = buf; + str_ptr = oid_str; unsigned char *out_ptr = oid->p; unsigned char *out_bound = oid->p + oid->len;