From 0518d53ba75c7dfb89d120cb2266a05297037c36 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Mon, 20 Feb 2023 14:21:23 +0000 Subject: [PATCH] Change error codes to more appropriate codes The more precise error codes are borrowed from the ASN1 module. Signed-off-by: David Horstmann --- library/oid.c | 10 +++++----- tests/suites/test_suite_oid.data | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/library/oid.c b/library/oid.c index e720ceaaf..4ec752fb9 100644 --- a/library/oid.c +++ b/library/oid.c @@ -801,13 +801,13 @@ int mbedtls_oid_get_numeric_string(char *buf, size_t size, value = 0; if ((oid->p[0]) == 0x80) { /* Overlong encoding is not allowed */ - return MBEDTLS_ERR_OID_BUF_TOO_SMALL; + return MBEDTLS_ERR_ASN1_INVALID_DATA; } while (i < oid->len && ((oid->p[i] & 0x80) != 0)) { /* Prevent overflow in value. */ if (value > (UINT_MAX >> 7)) { - return MBEDTLS_ERR_OID_BUF_TOO_SMALL; + return MBEDTLS_ERR_ASN1_INVALID_DATA; } value |= oid->p[i] & 0x7F; @@ -815,7 +815,7 @@ int mbedtls_oid_get_numeric_string(char *buf, size_t size, i++; } if (i >= oid->len) { - return MBEDTLS_ERR_OID_BUF_TOO_SMALL; + return MBEDTLS_ERR_ASN1_OUT_OF_DATA; } /* Last byte of first subidentifier */ value |= oid->p[i] & 0x7F; @@ -836,11 +836,11 @@ int mbedtls_oid_get_numeric_string(char *buf, size_t size, for (; i < oid->len; i++) { /* Prevent overflow in value. */ if (value > (UINT_MAX >> 7)) { - return MBEDTLS_ERR_OID_BUF_TOO_SMALL; + return MBEDTLS_ERR_ASN1_INVALID_DATA; } if ((value == 0) && ((oid->p[i]) == 0x80)) { /* Overlong encoding is not allowed */ - return MBEDTLS_ERR_OID_BUF_TOO_SMALL; + return MBEDTLS_ERR_ASN1_INVALID_DATA; } value <<= 7; diff --git a/tests/suites/test_suite_oid.data b/tests/suites/test_suite_oid.data index f721b820c..38d8b7e1c 100644 --- a/tests/suites/test_suite_oid.data +++ b/tests/suites/test_suite_oid.data @@ -102,20 +102,20 @@ OID get numeric string - multi-byte first subidentifier oid_get_numeric_string:"8837":0:"2.999" OID get numeric string - empty oid buffer -oid_get_numeric_string:"":MBEDTLS_ERR_OID_BUF_TOO_SMALL:"" +oid_get_numeric_string:"":MBEDTLS_ERR_ASN1_OUT_OF_DATA:"" OID get numeric string - no final / all bytes have top bit set -oid_get_numeric_string:"818181":MBEDTLS_ERR_OID_BUF_TOO_SMALL:"" +oid_get_numeric_string:"818181":MBEDTLS_ERR_ASN1_OUT_OF_DATA:"" # Encodes the number 0x0400000000 as a subidentifier which overflows 32-bits OID get numeric string - 32-bit overflow -oid_get_numeric_string:"C080808000":MBEDTLS_ERR_OID_BUF_TOO_SMALL:"" +oid_get_numeric_string:"C080808000":MBEDTLS_ERR_ASN1_INVALID_DATA:"" OID get numeric string - 32-bit overflow, second subidentifier -oid_get_numeric_string:"2BC080808000":MBEDTLS_ERR_OID_BUF_TOO_SMALL:"" +oid_get_numeric_string:"2BC080808000":MBEDTLS_ERR_ASN1_INVALID_DATA:"" OID get numeric string - overlong encoding -oid_get_numeric_string:"8001":MBEDTLS_ERR_OID_BUF_TOO_SMALL:"" +oid_get_numeric_string:"8001":MBEDTLS_ERR_ASN1_INVALID_DATA:"" OID get numeric string - overlong encoding, second subidentifier -oid_get_numeric_string:"2B8001":MBEDTLS_ERR_OID_BUF_TOO_SMALL:"" +oid_get_numeric_string:"2B8001":MBEDTLS_ERR_ASN1_INVALID_DATA:""