diff --git a/partitions/delegated_attestation/delegated_attest.c b/partitions/delegated_attestation/delegated_attest.c
index 0021f58..4e13134 100644
--- a/partitions/delegated_attestation/delegated_attest.c
+++ b/partitions/delegated_attestation/delegated_attest.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022-2024, Arm Limited. All rights reserved.
+ * Copyright (c) 2022-2025, Arm Limited. All rights reserved.
  * Copyright (c) 2018-2023, Laurence Lundblade.
  *
  * SPDX-License-Identifier: BSD-3-Clause
@@ -14,10 +14,10 @@
 #include "psa/crypto.h"
 #include "psa/initial_attestation.h"
 #include "qcbor/qcbor.h"
-#include "q_useful_buf.h"
 #include "region_defs.h"
-#include "t_cose_key.h"
-#include "t_cose_standard_constants.h"
+#include "t_cose/q_useful_buf.h"
+#include "t_cose/t_cose_key.h"
+#include "t_cose/t_cose_standard_constants.h"
 #include "tfm_attest_iat_defs.h"
 #include "tfm_crypto_defs.h"
 
@@ -76,8 +76,7 @@
     }
 
     /* Turns SEC1 encoding to a CBOR serialized COSE_Key object */
-    dak_key.crypto_lib = T_COSE_CRYPTO_LIB_PSA;
-    dak_key.k.key_handle = dak_key_id;
+    dak_key.key.handle = dak_key_id;
     cose_res = t_cose_key_encode(dak_key,
                                  cose_key_buf,
                                  &cose_key);
diff --git a/partitions/dice_protection_environment/dpe_certificate.c b/partitions/dice_protection_environment/dpe_certificate.c
index 94ca197..dcaf68e 100644
--- a/partitions/dice_protection_environment/dpe_certificate.c
+++ b/partitions/dice_protection_environment/dpe_certificate.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2023-2024, Arm Limited. All rights reserved.
+ * Copyright (c) 2023-2025, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -12,9 +12,9 @@
 #include "dpe_crypto_interface.h"
 #include "dpe_plat.h"
 #include "qcbor/qcbor_encode.h"
-#include "t_cose_common.h"
-#include "t_cose_key.h"
-#include "t_cose_sign1_sign.h"
+#include "t_cose/t_cose_common.h"
+#include "t_cose/t_cose_key.h"
+#include "t_cose/t_cose_sign1_sign.h"
 
 #define ID_HEX_SIZE (2 * DICE_ID_SIZE)      /* Size of CDI encoded to ascii hex */
 #define LABEL_HEX_SIZE (2 * DPE_EXTERNAL_LABEL_MAX_SIZE)
@@ -64,8 +64,7 @@
     /* DPE Certificate is untagged COSE_Sign1 message */
     t_cose_sign1_sign_init(signer_ctx, T_COSE_OPT_OMIT_CBOR_TAG, DPE_T_COSE_ALG);
 
-    attest_key.crypto_lib = T_COSE_CRYPTO_LIB_PSA;
-    attest_key.k.key_handle = private_key;
+    attest_key.key.handle = private_key;
 
     t_cose_sign1_set_signing_key(signer_ctx, attest_key, attest_key_id);
 
@@ -166,8 +165,7 @@
     enum t_cose_err_t cose_res;
 
     /* Export the public key and encodes it to be a COSE_Key object */
-    attest_key.crypto_lib = T_COSE_CRYPTO_LIB_PSA;
-    attest_key.k.key_handle = attest_key_id;
+    attest_key.key.handle = attest_key_id;
     cose_res = t_cose_key_encode(attest_key,
                                  cose_key_buf,
                                  &cose_key);
diff --git a/partitions/dice_protection_environment/dpe_crypto_config.h b/partitions/dice_protection_environment/dpe_crypto_config.h
index 86ab93f..c038e6e 100644
--- a/partitions/dice_protection_environment/dpe_crypto_config.h
+++ b/partitions/dice_protection_environment/dpe_crypto_config.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2023, Arm Limited. All rights reserved.
+ * Copyright (c) 2023-2025, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -9,7 +9,7 @@
 #define __DPE_CRYPTO_CONFIG_H__
 
 #include "psa/crypto.h"
