aboutsummaryrefslogtreecommitdiff
path: root/tools/tf_fuzz/lib/tfm_boilerplate.txt
diff options
context:
space:
mode:
Diffstat (limited to 'tools/tf_fuzz/lib/tfm_boilerplate.txt')
-rw-r--r--tools/tf_fuzz/lib/tfm_boilerplate.txt289
1 files changed, 0 insertions, 289 deletions
diff --git a/tools/tf_fuzz/lib/tfm_boilerplate.txt b/tools/tf_fuzz/lib/tfm_boilerplate.txt
deleted file mode 100644
index dcec0865ba..0000000000
--- a/tools/tf_fuzz/lib/tfm_boilerplate.txt
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * Copyright (c) 2019-2020, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-This file is a library text file of boilerplate-text snippets. TF-Fuzz reads in these
-snippets and then performs targeted text substitutions upon them, to create the indi-
-vidual PSA commands, and other important code snippets. This one in particular
-library-text file is what might be called the "personality module" for writing tests
-with TF-M syntax.
-
-Four extremely important things about this file:
-* The individual text snippets are separated by "backtick" (AKA back-apostrophe)
- characters (see below). This means that text snippets of TF code can't use backtick
- characters (reasonably safe for C code).
-* The text snippets are *positional*. The loop in boilerplate.cpp reads them in, in
- the order they appear in this file, into a vector of strings. The "const int"s in
- boilerplate.hpp assign symbolic names to the vector indices. It is therefore
- *critical* that the, for example, 11th backtick-delineated text snippet in this file,
- be read into the 11 string in this vector of strings!
-* This first text snippet that you're now reading -- a README about this file -- is
- ignored by this boilerplate.cpp loop; it is not read into this vector of snippets.
-* To make it easier to track the positional nature of the text snippets in this file,
- the first three characters, plus the leading \n, of these snippets is trimmed off
- and ignored. These first three characters in each string comprise a sequence
- number, for checking against the "const int" list in boilerplate.hpp. So, these
- tags are literally the exactly the 3 characters directly after the backtick termi-
- nating the previous string.
-`000
-/*
- * Test purpose:
- * $purpose
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <string.h>
-#include <stdint.h>
-
-#include "psa/protected_storage.h"
-#include "psa/crypto.h"
-#include "test_framework.h"
-`001
-
-static uint32_t shift_reg = 0x55555555;
-static int i; /* generic counter variable */
-
-static void seed_hasher (void)
-{
- shift_reg = 0x55555555;
-}
-
-static uint32_t lfsr_1b (uint32_t a_bit)
-{
- int odd;
- uint32_t polynomial = 0xb4bcd35c;
-
- odd = ((shift_reg ^ a_bit) & 1) == 1;
- shift_reg >>= 1;
- if (odd == 1) {
- shift_reg ^= polynomial;
- }
- if (shift_reg == 0) {
- /* Should never happen, but... */
- seed_hasher();
- }
- return shift_reg;
-}
-
-static uint32_t crc_byte (uint8_t a_byte)
-{
- int i;
- for (i = 0; i < 8; i++) {
- lfsr_1b ((uint32_t) a_byte);
- a_byte >>= 1;
- }
- return shift_reg;
-}
-
-`002
-
-/* This is not yet right for how to run a test; need to register tests, etc. */
-
-void test_thread (struct test_result_t *ret) {
- psa_status_t crypto_status; /* result from Crypto calls */
- psa_status_t sst_status;
-`003
- (void)sst_status;
- /* "void" to prevent unused-variable warning, since the variable may not
- * be used in this particular test case.
- */
-
- crypto_status = psa_crypto_init();
- if (crypto_status != PSA_SUCCESS) {
- TEST_FAIL("Could not initialize Crypto.");
- return;
- }
-
- TEST_LOG("Test $purpose");
-`004
- static int $var = $init;
-`005
- static uint8_t $var[] = "$init";
-`006
- static uint8_t $var[2048] = "$init";
-`007
- static size_t $var = $init;
-`008
- static psa_key_attributes_t $var;
-`009
- static psa_algorithm_t $var;
-`010
- static psa_key_lifetime_t $var;
-`011
- static psa_key_type_t $var;
-`012
- static psa_key_usage_t $var;
-`013
- static psa_key_handle_t $var;
-`014
- $type $var = $init;
-`015
- TEST_LOG("$message");
-`016
- psa_ps_remove($uid);
-`017
- if (sst_status != PSA_SUCCESS) {
- TEST_FAIL("Failed to tear down an SST asset upon test completion.");
- return;
- }
-`018
- psa_destroy_key($handle);
-`019
- if (crypto_status != PSA_SUCCESS) {
- TEST_FAIL("Failed to tear down a crypto asset upon test completion");
- return;
- }
-`020
-
- /* Test completed */
- ret->val = TEST_PASSED;
-}
-`021 PSA_SUCCESS`022 PSA_ERROR_DOES_NOT_EXIST`023
- /* $op SST asset $description with data $data_source. */
- sst_status = psa_ps_set($uid, $length, $data,
- $flags);
-`024
- if (sst_status != $expect) {
- TEST_FAIL("psa_ps_set() expected $expect.");
- return;
- }
-`025
- sst_status = psa_ps_get($uid, $offset, $length, $act_data,
- &$act_length);
-`026
- if (sst_status != $expect) {
- TEST_FAIL("psa_ps_get() expected $expect.");
- return;
- }
-`027
- if (sst_status != $expect) {
- TEST_FAIL("psa_ps_get() expected $expect.");
- return;
- }
- /* Check that the data is correct */
- if (memcmp($act_data, $exp_data,
- $length) != 0) {
- TEST_FAIL("Read data should be equal to result data");
- return;
- }
-`028
- /* Hash the actual data for later data-leak checking: */
- seed_hasher();
- for (i = 0; i < strlen((char *) $act_data_var); ++i) {
- crc_byte ($act_data_var[i]);
- }
- /* $hash_var = shift_reg; */
-`029
- sst_status = psa_ps_remove($uid);
-`030
- if (sst_status != $expect) {
- TEST_FAIL("psa_ps_remove() expected $expect.");
- return;
- }
-`031
- $policy = psa_key_attributes_init();
-`032
- psa_reset_key_attributes (&$policy);
-`033
- psa_set_key_usage_flags (
- &$policy,
- psa_get_key_usage_flags (&$policy)
- | $flag
- );
-`034
- psa_set_key_lifetime (&$policy, $life);
-`035
- psa_set_key_bits (&$policy, $size);
-`036
- psa_set_key_type (&$policy, $type);
-`037
- psa_set_key_algorithm (&$policy, $algorithm);
-`038
- psa_set_key_usage_flags (&$policy, $usage);
-`039
- $life = psa_get_key_lifetime (&$policy);
-`040
- $life = psa_get_key_lifetime (&$policy);
- if ($life == PSA_KEY_LIFETIME_VOLATILE) {
- TEST_LOG("$policy: Lifetime is volatile.");
- } else {
- TEST_LOG("$policy: Lifetime is persistent.");
- }
-`041
- $size = psa_get_key_bits (&$policy);
-`042
- $type = psa_get_key_type (&$policy);
-`043
- $type = psa_get_key_type (&$policy);
- TEST_LOG("$policy: Key-type code == $type.");
-`044
- $algorithm = psa_get_key_algorithm (&$policy);
-`045
- $algorithm = psa_get_key_algorithm (&$policy);
- TEST_LOG("$policy: Key-algorithm code == $algorithm.");
-`046
- $usage = psa_get_key_usage_flags (&$policy);
-`047
- if (($usage & $usage_string) != 0) {
- TEST_LOG("$policy: $print_usage_true_string.");
- } else {
- TEST_LOG("$policy: $print_usage_false_string.");
- }
-`048
- crypto_status = psa_get_key_attributes ($key, &$policy);
-`049
- if (crypto_status != $expect) {
- TEST_FAIL("psa_get_key_attributes() expected $expect.");
- return;
- }
-`050
- crypto_status = psa_generate_key (&$policy, &$key);
-`051
- if (crypto_status != $expect) {
- TEST_FAIL("psa_generate_key() expected $expect.");
- return;
- }
-`052
- crypto_status
- = psa_import_key (&$policy, $data, $length, &$key);
-`053
- if (crypto_status != $expect) {
- TEST_FAIL("psa_import_key() expected $expect.");
- return;
- }
-`054
- crypto_status = psa_copy_key ($master, &$policy, &$copy);
-`055
- if (crypto_status != $expect) {
- TEST_FAIL("psa_copy_key() expected $expect.");
- return;
- }
-`056
- /* Check that the data is correct */
- if (memcmp($act_data, $exp_data,
- $length) != 0) {
- TEST_FAIL("Read data should be equal to result data");
- return;
- }
-`057
- crypto_status
- = psa_export_key ($key, $data, $length, &$act_size);
-`058
- if (crypto_status != $expect) {
- TEST_FAIL("psa_export_key() expected $expect.");
- return;
- }
-`059
- crypto_status = psa_destroy_key($key);
-`060
- if (crypto_status != $expect) {
- TEST_FAIL("psa_destroy_key() expected $expect.");
- return;
- }
-`