diff --git a/library/md_internal.h b/library/md_internal.h
index 12bc218..1f21643 100644
--- a/library/md_internal.h
+++ b/library/md_internal.h
@@ -24,6 +24,7 @@
 #include "common.h"
 
 #include "mbedtls/md.h"
+#include "or_psa_helpers.h"
 
 /** Get the output length of the given hash type
  *
@@ -35,29 +36,29 @@
 {
     switch( md_type )
     {
-#if defined(MBEDTLS_MD5_C) || defined(PSA_WANT_ALG_MD5)
+#if defined(MBEDTLS_OR_PSA_WANT_ALG_MD5)
         case MBEDTLS_MD_MD5:
             return( 16 );
 #endif
-#if defined(MBEDTLS_RIPEMD160_C) || defined(PSA_WANT_ALG_RIPEMD160) || \
-    defined(MBEDTLS_SHA1_C) || defined(PSA_WANT_ALG_SHA_1)
+#if defined(MBEDTLS_OR_PSA_WANT_ALG_RIPEMD160) || \
+    defined(MBEDTLS_OR_PSA_WANT_ALG_SHA_1)
         case MBEDTLS_MD_RIPEMD160:
         case MBEDTLS_MD_SHA1:
             return( 20 );
 #endif
-#if defined(MBEDTLS_SHA224_C) || defined(PSA_WANT_ALG_SHA_224)
+#if defined(MBEDTLS_OR_PSA_WANT_ALG_SHA_224)
         case MBEDTLS_MD_SHA224:
             return( 28 );
 #endif
-#if defined(MBEDTLS_SHA256_C) || defined(PSA_WANT_ALG_SHA_256)
+#if defined(MBEDTLS_OR_PSA_WANT_ALG_SHA_256)
         case MBEDTLS_MD_SHA256:
             return( 32 );
 #endif
-#if defined(MBEDTLS_SHA384_C) || defined(PSA_WANT_ALG_SHA_384)
+#if defined(MBEDTLS_OR_PSA_WANT_ALG_SHA_384)
         case MBEDTLS_MD_SHA384:
             return( 48 );
 #endif
-#if defined(MBEDTLS_SHA512_C) || defined(PSA_WANT_ALG_SHA_512)
+#if defined(MBEDTLS_OR_PSA_WANT_ALG_SHA_512)
         case MBEDTLS_MD_SHA512:
             return( 64 );
 #endif
diff --git a/library/oid.c b/library/oid.c
index 1ee3517..aba256b 100644
--- a/library/oid.c
+++ b/library/oid.c
@@ -27,6 +27,8 @@
 #include "mbedtls/rsa.h"
 #include "mbedtls/error.h"
 
+#include "or_psa_helpers.h"
+
 #include <stdio.h>
 #include <string.h>
 
@@ -596,43 +598,43 @@
 
 static const oid_md_alg_t oid_md_alg[] =
 {
-#if defined(MBEDTLS_MD5_C) || defined(PSA_WANT_ALG_MD5)
+#if defined(MBEDTLS_OR_PSA_WANT_ALG_MD5)
     {
         OID_DESCRIPTOR( MBEDTLS_OID_DIGEST_ALG_MD5,       "id-md5",       "MD5" ),
         MBEDTLS_MD_MD5,
     },
 #endif
-#if defined(MBEDTLS_SHA1_C) || defined(PSA_WANT_ALG_SHA_1)
+#if defined(MBEDTLS_OR_PSA_WANT_ALG_SHA_1)
     {
         OID_DESCRIPTOR( MBEDTLS_OID_DIGEST_ALG_SHA1,      "id-sha1",      "SHA-1" ),
         MBEDTLS_MD_SHA1,
     },
 #endif
-#if defined(MBEDTLS_SHA224_C) || defined(PSA_WANT_ALG_SHA_224)
+#if defined(MBEDTLS_OR_PSA_WANT_ALG_SHA_224)
     {
         OID_DESCRIPTOR( MBEDTLS_OID_DIGEST_ALG_SHA224,    "id-sha224",    "SHA-224" ),
         MBEDTLS_MD_SHA224,
     },
 #endif
-#if defined(MBEDTLS_SHA256_C) || defined(PSA_WANT_ALG_SHA_256)
+#if defined(MBEDTLS_OR_PSA_WANT_ALG_SHA_256)
     {
         OID_DESCRIPTOR( MBEDTLS_OID_DIGEST_ALG_SHA256,    "id-sha256",    "SHA-256" ),
         MBEDTLS_MD_SHA256,
     },
 #endif
-#if defined(MBEDTLS_SHA384_C) || defined(PSA_WANT_ALG_SHA_384)
+#if defined(MBEDTLS_OR_PSA_WANT_ALG_SHA_384)
     {
         OID_DESCRIPTOR( MBEDTLS_OID_DIGEST_ALG_SHA384,    "id-sha384",    "SHA-384" ),
         MBEDTLS_MD_SHA384,
     },
 #endif
-#if defined(MBEDTLS_SHA512_C) || defined(PSA_WANT_ALG_SHA_512)
+#if defined(MBEDTLS_OR_PSA_WANT_ALG_SHA_512)
     {
         OID_DESCRIPTOR( MBEDTLS_OID_DIGEST_ALG_SHA512,    "id-sha512",    "SHA-512" ),
         MBEDTLS_MD_SHA512,
     },
 #endif
-#if defined(MBEDTLS_RIPEMD160_C) || defined(PSA_WANT_ALG_RIPEMD160)
+#if defined(MBEDTLS_OR_PSA_WANT_ALG_RIPEMD160)
     {
      OID_DESCRIPTOR( MBEDTLS_OID_DIGEST_ALG_RIPEMD160, "id-ripemd160", "RIPEMD-160" ),
         MBEDTLS_MD_RIPEMD160,
diff --git a/library/or_psa_helpers.h b/library/or_psa_helpers.h
new file mode 100644
index 0000000..105449f
--- /dev/null
+++ b/library/or_psa_helpers.h
@@ -0,0 +1,56 @@
+/**
+ *  Internal macros for parts of the code that depend on an algorithm being
+ *  available either via the legacy API or the PSA Crypto API.
+ *
+ *  Copyright The Mbed TLS Contributors
+ *  SPDX-License-Identifier: Apache-2.0
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License"); you may
+ *  not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+#ifndef MBEDTLS_OR_PSA_HELPERS_H
+#define MBEDTLS_OR_PSA_HELPERS_H
+
+#include "common.h"
+
+/* Hash algorithms */
+#if defined(MBEDTLS_MD5_C) || \
+    ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_MD5) )
+#define MBEDTLS_OR_PSA_WANT_ALG_MD5
+#endif
+#if defined(MBEDTLS_RIPEMD160_C) || \
+    ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_RIPEMD160) )
+#define MBEDTLS_OR_PSA_WANT_ALG_RIPEMD160
+#endif
+#if defined(MBEDTLS_SHA1_C) || \
+    ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_1) )
+#define MBEDTLS_OR_PSA_WANT_ALG_SHA_1
+#endif
+#if defined(MBEDTLS_SHA224_C) || \
+    ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_224) )
+#define MBEDTLS_OR_PSA_WANT_ALG_SHA_224
+#endif
+#if defined(MBEDTLS_SHA256_C) || \
+    ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_256) )
+#define MBEDTLS_OR_PSA_WANT_ALG_SHA_256
+#endif
+#if defined(MBEDTLS_SHA384_C) || \
+    ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_384) )
+#define MBEDTLS_OR_PSA_WANT_ALG_SHA_384
+#endif
+#if defined(MBEDTLS_SHA512_C) || \
+    ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_512) )
+#define MBEDTLS_OR_PSA_WANT_ALG_SHA_512
+#endif
+
+#endif /* MBEDTLS_OR_PSA_HELPERS_H */
