COSE: Switch tests over to upstream t_cose
Switch from TF-M's t_cose library fork to the upstream repo
being downloaded from https://github.com/laurencelundblade/t_cose.
Change-Id: I9e2a859c67e902c6ecc1dc5ab996241e3d33e4ab
Signed-off-by: Adam Kulesza <adam.kulesza@arm.com>
Signed-off-by: David Vincze <david.vincze@arm.com>
Signed-off-by: Tamas Ban <tamas.ban@arm.com>
diff --git a/lib/ext/t_cose/0004-Remove-unused-EdDSA-calls-to-help-reduce-code-size.patch b/lib/ext/t_cose/0004-Remove-unused-EdDSA-calls-to-help-reduce-code-size.patch
new file mode 100644
index 0000000..5139ebb
--- /dev/null
+++ b/lib/ext/t_cose/0004-Remove-unused-EdDSA-calls-to-help-reduce-code-size.patch
@@ -0,0 +1,84 @@
+From 91cbc7bff52d51030c3163f30bc0e86333554ece Mon Sep 17 00:00:00 2001
+From: David Vincze <david.vincze@arm.com>
+Date: Mon, 25 Nov 2024 14:29:04 +0000
+Subject: [PATCH] Remove unused EdDSA calls to help reduce code size
+
+With the help of dead-code elimination and actual code removal
+in this patch it's possible to skip the complete EdDSA algorithm
+support from the build process.
+
+Remove EdDSA from sign verifier as it does not need to be covered
+by the tests. Remove it from the code so the build does not depend
+on it.
+
+---
+ src/t_cose_sign1_sign.c | 13 -------------
+ src/t_cose_sign1_verify.c | 8 --------
+ 2 files changed, 21 deletions(-)
+
+diff --git a/src/t_cose_sign1_sign.c b/src/t_cose_sign1_sign.c
+index ea0713e..fdf8efd 100644
+--- a/src/t_cose_sign1_sign.c
++++ b/src/t_cose_sign1_sign.c
+@@ -37,17 +37,10 @@ t_cose_sign1_sign_init(struct t_cose_sign1_sign_ctx *me,
+ // TODO: Translate any more options flags?
+ t_cose_sign_sign_init(&(me->me2), option_flags | T_COSE_OPT_MESSAGE_TYPE_SIGN1);
+
+- if(cose_algorithm_id == T_COSE_ALGORITHM_EDDSA) {
+- t_cose_signature_sign_eddsa_init(&(me->signer.eddsa));
+- t_cose_sign_add_signer(&(me->me2),
+- t_cose_signature_sign_from_eddsa(&(me->signer.eddsa)));
+- } else
+- {
+ t_cose_signature_sign_main_init(&(me->signer.general),
+ me->cose_algorithm_id);
+ t_cose_sign_add_signer(&(me->me2),
+ t_cose_signature_sign_from_main(&(me->signer.general)));
+- }
+ }
+
+
+@@ -58,15 +51,9 @@ t_cose_sign1_set_signing_key(struct t_cose_sign1_sign_ctx *me,
+ {
+ me->signing_key = signing_key; /* Used by make test message */
+ me->kid = kid; /* Used by make test message */
+- if(me->cose_algorithm_id == T_COSE_ALGORITHM_EDDSA) {
+- t_cose_signature_sign_eddsa_set_signing_key(&(me->signer.eddsa),
+- signing_key,
+- kid);
+- } else {
+ t_cose_signature_sign_main_set_signing_key(&(me->signer.general),
+ signing_key,
+ kid);
+- }
+ }
+
+
+diff --git a/src/t_cose_sign1_verify.c b/src/t_cose_sign1_verify.c
+index 0614bb0..a3fc221 100644
+--- a/src/t_cose_sign1_verify.c
++++ b/src/t_cose_sign1_verify.c
+@@ -34,10 +34,6 @@ t_cose_sign1_verify_init(struct t_cose_sign1_verify_ctx *me,
+ t_cose_signature_verify_main_init(&(me->main_verifier));
+ t_cose_sign_add_verifier(&(me->me2),
+ t_cose_signature_verify_from_main(&(me->main_verifier)));
+-
+- t_cose_signature_verify_eddsa_init(&(me->eddsa_verifier), option_flags);
+- t_cose_sign_add_verifier(&(me->me2),
+- t_cose_signature_verify_from_eddsa(&(me->eddsa_verifier)));
+ }
+
+
+@@ -49,10 +45,6 @@ t_cose_sign1_set_verification_key(struct t_cose_sign1_verify_ctx *me,
+ * until decoding the input. There is only one key in t_cose_sign1().
+ * Also, t_cose_sign1 didn't do any kid matching, so it is NULL here.
+ */
+- t_cose_signature_verify_eddsa_set_key(&(me->eddsa_verifier),
+- verification_key,
+- // TODO: should this be NULL?
+- NULL_Q_USEFUL_BUF_C);
+ t_cose_signature_verify_main_set_key(&(me->main_verifier),
+ verification_key,
+ NULL_Q_USEFUL_BUF_C);
+--
+2.34.1