diff --git a/library/pkcs7.c b/library/pkcs7.c
index 3c5040b..cfe570a 100644
--- a/library/pkcs7.c
+++ b/library/pkcs7.c
@@ -480,7 +480,7 @@
         return ret;
     }
 
-    ret = mbedtls_oid_get_md_alg(&signed_data->digest_alg_identifiers, &md_alg);
+    ret = mbedtls_x509_oid_get_md_alg(&signed_data->digest_alg_identifiers, &md_alg);
     if (ret != 0) {
         return MBEDTLS_ERR_PKCS7_INVALID_ALG;
     }
@@ -659,7 +659,7 @@
         return MBEDTLS_ERR_PKCS7_CERT_DATE_INVALID;
     }
 
-    ret = mbedtls_oid_get_md_alg(&pkcs7->signed_data.digest_alg_identifiers, &md_alg);
+    ret = mbedtls_x509_oid_get_md_alg(&pkcs7->signed_data.digest_alg_identifiers, &md_alg);
     if (ret != 0) {
         return ret;
     }
diff --git a/library/x509.c b/library/x509.c
index e0d54b6..a3d7a18 100644
--- a/library/x509.c
+++ b/library/x509.c
@@ -208,7 +208,7 @@
     p += md_oid.len;
 
     /* Get md_alg from md_oid */
-    if ((ret = mbedtls_oid_get_md_alg(&md_oid, md_alg)) != 0) {
+    if ((ret = mbedtls_x509_oid_get_md_alg(&md_oid, md_alg)) != 0) {
         return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, ret);
     }
 
@@ -282,7 +282,7 @@
             return ret;
         }
 
-        if ((ret = mbedtls_oid_get_md_alg(&alg_id, md_alg)) != 0) {
+        if ((ret = mbedtls_x509_oid_get_md_alg(&alg_id, md_alg)) != 0) {
             return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, ret);
         }
 