-#include "t_cose_common.h"
+#include "t_cose/t_cose_common.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/partitions/dice_protection_environment/test/dpe_certificate_decode.c b/partitions/dice_protection_environment/test/dpe_certificate_decode.c
index e13be37..0be2378 100644
--- a/partitions/dice_protection_environment/test/dpe_certificate_decode.c
+++ b/partitions/dice_protection_environment/test/dpe_certificate_decode.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2024, Arm Limited. All rights reserved.
+ * Copyright (c) 2024-2025, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -14,9 +14,9 @@
 #include "psa/error.h"
 #include "qcbor/qcbor_decode.h"
 #include "qcbor/qcbor_spiffy_decode.h"
-#include "t_cose_common.h"
-#include "t_cose_key.h"
-#include "t_cose_sign1_verify.h"
+#include "t_cose/t_cose_common.h"
+#include "t_cose/t_cose_key.h"
+#include "t_cose/t_cose_sign1_verify.h"
 #include "test_log.h"
 
 /* Uncomment this define to print the certificate chain */
@@ -278,7 +278,7 @@
     /* If the corresponding public key is not known then only verify the
      * certificate's structure.
      */
-    if (pub_key_id.k.key_handle != PSA_KEY_ID_NULL ) {
+    if (pub_key_id.key.handle != PSA_KEY_ID_NULL ) {
         cose_err = verify_signature(cert_buf, pub_key_id);
         if (cose_err != T_COSE_SUCCESS) {
             return -2;
@@ -293,7 +293,7 @@
 {
     psa_status_t psa_err;
 
-    psa_err = psa_destroy_key(pub_key_id.k.key_handle);
+    psa_err = psa_destroy_key(pub_key_id.key.handle);
     if (psa_err != PSA_SUCCESS) {
         return -3;
     }
@@ -345,8 +345,7 @@
     cert_chain->cert_cnt--;
 
     /* Decode the COSE_Key and register the public key to the crypto backend */
-    pub_key_id.crypto_lib = T_COSE_CRYPTO_LIB_PSA;
-    pub_key_id.k.key_handle = PSA_KEY_ID_NULL;
+    pub_key_id.key.handle = PSA_KEY_ID_NULL;
     cose_err = t_cose_key_decode(cert_chain->root_pub_key, &pub_key_id);
     if (cose_err != T_COSE_SUCCESS) {
         return -2;
diff --git a/partitions/dice_protection_environment/test/dpe_certificate_decode.h b/partitions/dice_protection_environment/test/dpe_certificate_decode.h
index e7bdbe5..eb740dc 100644
--- a/partitions/dice_protection_environment/test/dpe_certificate_decode.h
+++ b/partitions/dice_protection_environment/test/dpe_certificate_decode.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2024, Arm Limited. All rights reserved.
+ * Copyright (c) 2024-2025, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -11,7 +11,7 @@
 #include <stdbool.h>
 
 #include "qcbor/UsefulBuf.h"
-#include "t_cose_key.h"
+#include "t_cose/t_cose_key.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/partitions/dice_protection_environment/test/dpe_certify_key_test.c b/partitions/dice_protection_environment/test/dpe_certify_key_test.c
index 71cf648..5322d2b 100644
--- a/partitions/dice_protection_environment/test/dpe_certify_key_test.c
+++ b/partitions/dice_protection_environment/test/dpe_certify_key_test.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2023-2024, Arm Limited. All rights reserved.
+ * Copyright (c) 2023-2025, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -12,7 +12,7 @@
 #include "dpe_test_common.h"
 #include "dpe_test_data.h"
 #include "dpe_test_private.h"
-#include "t_cose_key.h"
+#include "t_cose/t_cose_key.h"
 
 extern const struct dpe_test_data_t test_data[];
 extern int retained_rot_ctx_handle;
