regression 4006, 4014: do not set TEE_ATTR_ECC_CURVE for SM2
Attribute TEE_ATTR_ECC_CURVE does not apply to SM2 keys. Do not set it
when generating or populating such key objects.
Signed-off-by: Jerome Forissier <jerome@forissier.org>
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
diff --git a/host/xtest/regression_4000.c b/host/xtest/regression_4000.c
index 3cf870b..6f786e7 100644
--- a/host/xtest/regression_4000.c
+++ b/host/xtest/regression_4000.c
@@ -3600,6 +3600,8 @@
return true;
}
+#define XTEST_NO_CURVE 0xFFFFFFFF /* implementation-defined as per GP spec */
+
static void xtest_tee_test_4006(ADBG_Case_t *c)
{
TEEC_Session session = { };
@@ -3843,12 +3845,12 @@
priv_key_type = TEE_TYPE_ECDSA_KEYPAIR;
break;
case TEE_ALG_SM2_PKE:
- curve = TEE_ECC_CURVE_SM2;
+ curve = XTEST_NO_CURVE;
pub_key_type = TEE_TYPE_SM2_PKE_PUBLIC_KEY;
priv_key_type = TEE_TYPE_SM2_PKE_KEYPAIR;
break;
case TEE_ALG_SM2_DSA_SM3:
- curve = TEE_ECC_CURVE_SM2;
+ curve = XTEST_NO_CURVE;
pub_key_type = TEE_TYPE_SM2_DSA_PUBLIC_KEY;
priv_key_type = TEE_TYPE_SM2_DSA_KEYPAIR;
break;
@@ -3862,7 +3864,8 @@
else
max_key_size = tv->params.ecc.private_len * 8;
- xtest_add_attr_value(&num_key_attrs, key_attrs,
+ if (curve != XTEST_NO_CURVE)
+ xtest_add_attr_value(&num_key_attrs, key_attrs,
TEE_ATTR_ECC_CURVE, curve, 0);
xtest_add_attr(&num_key_attrs, key_attrs,
TEE_ATTR_ECC_PUBLIC_VALUE_X,
@@ -5246,9 +5249,6 @@
param_count = 0;
- xtest_add_attr_value(¶m_count, params, TEE_ATTR_ECC_CURVE,
- TEE_ECC_CURVE_SM2, 0);
-
xtest_add_attr(¶m_count, params, TEE_ATTR_ECC_PUBLIC_VALUE_X,
ARRAY(gmt_003_part5_b2_public_xA));
@@ -5277,9 +5277,6 @@
param_count = 0;
- xtest_add_attr_value(¶m_count, params, TEE_ATTR_ECC_CURVE,
- TEE_ECC_CURVE_SM2, 0);
-
xtest_add_attr(¶m_count, params, TEE_ATTR_ECC_PUBLIC_VALUE_X,
ARRAY(gmt_003_part5_b2_eph_public_xA));
@@ -5401,9 +5398,6 @@
param_count = 0;
- xtest_add_attr_value(¶m_count, params, TEE_ATTR_ECC_CURVE,
- TEE_ECC_CURVE_SM2, 0);
-
xtest_add_attr(¶m_count, params, TEE_ATTR_ECC_PUBLIC_VALUE_X,
ARRAY(gmt_003_part5_b2_public_xB));
@@ -5427,9 +5421,6 @@
param_count = 0;
- xtest_add_attr_value(¶m_count, params, TEE_ATTR_ECC_CURVE,
- TEE_ECC_CURVE_SM2, 0);
-
xtest_add_attr(¶m_count, params, TEE_ATTR_ECC_PUBLIC_VALUE_X,
ARRAY(gmt_003_part5_b2_eph_public_xB));