blob: 3926f66476d2b03118e75b9596645493aa4406e8 [file] [log] [blame]
################
Source Structure
################
.. toctree::
:maxdepth: 1
:glob:
*
*************
Code Overview
*************
To help understand the code, below is a C++-class hierarchy used in this code
base. They are explained further in the documents in their respective
directories, so the file names where the classes are defined is listed below (this,
very roughly in order of functional interactions, of chronological usage during
execution, and of most-to-least importance):
.. code-block:: bash
template_line ./template/template_line.hpp
sst_template_line ./template/template_line.hpp
read_sst_template_line ./template/sst_template_line.hpp
remove_sst_template_line ./template/sst_template_line.hpp
set_sst_template_line ./template/sst_template_line.hpp
policy_template_line ./template/template_line.hpp
read_policy_template_line ./template/crypto_template_line.hpp
set_policy_template_line ./template/crypto_template_line.hpp
key_template_line ./template/template_line.hpp
read_key_template_line ./template/crypto_template_line.hpp
remove_key_template_line ./template/crypto_template_line.hpp
set_key_template_line ./template/crypto_template_line.hpp
security_template_line ./template/template_line.hpp
security_hash_template_line ./template/secure_template_line.hpp
psa_call ./calls/psa_call.hpp
crypto_call ./calls/psa_call.hpp
policy_call ./calls/crypto_call.hpp
init_policy_call ./calls/crypto_call.hpp
reset_policy_call ./calls/crypto_call.hpp
add_policy_usage_call ./calls/crypto_call.hpp
set_policy_lifetime_call ./calls/crypto_call.hpp
set_policy_type_call ./calls/crypto_call.hpp
set_policy_algorithm_call ./calls/crypto_call.hpp
set_policy_usage_call ./calls/crypto_call.hpp
get_policy_lifetime_call ./calls/crypto_call.hpp
get_policy_type_call ./calls/crypto_call.hpp
get_policy_algorithm_call ./calls/crypto_call.hpp
get_policy_usage_call ./calls/crypto_call.hpp
get_policy_size_call ./calls/crypto_call.hpp
get_policy_call ./calls/crypto_call.hpp
key_call ./calls/crypto_call.hpp
generate_key_call ./calls/crypto_call.hpp
create_key_call ./calls/crypto_call.hpp
copy_key_call ./calls/crypto_call.hpp
read_key_data_call ./calls/crypto_call.hpp
remove_key_call ./calls/crypto_call.hpp
sst_call ./calls/psa_call.hpp
sst_remove_call ./calls/sst_call.hpp
sst_get_call ./calls/sst_call.hpp
sst_set_call ./calls/sst_call.hpp
security_call ./calls/psa_call.hpp
hash_call ./calls/security_call.hpp
boilerplate ./boilerplate/boilerplate.hpp
psa_asset ./assets/psa_asset.hpp
crypto_asset ./assets/crypto_asset.hpp
policy_asset ./assets/crypto_asset.hpp
key_asset ./assets/crypto_asset.hpp
sst_asset ./assets/sst_asset.hpp
tf_fuzz_info ./tf_fuzz.hpp
variables ./utility/variables.hpp
crc32 ./utility/compute.hpp
gibberish ./utility/gibberish.hpp
expect_info ./utility/data_blocks.hpp
set_data_info ./utility/data_blocks.hpp
asset_name_id_info ./utility/data_blocks.hpp
TF-Fuzz now has better-organized management of variables in the generated code.
In particular, it maintains a list of variables named in the test template, and
implicit in the code, notably variables assets are ``read`` into. It also now has
completely separate execution phases to parse the test template, simulate the
sequence of PSA calls generated, and write out the expected results. That
simulation is only in enough detail to predict expected results. Since TF-Fuzz
currently mostly addresses only SST calls, that simulation is very simple in
nature -- just tracking data movement.
--------------
*Copyright (c) 2024, Arm Limited. All rights reserved.*