Merge pull request #149 from kotegowder/master
Platform changes : Alignment to TF-M for GMAC support.
diff --git a/api-tests/docs/sw_requirements.md b/api-tests/docs/sw_requirements.md
index 7e71f5e..e05e253 100644
--- a/api-tests/docs/sw_requirements.md
+++ b/api-tests/docs/sw_requirements.md
@@ -1,11 +1,12 @@
# Architecture Test Suite Software Requirements
-Before starting the test suite build, ensure that the following requirements are met: <br />
+Current release has been tested againt the below tools versions: <br />
- Host Operating System : Ubuntu 16.04, Windows 10
-- Scripting tools : Python 3.1.7
-- Compiler toolchain : GNU Arm Embedded Toolchain 6.3.1, Arm Compiler v6.7, GCC 5.4.0 32-Bit (Linux Host), MinGW 6.3.0 32-Bit (Windows Host)
+- Scripting tools : Python 3.7.1
+- Host Compiler toolchain : GCC 5.4.0 32-Bit (Linux Host) or MinGW 6.3.0 32-Bit (Windows Host)
+- Cross Compiler toolchain : GNU Arm Embedded Toolchain 6.3.1, 7.3.1 or Arm Compiler 6.11
- Build tools : CMake 3.10
**Note**: To compile the test suite code, at least one of the above supported compiler toolchains
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an521/nspe/crypto/pal_crypto_config.h b/api-tests/platform/targets/tgt_dev_apis_tfm_an521/nspe/crypto/pal_crypto_config.h
index 4c39814..b55309b 100644
--- a/api-tests/platform/targets/tgt_dev_apis_tfm_an521/nspe/crypto/pal_crypto_config.h
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an521/nspe/crypto/pal_crypto_config.h
@@ -262,7 +262,7 @@
* Comment macros to disable the types
*/
#define ARCH_TEST_CMAC
-#define ARCH_TEST_GMAC
+//#define ARCH_TEST_GMAC
#define ARCH_TEST_HMAC
/**
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/crypto/pal_crypto_config.h b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/crypto/pal_crypto_config.h
index 4c39814..b55309b 100644
--- a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/crypto/pal_crypto_config.h
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/crypto/pal_crypto_config.h
@@ -262,7 +262,7 @@
* Comment macros to disable the types
*/
#define ARCH_TEST_CMAC
-#define ARCH_TEST_GMAC
+//#define ARCH_TEST_GMAC
#define ARCH_TEST_HMAC
/**
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_intf.c b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_intf.c
index 83c1ebd..dd41690 100644
--- a/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_intf.c
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_an524/nspe/initial_attestation/pal_attestation_intf.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2020, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,8 +26,11 @@
**/
int32_t pal_attestation_function(int type, va_list valist)
{
- uint8_t *challenge, *token;
- size_t challenge_size, *token_size, verify_token_size, token_buffer_size;
+ uint8_t *challenge, *token;
+ size_t challenge_size, *token_size, token_buffer_size;
+ int32_t cose_algorithm_id;
+ struct q_useful_buf buffer_for_hash;
+ struct q_useful_buf_c *hash, payload, protected_headers, token_hash, signature;
switch (type)
{
@@ -43,13 +46,19 @@
challenge_size = va_arg(valist, size_t);
token_size = va_arg(valist, size_t*);
return psa_initial_attest_get_token_size(challenge_size, token_size);
- case PAL_INITIAL_ATTEST_VERIFY_TOKEN:
- challenge = va_arg(valist, uint8_t*);
- challenge_size = va_arg(valist, size_t);
- token = va_arg(valist, uint8_t*);
- verify_token_size = va_arg(valist, size_t);
- return pal_initial_attest_verify_token(challenge, challenge_size,
- token, verify_token_size);
+ case PAL_INITIAL_ATTEST_COMPUTE_HASH:
+ cose_algorithm_id = va_arg(valist, int32_t);
+ buffer_for_hash = va_arg(valist, struct q_useful_buf);
+ hash = va_arg(valist, struct q_useful_buf_c*);
+ protected_headers = va_arg(valist, struct q_useful_buf_c);
+ payload = va_arg(valist, struct q_useful_buf_c);
+ return pal_compute_hash(cose_algorithm_id, buffer_for_hash, hash,
+ protected_headers, payload);
+ case PAL_INITIAL_ATTEST_VERIFY_WITH_PK:
+ cose_algorithm_id = va_arg(valist, int32_t);
+ token_hash = va_arg(valist, struct q_useful_buf_c);
+ signature = va_arg(valist, struct q_useful_buf_c);
+ return pal_crypto_pub_key_verify(cose_algorithm_id, token_hash, signature);
default:
return PAL_STATUS_UNSUPPORTED_FUNC;
}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/crypto/pal_crypto_config.h b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/crypto/pal_crypto_config.h
index 4c39814..b55309b 100644
--- a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/crypto/pal_crypto_config.h
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/crypto/pal_crypto_config.h
@@ -262,7 +262,7 @@
* Comment macros to disable the types
*/
#define ARCH_TEST_CMAC
-#define ARCH_TEST_GMAC
+//#define ARCH_TEST_GMAC
#define ARCH_TEST_HMAC
/**
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/crypto/pal_crypto_intf.c b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/crypto/pal_crypto_intf.c
index f214555..7bad480 100644
--- a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/crypto/pal_crypto_intf.c
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/crypto/pal_crypto_intf.c
@@ -337,6 +337,7 @@
ciphertext_size = va_arg(valist, size_t);
return psa_mac_verify(key_handle, alg, plaintext, plaintext_size, ciphertext,
ciphertext_size);
+#endif
case PAL_CRYPTO_ASYMMTERIC_ENCRYPT:
key_handle = (psa_key_handle_t)va_arg(valist, int);
alg = va_arg(valist, psa_algorithm_t);
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/initial_attestation/pal_attestation_intf.c b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/initial_attestation/pal_attestation_intf.c
index 83c1ebd..dd41690 100644
--- a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/initial_attestation/pal_attestation_intf.c
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_a/nspe/initial_attestation/pal_attestation_intf.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2020, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,8 +26,11 @@
**/
int32_t pal_attestation_function(int type, va_list valist)
{
- uint8_t *challenge, *token;
- size_t challenge_size, *token_size, verify_token_size, token_buffer_size;
+ uint8_t *challenge, *token;
+ size_t challenge_size, *token_size, token_buffer_size;
+ int32_t cose_algorithm_id;
+ struct q_useful_buf buffer_for_hash;
+ struct q_useful_buf_c *hash, payload, protected_headers, token_hash, signature;
switch (type)
{
@@ -43,13 +46,19 @@
challenge_size = va_arg(valist, size_t);
token_size = va_arg(valist, size_t*);
return psa_initial_attest_get_token_size(challenge_size, token_size);
- case PAL_INITIAL_ATTEST_VERIFY_TOKEN:
- challenge = va_arg(valist, uint8_t*);
- challenge_size = va_arg(valist, size_t);
- token = va_arg(valist, uint8_t*);
- verify_token_size = va_arg(valist, size_t);
- return pal_initial_attest_verify_token(challenge, challenge_size,
- token, verify_token_size);
+ case PAL_INITIAL_ATTEST_COMPUTE_HASH:
+ cose_algorithm_id = va_arg(valist, int32_t);
+ buffer_for_hash = va_arg(valist, struct q_useful_buf);
+ hash = va_arg(valist, struct q_useful_buf_c*);
+ protected_headers = va_arg(valist, struct q_useful_buf_c);
+ payload = va_arg(valist, struct q_useful_buf_c);
+ return pal_compute_hash(cose_algorithm_id, buffer_for_hash, hash,
+ protected_headers, payload);
+ case PAL_INITIAL_ATTEST_VERIFY_WITH_PK:
+ cose_algorithm_id = va_arg(valist, int32_t);
+ token_hash = va_arg(valist, struct q_useful_buf_c);
+ signature = va_arg(valist, struct q_useful_buf_c);
+ return pal_crypto_pub_key_verify(cose_algorithm_id, token_hash, signature);
default:
return PAL_STATUS_UNSUPPORTED_FUNC;
}
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/crypto/pal_crypto_config.h b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/crypto/pal_crypto_config.h
index 4c39814..b55309b 100644
--- a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/crypto/pal_crypto_config.h
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/crypto/pal_crypto_config.h
@@ -262,7 +262,7 @@
* Comment macros to disable the types
*/
#define ARCH_TEST_CMAC
-#define ARCH_TEST_GMAC
+//#define ARCH_TEST_GMAC
#define ARCH_TEST_HMAC
/**
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/crypto/pal_crypto_intf.c b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/crypto/pal_crypto_intf.c
index f214555..7bad480 100644
--- a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/crypto/pal_crypto_intf.c
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/crypto/pal_crypto_intf.c
@@ -337,6 +337,7 @@
ciphertext_size = va_arg(valist, size_t);
return psa_mac_verify(key_handle, alg, plaintext, plaintext_size, ciphertext,
ciphertext_size);
+#endif
case PAL_CRYPTO_ASYMMTERIC_ENCRYPT:
key_handle = (psa_key_handle_t)va_arg(valist, int);
alg = va_arg(valist, psa_algorithm_t);
diff --git a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/initial_attestation/pal_attestation_intf.c b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/initial_attestation/pal_attestation_intf.c
index 83c1ebd..dd41690 100644
--- a/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/initial_attestation/pal_attestation_intf.c
+++ b/api-tests/platform/targets/tgt_dev_apis_tfm_musca_b1/nspe/initial_attestation/pal_attestation_intf.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2020, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,8 +26,11 @@
**/
int32_t pal_attestation_function(int type, va_list valist)
{
- uint8_t *challenge, *token;
- size_t challenge_size, *token_size, verify_token_size, token_buffer_size;
+ uint8_t *challenge, *token;
+ size_t challenge_size, *token_size, token_buffer_size;
+ int32_t cose_algorithm_id;
+ struct q_useful_buf buffer_for_hash;
+ struct q_useful_buf_c *hash, payload, protected_headers, token_hash, signature;
switch (type)
{
@@ -43,13 +46,19 @@
challenge_size = va_arg(valist, size_t);
token_size = va_arg(valist, size_t*);
return psa_initial_attest_get_token_size(challenge_size, token_size);
- case PAL_INITIAL_ATTEST_VERIFY_TOKEN:
- challenge = va_arg(valist, uint8_t*);
- challenge_size = va_arg(valist, size_t);
- token = va_arg(valist, uint8_t*);
- verify_token_size = va_arg(valist, size_t);
- return pal_initial_attest_verify_token(challenge, challenge_size,
- token, verify_token_size);
+ case PAL_INITIAL_ATTEST_COMPUTE_HASH:
+ cose_algorithm_id = va_arg(valist, int32_t);
+ buffer_for_hash = va_arg(valist, struct q_useful_buf);
+ hash = va_arg(valist, struct q_useful_buf_c*);
+ protected_headers = va_arg(valist, struct q_useful_buf_c);
+ payload = va_arg(valist, struct q_useful_buf_c);
+ return pal_compute_hash(cose_algorithm_id, buffer_for_hash, hash,
+ protected_headers, payload);
+ case PAL_INITIAL_ATTEST_VERIFY_WITH_PK:
+ cose_algorithm_id = va_arg(valist, int32_t);
+ token_hash = va_arg(valist, struct q_useful_buf_c);
+ signature = va_arg(valist, struct q_useful_buf_c);
+ return pal_crypto_pub_key_verify(cose_algorithm_id, token_hash, signature);
default:
return PAL_STATUS_UNSUPPORTED_FUNC;
}
diff --git a/api-tests/platform/targets/tgt_ff_tfm_an521/nspe/initial_attestation/pal_attestation_eat.h b/api-tests/platform/targets/tgt_ff_tfm_an521/nspe/initial_attestation/pal_attestation_eat.h
index 56d624e..ea2cf93 100644
--- a/api-tests/platform/targets/tgt_ff_tfm_an521/nspe/initial_attestation/pal_attestation_eat.h
+++ b/api-tests/platform/targets/tgt_ff_tfm_an521/nspe/initial_attestation/pal_attestation_eat.h
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2020, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -52,7 +52,7 @@
sizeof(COSE_SIG_CONTEXT_STRING_SIGNATURE1) + /* "Signature1" */ \
2 + /* Overhead for encoding string */ \
T_COSE_SIGN1_MAX_PROT_HEADER + /* entire protected headers */ \
- 3 * ( /* 3 NULL bstrs for fields not used */ \
+ 3 * (/* 3 NULL bstrs for fields not used */ \
1 /* size of a NULL bstr */ \
)
#define NULL_USEFUL_BUF_C NULLUsefulBufC
diff --git a/api-tests/platform/targets/tgt_ff_tfm_an521/nspe/initial_attestation/pal_attestation_intf.c b/api-tests/platform/targets/tgt_ff_tfm_an521/nspe/initial_attestation/pal_attestation_intf.c
index 83c1ebd..dd41690 100644
--- a/api-tests/platform/targets/tgt_ff_tfm_an521/nspe/initial_attestation/pal_attestation_intf.c
+++ b/api-tests/platform/targets/tgt_ff_tfm_an521/nspe/initial_attestation/pal_attestation_intf.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2020, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,8 +26,11 @@
**/
int32_t pal_attestation_function(int type, va_list valist)
{
- uint8_t *challenge, *token;
- size_t challenge_size, *token_size, verify_token_size, token_buffer_size;
+ uint8_t *challenge, *token;
+ size_t challenge_size, *token_size, token_buffer_size;
+ int32_t cose_algorithm_id;
+ struct q_useful_buf buffer_for_hash;
+ struct q_useful_buf_c *hash, payload, protected_headers, token_hash, signature;
switch (type)
{
@@ -43,13 +46,19 @@
challenge_size = va_arg(valist, size_t);
token_size = va_arg(valist, size_t*);
return psa_initial_attest_get_token_size(challenge_size, token_size);
- case PAL_INITIAL_ATTEST_VERIFY_TOKEN:
- challenge = va_arg(valist, uint8_t*);
- challenge_size = va_arg(valist, size_t);
- token = va_arg(valist, uint8_t*);
- verify_token_size = va_arg(valist, size_t);
- return pal_initial_attest_verify_token(challenge, challenge_size,
- token, verify_token_size);
+ case PAL_INITIAL_ATTEST_COMPUTE_HASH:
+ cose_algorithm_id = va_arg(valist, int32_t);
+ buffer_for_hash = va_arg(valist, struct q_useful_buf);
+ hash = va_arg(valist, struct q_useful_buf_c*);
+ protected_headers = va_arg(valist, struct q_useful_buf_c);
+ payload = va_arg(valist, struct q_useful_buf_c);
+ return pal_compute_hash(cose_algorithm_id, buffer_for_hash, hash,
+ protected_headers, payload);
+ case PAL_INITIAL_ATTEST_VERIFY_WITH_PK:
+ cose_algorithm_id = va_arg(valist, int32_t);
+ token_hash = va_arg(valist, struct q_useful_buf_c);
+ signature = va_arg(valist, struct q_useful_buf_c);
+ return pal_crypto_pub_key_verify(cose_algorithm_id, token_hash, signature);
default:
return PAL_STATUS_UNSUPPORTED_FUNC;
}
diff --git a/api-tests/platform/targets/tgt_ff_tfm_musca_a/nspe/crypto/pal_crypto_config.h b/api-tests/platform/targets/tgt_ff_tfm_musca_a/nspe/crypto/pal_crypto_config.h
index 4c39814..b55309b 100644
--- a/api-tests/platform/targets/tgt_ff_tfm_musca_a/nspe/crypto/pal_crypto_config.h
+++ b/api-tests/platform/targets/tgt_ff_tfm_musca_a/nspe/crypto/pal_crypto_config.h
@@ -262,7 +262,7 @@
* Comment macros to disable the types
*/
#define ARCH_TEST_CMAC
-#define ARCH_TEST_GMAC
+//#define ARCH_TEST_GMAC
#define ARCH_TEST_HMAC
/**
diff --git a/api-tests/platform/targets/tgt_ff_tfm_musca_a/nspe/crypto/pal_crypto_intf.c b/api-tests/platform/targets/tgt_ff_tfm_musca_a/nspe/crypto/pal_crypto_intf.c
index 1e61e8c..7bad480 100644
--- a/api-tests/platform/targets/tgt_ff_tfm_musca_a/nspe/crypto/pal_crypto_intf.c
+++ b/api-tests/platform/targets/tgt_ff_tfm_musca_a/nspe/crypto/pal_crypto_intf.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2020, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -337,6 +337,7 @@
ciphertext_size = va_arg(valist, size_t);
return psa_mac_verify(key_handle, alg, plaintext, plaintext_size, ciphertext,
ciphertext_size);
+#endif
case PAL_CRYPTO_ASYMMTERIC_ENCRYPT:
key_handle = (psa_key_handle_t)va_arg(valist, int);
alg = va_arg(valist, psa_algorithm_t);
diff --git a/api-tests/platform/targets/tgt_ff_tfm_musca_a/nspe/initial_attestation/pal_attestation_eat.h b/api-tests/platform/targets/tgt_ff_tfm_musca_a/nspe/initial_attestation/pal_attestation_eat.h
index 56d624e..ea2cf93 100644
--- a/api-tests/platform/targets/tgt_ff_tfm_musca_a/nspe/initial_attestation/pal_attestation_eat.h
+++ b/api-tests/platform/targets/tgt_ff_tfm_musca_a/nspe/initial_attestation/pal_attestation_eat.h
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2020, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -52,7 +52,7 @@
sizeof(COSE_SIG_CONTEXT_STRING_SIGNATURE1) + /* "Signature1" */ \
2 + /* Overhead for encoding string */ \
T_COSE_SIGN1_MAX_PROT_HEADER + /* entire protected headers */ \
- 3 * ( /* 3 NULL bstrs for fields not used */ \
+ 3 * (/* 3 NULL bstrs for fields not used */ \
1 /* size of a NULL bstr */ \
)
#define NULL_USEFUL_BUF_C NULLUsefulBufC
diff --git a/api-tests/platform/targets/tgt_ff_tfm_musca_a/nspe/initial_attestation/pal_attestation_intf.c b/api-tests/platform/targets/tgt_ff_tfm_musca_a/nspe/initial_attestation/pal_attestation_intf.c
index 83c1ebd..dd41690 100644
--- a/api-tests/platform/targets/tgt_ff_tfm_musca_a/nspe/initial_attestation/pal_attestation_intf.c
+++ b/api-tests/platform/targets/tgt_ff_tfm_musca_a/nspe/initial_attestation/pal_attestation_intf.c
@@ -1,5 +1,5 @@
/** @file
- * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
+ * Copyright (c) 2019-2020, Arm Limited or its affiliates. All rights reserved.
* SPDX-License-Identifier : Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,8 +26,11 @@
**/
int32_t pal_attestation_function(int type, va_list valist)
{
- uint8_t *challenge, *token;
- size_t challenge_size, *token_size, verify_token_size, token_buffer_size;
+ uint8_t *challenge, *token;
+ size_t challenge_size, *token_size, token_buffer_size;
+ int32_t cose_algorithm_id;
+ struct q_useful_buf buffer_for_hash;
+ struct q_useful_buf_c *hash, payload, protected_headers, token_hash, signature;
switch (type)
{
@@ -43,13 +46,19 @@
challenge_size = va_arg(valist, size_t);
token_size = va_arg(valist, size_t*);
return psa_initial_attest_get_token_size(challenge_size, token_size);
- case PAL_INITIAL_ATTEST_VERIFY_TOKEN:
- challenge = va_arg(valist, uint8_t*);
- challenge_size = va_arg(valist, size_t);
- token = va_arg(valist, uint8_t*);
- verify_token_size = va_arg(valist, size_t);
- return pal_initial_attest_verify_token(challenge, challenge_size,
- token, verify_token_size);
+ case PAL_INITIAL_ATTEST_COMPUTE_HASH:
+ cose_algorithm_id = va_arg(valist, int32_t);
+ buffer_for_hash = va_arg(valist, struct q_useful_buf);
+ hash = va_arg(valist, struct q_useful_buf_c*);
+ protected_headers = va_arg(valist, struct q_useful_buf_c);
+ payload = va_arg(valist, struct q_useful_buf_c);
+ return pal_compute_hash(cose_algorithm_id, buffer_for_hash, hash,
+ protected_headers, payload);
+ case PAL_INITIAL_ATTEST_VERIFY_WITH_PK:
+ cose_algorithm_id = va_arg(valist, int32_t);
+ token_hash = va_arg(valist, struct q_useful_buf_c);
+ signature = va_arg(valist, struct q_useful_buf_c);
+ return pal_crypto_pub_key_verify(cose_algorithm_id, token_hash, signature);
default:
return PAL_STATUS_UNSUPPORTED_FUNC;
}
diff --git a/api-tests/platform/targets/tgt_ff_tfm_musca_b1/nspe/crypto/pal_crypto_config.h b/api-tests/platform/targets/tgt_ff_tfm_musca_b1/nspe/crypto/pal_crypto_config.h
index 1518e91..c80bc66 100644
--- a/api-tests/platform/targets/tgt_ff_tfm_musca_b1/nspe/crypto/pal_crypto_config.h
+++ b/api-tests/platform/targets/tgt_ff_tfm_musca_b1/nspe/crypto/pal_crypto_config.h
@@ -262,7 +262,7 @@
* Comment macros to disable the types
*/
#define ARCH_TEST_CMAC
-#define ARCH_TEST_GMAC
+//#define ARCH_TEST_GMAC
#define ARCH_TEST_HMAC
/**
diff --git a/api-tests/platform/targets/tgt_ff_tfm_musca_b1/nspe/initial_attestation/pal_attestation_intf.c b/api-tests/platform/targets/tgt_ff_tfm_musca_b1/nspe/initial_attestation/pal_attestation_intf.c
index 00bff8b..009b79f 100644
--- a/api-tests/platform/targets/tgt_ff_tfm_musca_b1/nspe/initial_attestation/pal_attestation_intf.c
+++ b/api-tests/platform/targets/tgt_ff_tfm_musca_b1/nspe/initial_attestation/pal_attestation_intf.c
@@ -26,8 +26,11 @@
**/
int32_t pal_attestation_function(int type, va_list valist)
{
- uint8_t *challenge, *token;
- size_t challenge_size, *token_size, verify_token_size, token_buffer_size;
+ uint8_t *challenge, *token;
+ size_t challenge_size, *token_size, token_buffer_size;
+ int32_t cose_algorithm_id;
+ struct q_useful_buf buffer_for_hash;
+ struct q_useful_buf_c *hash, payload, protected_headers, token_hash, signature;
switch (type)
{
@@ -43,13 +46,19 @@
challenge_size = va_arg(valist, size_t);
token_size = va_arg(valist, size_t*);
return psa_initial_attest_get_token_size(challenge_size, token_size);
- case PAL_INITIAL_ATTEST_VERIFY_TOKEN:
- challenge = va_arg(valist, uint8_t*);
- challenge_size = va_arg(valist, size_t);
- token = va_arg(valist, uint8_t*);
- verify_token_size = va_arg(valist, size_t);
- return pal_initial_attest_verify_token(challenge, challenge_size,
- token, verify_token_size);
+ case PAL_INITIAL_ATTEST_COMPUTE_HASH:
+ cose_algorithm_id = va_arg(valist, int32_t);
+ buffer_for_hash = va_arg(valist, struct q_useful_buf);
+ hash = va_arg(valist, struct q_useful_buf_c*);
+ protected_headers = va_arg(valist, struct q_useful_buf_c);
+ payload = va_arg(valist, struct q_useful_buf_c);
+ return pal_compute_hash(cose_algorithm_id, buffer_for_hash, hash,
+ protected_headers, payload);
+ case PAL_INITIAL_ATTEST_VERIFY_WITH_PK:
+ cose_algorithm_id = va_arg(valist, int32_t);
+ token_hash = va_arg(valist, struct q_useful_buf_c);
+ signature = va_arg(valist, struct q_useful_buf_c);
+ return pal_crypto_pub_key_verify(cose_algorithm_id, token_hash, signature);
default:
return PAL_STATUS_UNSUPPORTED_FUNC;
}