@@ -719,7 +719,7 @@
 {
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
 
-    if ((ret = mbedtls_oid_get_sig_alg(sig_oid, md_alg, pk_alg)) != 0) {
+    if ((ret = mbedtls_x509_oid_get_sig_alg(sig_oid, md_alg, pk_alg)) != 0) {
         return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG, ret);
     }
 
@@ -904,7 +904,7 @@
                           (name->val.tag != MBEDTLS_ASN1_PRINTABLE_STRING) &&
                           (name->val.tag != MBEDTLS_ASN1_IA5_STRING);
 
-        if ((ret = mbedtls_oid_get_attr_short_name(&name->oid, &short_name)) == 0) {
+        if ((ret = mbedtls_x509_oid_get_attr_short_name(&name->oid, &short_name)) == 0) {
             ret = mbedtls_snprintf(p, n, "%s=", short_name);
         } else {
             if ((ret = mbedtls_oid_get_numeric_string(p, n, &name->oid)) > 0) {
@@ -1044,7 +1044,7 @@
     size_t n = size;
     const char *desc = NULL;
 
-    ret = mbedtls_oid_get_sig_alg_desc(sig_oid, &desc);
+    ret = mbedtls_x509_oid_get_sig_alg_desc(sig_oid, &desc);
     if (ret != 0) {
         ret = mbedtls_snprintf(p, n, "???");
     } else {
diff --git a/library/x509_crt.c b/library/x509_crt.c
index 959ae21..5528763 100644
--- a/library/x509_crt.c
+++ b/library/x509_crt.c
@@ -926,7 +926,7 @@
         /*
          * Detect supported extensions
          */
-        ret = mbedtls_oid_get_x509_ext_type(&extn_oid, &ext_type);
+        ret = mbedtls_x509_oid_get_x509_ext_type(&extn_oid, &ext_type);
 
         if (ret != 0) {
             /* Give the callback (if any) a chance to handle the extension */
@@ -1692,7 +1692,7 @@
     const char *sep = "";
 
     while (cur != NULL) {
-        if (mbedtls_oid_get_extended_key_usage(&cur->buf, &desc) != 0) {
+        if (mbedtls_x509_oid_get_extended_key_usage(&cur->buf, &desc) != 0) {
             desc = "???";
         }
 
@@ -1721,7 +1721,7 @@
     const char *sep = "";
 
     while (cur != NULL) {
-        if (mbedtls_oid_get_certificate_policies(&cur->buf, &desc) != 0) {
+        if (mbedtls_x509_oid_get_certificate_policies(&cur->buf, &desc) != 0) {
             desc = "???";
         }
 
diff --git a/library/x509_csr.c b/library/x509_csr.c
index bba9eaa..0a77bef 100644
--- a/library/x509_csr.c
+++ b/library/x509_csr.c
@@ -114,7 +114,7 @@
         /*
          * Detect supported extensions and skip unsupported extensions
          */
-        ret = mbedtls_oid_get_x509_ext_type(&extn_oid, &ext_type);
+        ret = mbedtls_x509_oid_get_x509_ext_type(&extn_oid, &ext_type);
 
         if (ret != 0) {
             /* Give the callback (if any) a chance to handle the extension */
diff --git a/library/x509write_crt.c b/library/x509write_crt.c
index 4bacdad..6cc281a 100644
--- a/library/x509write_crt.c
+++ b/library/x509write_crt.c
@@ -413,8 +413,8 @@
         return MBEDTLS_ERR_X509_INVALID_ALG;
     }
 
-    if ((ret = mbedtls_oid_get_oid_by_sig_alg(pk_alg, ctx->md_alg,
-                                              &sig_oid, &sig_oid_len)) != 0) {
+    if ((ret = mbedtls_x509_oid_get_oid_by_sig_alg(pk_alg, ctx->md_alg,
+                                                   &sig_oid, &sig_oid_len)) != 0) {
         return ret;
     }
 
diff --git a/library/x509write_csr.c b/library/x509write_csr.c
index 74991f3..f3dc9d9 100644
--- a/library/x509write_csr.c
+++ b/library/x509write_csr.c
@@ -228,8 +228,8 @@
         return MBEDTLS_ERR_X509_INVALID_ALG;
     }
 
-    if ((ret = mbedtls_oid_get_oid_by_sig_alg(pk_alg, ctx->md_alg,
-                                              &sig_oid, &sig_oid_len)) != 0) {
+    if ((ret = mbedtls_x509_oid_get_oid_by_sig_alg(pk_alg, ctx->md_alg,
+                                                   &sig_oid, &sig_oid_len)) != 0) {
         return ret;
     }
 
diff --git a/tests/suites/test_suite_x509_oid.data b/tests/suites/test_suite_x509_oid.data
index 42b0505..592c964 100644
--- a/tests/suites/test_suite_x509_oid.data
+++ b/tests/suites/test_suite_x509_oid.data
@@ -105,42 +105,42 @@
 OID hash id - invalid oid
 oid_get_md_alg_id:"2B864886f70d0204":-1
 
-mbedtls_oid_get_md_hmac - RIPEMD160
+mbedtls_x509_oid_get_md_hmac - RIPEMD160
 depends_on:PSA_WANT_ALG_RIPEMD160
-mbedtls_oid_get_md_hmac:"2B06010505080104":MBEDTLS_MD_RIPEMD160
+mbedtls_x509_oid_get_md_hmac:"2B06010505080104":MBEDTLS_MD_RIPEMD160
 
-mbedtls_oid_get_md_hmac - SHA1
+mbedtls_x509_oid_get_md_hmac - SHA1
 depends_on:PSA_WANT_ALG_SHA_1
-mbedtls_oid_get_md_hmac:"2A864886F70D0207":MBEDTLS_MD_SHA1
+mbedtls_x509_oid_get_md_hmac:"2A864886F70D0207":MBEDTLS_MD_SHA1
 
-mbedtls_oid_get_md_hmac - SHA224
+mbedtls_x509_oid_get_md_hmac - SHA224
 depends_on:PSA_WANT_ALG_SHA_224
-mbedtls_oid_get_md_hmac:"2A864886F70D0208":MBEDTLS_MD_SHA224
+mbedtls_x509_oid_get_md_hmac:"2A864886F70D0208":MBEDTLS_MD_SHA224
 
-mbedtls_oid_get_md_hmac - SHA256
+mbedtls_x509_oid_get_md_hmac - SHA256
 depends_on:PSA_WANT_ALG_SHA_256
-mbedtls_oid_get_md_hmac:"2A864886F70D0209":MBEDTLS_MD_SHA256
+mbedtls_x509_oid_get_md_hmac:"2A864886F70D0209":MBEDTLS_MD_SHA256
 
-mbedtls_oid_get_md_hmac - SHA384
+mbedtls_x509_oid_get_md_hmac - SHA384
 depends_on:PSA_WANT_ALG_SHA_384
-mbedtls_oid_get_md_hmac:"2A864886F70D020A":MBEDTLS_MD_SHA384
+mbedtls_x509_oid_get_md_hmac:"2A864886F70D020A":MBEDTLS_MD_SHA384
 
-mbedtls_oid_get_md_hmac - SHA512
+mbedtls_x509_oid_get_md_hmac - SHA512
 depends_on:PSA_WANT_ALG_SHA_512
-mbedtls_oid_get_md_hmac:"2A864886F70D020B":MBEDTLS_MD_SHA512
+mbedtls_x509_oid_get_md_hmac:"2A864886F70D020B":MBEDTLS_MD_SHA512
 
-mbedtls_oid_get_md_hmac - SHA3_224
+mbedtls_x509_oid_get_md_hmac - SHA3_224
 depends_on:PSA_WANT_ALG_SHA3_224
-mbedtls_oid_get_md_hmac:"60864801650304020D":MBEDTLS_MD_SHA3_224
+mbedtls_x509_oid_get_md_hmac:"60864801650304020D":MBEDTLS_MD_SHA3_224
 
-mbedtls_oid_get_md_hmac - SHA3_256
+mbedtls_x509_oid_get_md_hmac - SHA3_256
 depends_on:PSA_WANT_ALG_SHA3_256
-mbedtls_oid_get_md_hmac:"60864801650304020E":MBEDTLS_MD_SHA3_256
+mbedtls_x509_oid_get_md_hmac:"60864801650304020E":MBEDTLS_MD_SHA3_256
 
-mbedtls_oid_get_md_hmac - SHA3_384
+mbedtls_x509_oid_get_md_hmac - SHA3_384
 depends_on:PSA_WANT_ALG_SHA3_384
-mbedtls_oid_get_md_hmac:"60864801650304020F":MBEDTLS_MD_SHA3_384
+mbedtls_x509_oid_get_md_hmac:"60864801650304020F":MBEDTLS_MD_SHA3_384
 
-mbedtls_oid_get_md_hmac - SHA3_512
+mbedtls_x509_oid_get_md_hmac - SHA3_512
 depends_on:PSA_WANT_ALG_SHA3_512
-mbedtls_oid_get_md_hmac:"608648016503040210":MBEDTLS_MD_SHA3_512
+mbedtls_x509_oid_get_md_hmac:"608648016503040210":MBEDTLS_MD_SHA3_512
diff --git a/tests/suites/test_suite_x509_oid.function b/tests/suites/test_suite_x509_oid.function
index efcfee2..46d7d99 100644
--- a/tests/suites/test_suite_x509_oid.function
+++ b/tests/suites/test_suite_x509_oid.function
@@ -21,7 +21,7 @@
     asn1_buf.p = oid->x;
     asn1_buf.len = oid->len;
 
-    ret = mbedtls_oid_get_certificate_policies(&asn1_buf, &desc);
+    ret = mbedtls_x509_oid_get_certificate_policies(&asn1_buf, &desc);
     if (strlen(result_str) == 0) {
         TEST_ASSERT(ret == MBEDTLS_ERR_OID_NOT_FOUND);
     } else {
@@ -42,7 +42,7 @@
     asn1_buf.p = oid->x;
     asn1_buf.len = oid->len;
 
-    ret = mbedtls_oid_get_extended_key_usage(&asn1_buf, &desc);
+    ret = mbedtls_x509_oid_get_extended_key_usage(&asn1_buf, &desc);
     if (strlen(result_str) == 0) {
         TEST_ASSERT(ret == MBEDTLS_ERR_OID_NOT_FOUND);
     } else {
@@ -63,7 +63,7 @@
     ext_oid.p = oid->x;
     ext_oid.len = oid->len;
 
-    ret = mbedtls_oid_get_x509_ext_type(&ext_oid, &ext_type);
+    ret = mbedtls_x509_oid_get_x509_ext_type(&ext_oid, &ext_type);
     if (exp_type == 0) {
         TEST_ASSERT(ret == MBEDTLS_ERR_OID_NOT_FOUND);
     } else {
@@ -84,7 +84,7 @@
     md_oid.p = oid->x;
     md_oid.len = oid->len;
 
-    ret = mbedtls_oid_get_md_alg(&md_oid, &md_id);
+    ret = mbedtls_x509_oid_get_md_alg(&md_oid, &md_id);
 
     if (exp_md_id < 0) {
         TEST_ASSERT(ret == MBEDTLS_ERR_OID_NOT_FOUND);
@@ -97,7 +97,7 @@
 /* END_CASE */
 
 /* BEGIN_CASE */
-void mbedtls_oid_get_md_hmac(data_t *oid, int exp_md_id)
+void mbedtls_x509_oid_get_md_hmac(data_t *oid, int exp_md_id)
 {
     mbedtls_asn1_buf md_oid = { 0, 0, NULL };
     int ret;
@@ -107,7 +107,7 @@
     md_oid.p = oid->x;
     md_oid.len = oid->len;
 
-    ret = mbedtls_oid_get_md_hmac(&md_oid, &md_id);
+    ret = mbedtls_x509_oid_get_md_hmac(&md_oid, &md_id);
 
     if (exp_md_id < 0) {
         TEST_ASSERT(ret == MBEDTLS_ERR_OID_NOT_FOUND);
diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function
index b6fb202..19b37b3 100644
--- a/tests/suites/test_suite_x509parse.function
+++ b/tests/suites/test_suite_x509parse.function
@@ -1010,8 +1010,8 @@
     parsed_cur = &parsed;
     len = 0;
     for (i = 0; parsed_cur != NULL; i++) {
-        TEST_EQUAL(mbedtls_oid_get_attr_short_name(&parsed_cur->oid,
-                                                   &short_name), 0);
+        TEST_EQUAL(mbedtls_x509_oid_get_attr_short_name(&parsed_cur->oid,
+                                                        &short_name), 0);
         len += mbedtls_snprintf((char *) out + len, out_size - len, "%s ", short_name);
         parsed_cur = mbedtls_x509_dn_get_next(parsed_cur);
     }
@@ -1516,7 +1516,7 @@
     oid.p   = buf->x;
     oid.len   = buf->len;
 
-    ret = mbedtls_oid_get_extended_key_usage(&oid, &desc);
+    ret = mbedtls_x509_oid_get_extended_key_usage(&oid, &desc);
 
     if (strcmp(ref_desc, "notfound") == 0) {
         TEST_ASSERT(ret != 0);
