Updating prebuilts and/or headers

e69802011573f0178bf178e270e2645bf7f62df8 - optee_src_build.sh
d15f50688485e11293e0d0bd66d73655e79f7718 - nvcommon_build.sh
79e468b5eb3da5dfc49e4d5027cff370177d9699 - optee/tegra234-optee.dts
c8e0513c06b701ddb65f4524dded76abdf77647c - optee/optee_os/Makefile
8b3eaf0d1f2e980508aac43f9391b7650d628a35 - optee/optee_os/.clang-format
96558a7a79bf90ebde8720b0087c9c578efa981b - optee/optee_os/.checkpatch.conf
f0e65c7d69a4cdd4ca654f479018b5d319c49485 - optee/optee_os/MAINTAINERS
d2eb09f40476bdbbdbfa709b1cc0cc80c873f0ee - optee/optee_os/CHANGELOG.md
6bf9bd872a69d8c13e8dcac71fac8d094646251d - optee/optee_os/README.md
3a608e255399bb5cf2302bb52e533d81c469ecce - optee/optee_os/LICENSE.NVIDIA
370d68b1c9485f254e7c701c31e3c74fd16cacd7 - optee/optee_os/LICENSE
25ecfc13bc9b5205cb9db1ffb015fa973c8a754b - optee/optee_os/typedefs.checkpatch
a7d5f5139d7b9b81a37f26931af0c4922afdaa69 - optee/optee_os/keys/default_ta.pem
4ec1a9b7d2f64d94ccdaa889afe2cba025e5b33b - optee/optee_os/keys/default.pem
739a223e693f30815eb57c7b1bdae6bc5e2c8028 - optee/optee_os/lib/libunw/unwind_arm32.c
7a5d43bd6596d563ed816f9c1422b44e0b5a1b26 - optee/optee_os/lib/libunw/unwind_riscv.c
aa98ee7f2f58e8d9487aef8238db499ea48e9bf7 - optee/optee_os/lib/libunw/unwind_arm64.c
04ec37249588b61e2dfa9cd7874a618b1f27bddd - optee/optee_os/lib/libunw/include/unw/unwind.h
be4c6a3071f47d6d836b24e210bc1d446aa9afcc - optee/optee_os/lib/libdl/dlfcn.c
902b546a61d836961ed0f5fe348b564b0583755a - optee/optee_os/lib/libdl/include/dlfcn.h
34cd5767e5498e0e9fbc3ea30953dbb7a30cc6f6 - optee/optee_os/lib/libmbedtls/mbedtls/BUGS.md
23318adb490dc06c5a2e3ec6619ef9ccb2751594 - optee/optee_os/lib/libmbedtls/mbedtls/SECURITY.md
c15664798564c531febb48552a2c5b37843e833e - optee/optee_os/lib/libmbedtls/mbedtls/SUPPORT.md
36296c1c4e8e0d763476423778c44dbc04b50bd4 - optee/optee_os/lib/libmbedtls/mbedtls/.uncrustify.cfg
b6d56304e5d93a8359613c2c00dd9360ef825323 - optee/optee_os/lib/libmbedtls/mbedtls/README.md
673fcd822394bfa34159701cc14750fea1a03f35 - optee/optee_os/lib/libmbedtls/mbedtls/ChangeLog
2b8b815229aa8a61e483fb4ba0588b8b6c491890 - optee/optee_os/lib/libmbedtls/mbedtls/LICENSE
fc289e09626931286b47247438179e2e37b56f5f - optee/optee_os/lib/libmbedtls/mbedtls/CONTRIBUTING.md
d44e3c3b56f9fdcb029f34d00b948afd4d6e45e7 - optee/optee_os/lib/libmbedtls/mbedtls/library/version.c
4c895118edfa4ee419cc7796b5185536917ec939 - optee/optee_os/lib/libmbedtls/mbedtls/library/ssl_client.c
7770ce4815a1ba16ea28e17fc5c528e27440e789 - optee/optee_os/lib/libmbedtls/mbedtls/library/check_crypto_config.h
e4ef78ff1d50ef8cadd19f1505ff94f1dac62093 - optee/optee_os/lib/libmbedtls/mbedtls/library/md5.c
e5be29bd80ac40ecaad6bcc41abb658bd1c695ca - optee/optee_os/lib/libmbedtls/mbedtls/library/hash_info.h
bcdd5b1c541c7197c9ae80b7b41de32ae5b2ad65 - optee/optee_os/lib/libmbedtls/mbedtls/library/ssl_debug_helpers.h
1dd82643f69b90a342121c72e599b6c3ed613d26 - optee/optee_os/lib/libmbedtls/mbedtls/library/ecdsa.c
d1961d06c288f65b5fc6fb506b4a2631b7947227 - optee/optee_os/lib/libmbedtls/mbedtls/library/bignum_mod.h
b6638d76665125ba505e4beda15943c8a4b75a8d - optee/optee_os/lib/libmbedtls/mbedtls/library/entropy_poll.h
16359a21196d6070404f14d38f5aef727f2167e1 - optee/optee_os/lib/libmbedtls/mbedtls/library/threading.c
fe734580e467840b9b4afa0716fd6e3ffd4942e7 - optee/optee_os/lib/libmbedtls/mbedtls/library/ecjpake.c
5c96237b70f097ac411154f9c56dc1e6bf3b8689 - optee/optee_os/lib/libmbedtls/mbedtls/library/pem.c
e3d039b0374d156fb2acf43a47ca8f553955e544 - optee/optee_os/lib/libmbedtls/mbedtls/library/dhm.c
98cd71c1713713bbb6cd199be758b8592a27c42d - optee/optee_os/lib/libmbedtls/mbedtls/library/padlock.c
b29e0ceb0e7c97ce7824a79a6fc154dcdf35bca0 - optee/optee_os/lib/libmbedtls/mbedtls/library/ecp.c
84eb33b63afb20735abd67e33ced56e1e69173b9 - optee/optee_os/lib/libmbedtls/mbedtls/library/chachapoly.c
6ee8cc29349d39a34b172357c2d5da549d315813 - optee/optee_os/lib/libmbedtls/mbedtls/library/pk_wrap.c
7271c82b848fda7b11750274f46664ba6a7f7ab0 - optee/optee_os/lib/libmbedtls/mbedtls/library/entropy.c
7d92089bbd60045d1caf07e02223ac6b8e1708cf - optee/optee_os/lib/libmbedtls/mbedtls/library/bn_mul.h
03d4e38794009d4be0452dc243665f871a6025b1 - optee/optee_os/lib/libmbedtls/mbedtls/library/ctr_drbg.c
78f1b75306d2a679d87a1dbcd73cb656c5410cc9 - optee/optee_os/lib/libmbedtls/mbedtls/library/x509_crt.c
01bc4944a27e202656ef9f1fdde863fb9e4de3e3 - optee/optee_os/lib/libmbedtls/mbedtls/library/ssl_tls.c
8c9f2ee60d829ece04a767a04a4ef06de9d72139 - optee/optee_os/lib/libmbedtls/mbedtls/library/ssl_cache.c
d95ae27168cedfdd598f6a92654ac3c00f3b67f0 - optee/optee_os/lib/libmbedtls/mbedtls/library/error.c
b24a27e4ce8b259ccc9eea73e1bfbd492f70bb99 - optee/optee_os/lib/libmbedtls/mbedtls/library/pkcs7.c
6a234d07608722c41590614b9f0ec2b5e88e7339 - optee/optee_os/lib/libmbedtls/mbedtls/library/padlock.h
739a5f1f19451ca406d2e52b8eec849c62eb53a8 - optee/optee_os/lib/libmbedtls/mbedtls/library/ssl_ciphersuites.c
99e0a239c9f19e14cf6ce18a3840fb2fca404713 - optee/optee_os/lib/libmbedtls/mbedtls/library/hmac_drbg.c
ce8fff546c26c2f14d68f3d3fcf9f20a14c115ce - optee/optee_os/lib/libmbedtls/mbedtls/library/ssl_tls13_invasive.h
4af04f83c979b6ced3e680a2fa590ac6036c49c9 - optee/optee_os/lib/libmbedtls/mbedtls/library/oid.c
e165b12c049a63c601126933df86ac7788533c80 - optee/optee_os/lib/libmbedtls/mbedtls/library/version_features.c
eaf09cc7765dd62d5217d239db5866ef14cbbcc5 - optee/optee_os/lib/libmbedtls/mbedtls/library/nist_kw.c
f33d29752d62bd5be5b94ab27abcb2c62bfae415 - optee/optee_os/lib/libmbedtls/mbedtls/library/sha256.c
b3f01220df7e01b622c4d903e9c40c6cb3203ec7 - optee/optee_os/lib/libmbedtls/mbedtls/library/platform.c
ff7a9b66046c0de1a36bcd7c09a2307fb860aeb4 - optee/optee_os/lib/libmbedtls/mbedtls/library/aes.c
ff5f51be79458657afcb92b173c63f15e725652a - optee/optee_os/lib/libmbedtls/mbedtls/library/net_sockets.c
d9581ba9d5255971f4d9e85adcc8e255e3690af9 - optee/optee_os/lib/libmbedtls/mbedtls/library/ssl_ticket.c
6e68dbefe68f198625ac005ee1030684626f677e - optee/optee_os/lib/libmbedtls/mbedtls/library/constant_time_internal.h
7727cc53f6d74155b26ee8b5998bf3747bc8697e - optee/optee_os/lib/libmbedtls/mbedtls/library/platform_util.c
3b9243735cc374f8ade3dfa5579640b6911d38a3 - optee/optee_os/lib/libmbedtls/mbedtls/library/chacha20.c
90e90cf98195b7b842e4fe3560dc3af0b98576fe - optee/optee_os/lib/libmbedtls/mbedtls/library/ecp_invasive.h
8404b765bfb0f3d07acd2403655c41357841fbd8 - optee/optee_os/lib/libmbedtls/mbedtls/library/lmots.h
6b031e72d28b388ec56568fb16dbfcd3b49b23df - optee/optee_os/lib/libmbedtls/mbedtls/library/pk.c
15644378eab950e066a06564db258eb38a5628c4 - optee/optee_os/lib/libmbedtls/mbedtls/library/sha512.c
0c28525180d3b52933a129728b8ca9c7b45685ef - optee/optee_os/lib/libmbedtls/mbedtls/library/aesce.h
119003e69094f7f58c5f7b7c8297712eb1c066a6 - optee/optee_os/lib/libmbedtls/mbedtls/library/ssl_misc.h
19d6760fd47f19624204d669e96410c6f2de2cc8 - optee/optee_os/lib/libmbedtls/mbedtls/library/x509_create.c
bb141273d9cc4967730f58c9df9ccf52ebce1c5d - optee/optee_os/lib/libmbedtls/mbedtls/library/cipher.c
cba8732c79a4b1f77acfaa6e407abf1f883b1424 - optee/optee_os/lib/libmbedtls/mbedtls/library/pkparse.c
5bd7a8da938d48cedd9875f261fb6189b284d407 - optee/optee_os/lib/libmbedtls/mbedtls/library/x509_crl.c
6732bbddb23ffdbd9f0a76ab9b2c259133fb61a9 - optee/optee_os/lib/libmbedtls/mbedtls/library/x509_csr.c
edebd5be7d3d6f1d67ed39ee288f6152cf28ade3 - optee/optee_os/lib/libmbedtls/mbedtls/library/ssl_debug_helpers_generated.c
1eea4712651b9bbf77f83ce725f1a932493f8894 - optee/optee_os/lib/libmbedtls/mbedtls/library/x509.c
baf14771ebe0476dbe644e7bfcc8d62b21c5713f - optee/optee_os/lib/libmbedtls/mbedtls/library/asn1parse.c
5fa68d30e7d3c6a0d10bccf0826c15fc0e9d38a9 - optee/optee_os/lib/libmbedtls/mbedtls/library/pkwrite.c
4509f6798e2fca09d888f42f2ce9ee2da001c307 - optee/optee_os/lib/libmbedtls/mbedtls/library/alignment.h
4a9d15ec9dfd5b5f325d8f087f7190d64edc097e - optee/optee_os/lib/libmbedtls/mbedtls/library/constant_time_invasive.h
db65452086da8483b9d6b915fb70a40b948545c3 - optee/optee_os/lib/libmbedtls/mbedtls/library/lms.c
53415759da55cbb415f71e3ebfde42e38a068a50 - optee/optee_os/lib/libmbedtls/mbedtls/library/pkwrite.h
23f18586a432d734114ed496a5c353a1650035f6 - optee/optee_os/lib/libmbedtls/mbedtls/library/asn1write.c
3639af0ef05f1a45d10b37194fa545d2b9bcf993 - optee/optee_os/lib/libmbedtls/mbedtls/library/ssl_client.h
3ca7167353009560f76e6956baa3bf4b34a563cd - optee/optee_os/lib/libmbedtls/mbedtls/library/md.c
4107f08bc1470b4cf703bd702bd458b67a329e79 - optee/optee_os/lib/libmbedtls/mbedtls/library/aesce.c
dc62d3c0502a13a522b51dde3a39f8d9c9f6da3c - optee/optee_os/lib/libmbedtls/mbedtls/library/base64.c
0607553e84acf3ad608f42db5a86151053e21e4b - optee/optee_os/lib/libmbedtls/mbedtls/library/des.c
a0955ccbdbfb3c22ecbca9a8f91ed5a3a1e775a3 - optee/optee_os/lib/libmbedtls/mbedtls/library/constant_time.c
ce3bfca0ba9327f83686dc6d74a2170ecb14d4ae - optee/optee_os/lib/libmbedtls/mbedtls/library/pkcs5.c
8b9d26205c5224da0964b29edd7a45821daf96db - optee/optee_os/lib/libmbedtls/mbedtls/library/bignum_mod.c
e1c3d2e229393412977b04c76cf8c86a4821ea07 - optee/optee_os/lib/libmbedtls/mbedtls/library/gcm.c
d90aa1bf42c16ceb4870ae7a3d3678fa4b01fd9d - optee/optee_os/lib/libmbedtls/mbedtls/library/hkdf.c
a6c1c10394f80d236c7a242ceaccc0ac6414fe44 - optee/optee_os/lib/libmbedtls/mbedtls/library/ssl_cookie.c
14353e3414b814893557982d985a03ed8d687abf - optee/optee_os/lib/libmbedtls/mbedtls/library/bignum.c
4ba4b18dcb3a60651d24555a1125a9c2d226af5a - optee/optee_os/lib/libmbedtls/mbedtls/library/x509write_crt.c
85c379cc812b43e8436af3a12ddf9d96cd2ae282 - optee/optee_os/lib/libmbedtls/mbedtls/library/cipher_wrap.c
d974cb499431b226552b0132e29b52d624dbf598 - optee/optee_os/lib/libmbedtls/mbedtls/library/hash_info.c
47ddc30fc88488fb374094fa2eceba8e6fad4138 - optee/optee_os/lib/libmbedtls/mbedtls/library/ssl_tls13_keys.h
8628488e4ae680019e691313853788e572480181 - optee/optee_os/lib/libmbedtls/mbedtls/library/aria.c
246d2c4b6bcd2bc5d8caa3c647b4849dbde31334 - optee/optee_os/lib/libmbedtls/mbedtls/library/pk_wrap.h
4b81ddd5a55b6605b66c2ef896883cbd83513d12 - optee/optee_os/lib/libmbedtls/mbedtls/library/lmots.c
eb190023507c8a4e75925189905512116ee2ff9b - optee/optee_os/lib/libmbedtls/mbedtls/library/bignum_mod_raw.h
2293962f77728a8f33e100aed92d7766a1a2bc57 - optee/optee_os/lib/libmbedtls/mbedtls/library/bignum_mod_raw.c
71d11dea6aa1fca13aaaddd6c4c9a53dd0a6d243 - optee/optee_os/lib/libmbedtls/mbedtls/library/ecp_curves.c
67958d1e91e6df087bcc331a433b33985307df71 - optee/optee_os/lib/libmbedtls/mbedtls/library/ssl_tls13_server.c
6c0519e9add157846123cb46d3dcb2e90afdb0e4 - optee/optee_os/lib/libmbedtls/mbedtls/library/md_wrap.h
1c1eacc97bf0cef27c7814ef8505fa0698c5ba6b - optee/optee_os/lib/libmbedtls/mbedtls/library/common.h
6c39e72e1686552144f2e5d1bb7e61b35c9f24d4 - optee/optee_os/lib/libmbedtls/mbedtls/library/timing.c
b5af70ad6da2f4b68ec723d1f31dac17e99bbce8 - optee/optee_os/lib/libmbedtls/mbedtls/library/rsa_alt_helpers.h
7a9dfd9eb3ad4b72c8eabba544aa22bad1b76b82 - optee/optee_os/lib/libmbedtls/mbedtls/library/entropy_poll.c
2e2d37262a4fcf868902f0d8cc7dd769edebdf07 - optee/optee_os/lib/libmbedtls/mbedtls/library/bignum_mod_raw_invasive.h
783f3d68843e641b6aae9942ecf5ee71d880e87c - optee/optee_os/lib/libmbedtls/mbedtls/library/poly1305.c
154a942dbce1fc3eda40ac948f9052a7b64031ed - optee/optee_os/lib/libmbedtls/mbedtls/library/aesni.h
92e4737de82118950ee187100f82cea0f21892b8 - optee/optee_os/lib/libmbedtls/mbedtls/library/sha1.c
4ebf29fb2f2de150df473f3205cbe65f24187d71 - optee/optee_os/lib/libmbedtls/mbedtls/library/pkcs12.c
2a42128d6600aa5ac94c8fa8e33eae58294b9979 - optee/optee_os/lib/libmbedtls/mbedtls/library/aesni.c
50947d3bdc6828a91c5cc87e98ddfad59819b8da - optee/optee_os/lib/libmbedtls/mbedtls/library/ssl_tls13_client.c
a107e54f6aa27c409eca764bbbb57b5076f1d8f7 - optee/optee_os/lib/libmbedtls/mbedtls/library/bignum_core.h
35fd3ec54ab25ba897c90670e275a02b663398fa - optee/optee_os/lib/libmbedtls/mbedtls/library/rsa.c
e38a083f5ceeadc8bb63d1affc622d269e051df1 - optee/optee_os/lib/libmbedtls/mbedtls/library/camellia.c
7742da57b8a202b800bbfd228d11ace043e9ff53 - optee/optee_os/lib/libmbedtls/mbedtls/library/ecp_internal_alt.h
08102e4b89e44c02f731eed0e96c6253be58a28a - optee/optee_os/lib/libmbedtls/mbedtls/library/debug.c
a1bd10348d84bfb7b7403501fe8ac18c43a5d0bd - optee/optee_os/lib/libmbedtls/mbedtls/library/ssl_msg.c
c6bb15185e97b9cce4be1b0f1b717c66e7629f85 - optee/optee_os/lib/libmbedtls/mbedtls/library/cmac.c
7eba3b8d085ec63deef34ad378d6ff0dfb8772c6 - optee/optee_os/lib/libmbedtls/mbedtls/library/memory_buffer_alloc.c
e1f466c89d96a92b9a5a8ff9e8057b43819ea576 - optee/optee_os/lib/libmbedtls/mbedtls/library/cipher_wrap.h
d73c9a1f19fa01faff542a4d4883ee8ea65ca3b4 - optee/optee_os/lib/libmbedtls/mbedtls/library/ssl_tls13_generic.c
e3c7fb464c5949f48b961879ae6086786aee3139 - optee/optee_os/lib/libmbedtls/mbedtls/library/ecdh.c
321c43f4130cc3549c34cea35c3bacf190fdd1c1 - optee/optee_os/lib/libmbedtls/mbedtls/library/ssl_tls12_client.c
b78ab9253ba70b0daf12c1a340d86e30e18af87b - optee/optee_os/lib/libmbedtls/mbedtls/library/ripemd160.c
94dc6df926a5508e2768a3fd5548f5b3fdce5137 - optee/optee_os/lib/libmbedtls/mbedtls/library/ssl_tls13_keys.c
0ac5b7484872759c4f5fbbadc274e323bec14f04 - optee/optee_os/lib/libmbedtls/mbedtls/library/ccm.c
013516f2c5b13515271831f3074dd8483f46a008 - optee/optee_os/lib/libmbedtls/mbedtls/library/rsa_alt_helpers.c
d44df335d6040133dd34dc6618136bdc05e3d041 - optee/optee_os/lib/libmbedtls/mbedtls/library/ssl_tls12_server.c
65cfbaeb638274d06bb384b2cfffe7a71c327566 - optee/optee_os/lib/libmbedtls/mbedtls/library/bignum_core.c
3efd049c3efff8626c1bb0e3cbf8d805a1cab499 - optee/optee_os/lib/libmbedtls/mbedtls/library/x509write_csr.c
2fa6f5794a2b39f61736225acdc1e506d5e34fc4 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/pkcs7.h
d1365ec3dcc0d0019b4fad3b9d493349e31f3cc6 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/bignum.h
77a20bc7000287fff180917229509526e46281a1 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/legacy_or_psa.h
b5694fa3505daeb7573dd758bd6b653c0de1afc9 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/platform_util.h
3f7ababa154ed97e00cc354a85dd6dfb01bf191a - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/asn1.h
3a7b764d7fb3eda659a0a40d859cb8c11189711f - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/base64.h
964ae1d8e907f310ba4305e2e2fe5eb420e1d44e - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/pkcs12.h
83fa40eedddc46f115ecd2b7d694ec480a7c3877 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/ssl_cache.h
66a2f6f275b96497eff585c81cf3ed51789cad81 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/platform.h
a3c459aa9af3e2b93c623fe18df065d29a669438 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/sha512.h
4d297428c707305b537f3a980013fe78d0402f15 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/debug.h
5fea2e00b7e30a8e8af9dbb928580820ed60a923 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/cmac.h
61cf33a4be261e8b301912b2c000b65663d808dd - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/asn1write.h
3a2eeab85a1baae2bdb391b5533fdecc2a0234a7 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/oid.h
9c535b705238b7772d94d641b302c7f6ccf530e3 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/x509_csr.h
2dcb2e9392425e97aadc4ef0ea9d89d98101190b - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/aes.h
dcad3cd68a858d8be40a59270c12554638d3ae73 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/timing.h
17807a5ea8b97b81929fb3617c8fd6d3fd9b5c17 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/ecdsa.h
7725757926d55789561f174d43a2bb3c559ba3b1 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/x509_crl.h
dc30308e03eccc8a141cfe512ac21d04fc4044ac - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/hmac_drbg.h
600cf785bb5f196b192156e07c54ed60119dcb70 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/pem.h
680032e2aefe4768ded08425cbc436df6a7063fd - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/psa_util.h
75a2ca90c8514886cb71aefea93b50682fa8a097 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/ecp.h
6c5cdf212852e356a6d6b59217c19724f9b8a67c - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/ssl.h
88ed65ff99b7a98bdc81116adf4b3cf3b93c3698 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/mbedtls_config.h
af055530f86c36845b6cc259e1b5ac2d76a06595 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/ssl_ciphersuites.h
5f769959d10aaa928ab2ea49c53683aa7ab446ec - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/ccm.h
165d31572d6623a93a30cba0e29da8219f645381 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/threading.h
e388025ddb055c304c2192546aaba27fdf13a6f6 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/md.h
c1326c4315382c22d36653a2218259f0213e79e6 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/rsa.h
268fc8231ff7d8492dddbfcad58509e0c1674dda - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/ssl_cookie.h
ac851218aae0791fad561743509193cab88ecc7d - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/sha1.h
1dad42f86d7f7f6757aae9d148fcc01da828b685 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/des.h
84a7c437cb483895988e6c99b5d813fe9cd41b20 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/private_access.h
a39c918b9088d3613c149ac45fa6846b8b9e9718 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/version.h
3e3b30db9e4ed323b2f09885bc5d72d553f4af69 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/platform_time.h
290f0392f61186fcf279c42c7af4c748ffdc1077 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/ripemd160.h
ab6e31829204b25841aa43a557116e39893507b9 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/x509_crt.h
07d8d6633e32f1d7eae45458f894d16e26b7bb56 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/gcm.h
5b7567b30cde9c7af7e07081004a6de7b6da1677 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/chacha20.h
76ef7f16b918ace41a80bab34517b9e1a3bd849a - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/pkcs5.h
9f154acc5f1403d57d4e320fc9ab07cafb77b92c - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/nist_kw.h
69e6f5b121e0db62e1e09066bf65e6672e159171 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/config_psa.h
40e4f413f90a3bd0d2707181246aa1f826afed34 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/md5.h
02b2014b160fc815ac10e66428c5a91782d5bc75 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/ctr_drbg.h
71cbb1524e95b09856e4292aa796972a65fc2c5e - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/compat-2.x.h
bc30314856f913a9bb357c98e82512e2c87fba26 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/check_config.h
56f7cb406aad762ab2e4c9da9fb921f2ed50ff52 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/sha256.h
e0cbaac26e5e75327639bdb8c9bbbde147ae7bc3 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/cipher.h
ef896f03a4a70fb9f7d571c6407a45ae7c966628 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/build_info.h
c5e0f50fa94d537bd48d372d258c986a6a5898ef - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/camellia.h
ae94188698121fe0a337e5d7488a1177ba1356d0 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/error.h
2e197e5112b78be40dab23f5ec9ca26f0b7d508f - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/constant_time.h
9f316a2285bbcbbf1359c2ee62b07f0c779242ed - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/ecdh.h
283e1b401def7ba93ffd27b4951d234c38422f93 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/lms.h
062b24a18b2cef0cd22397570e2d20193bcd2828 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/hkdf.h
155e9ba5f70b0b71503c8a74f18c4ce05e606d6a - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/poly1305.h
f7246ab94041815719a72b69676254de11372fe7 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/ssl_ticket.h
4f2a63b8c6d3b8d031455f1f23858eaca5fa2866 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/aria.h
25ab17cb92e38c8a12e0a3092d597ff5051ae123 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/x509.h
dde4b8c94d7b2068edbc221843a8844aac09d597 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/pk.h
2ae504202c3cdb2e397d0585366a20df46740d1a - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/chachapoly.h
4db5552e53a6e7b6f6f53186024695937a440891 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/ecjpake.h
00722750ae0ad09c5bcb00a4d7475f7a04c6e85f - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/entropy.h
5bc0f0200458b7ec76e2ac5d91b388fa9bb5de43 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/memory_buffer_alloc.h
995fefdf01e797568c300e32af0640ed5a752a0a - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/net_sockets.h
db57e0e1844cb5bfe2f2ccb5d4777a86ca46cbc1 - optee/optee_os/lib/libmbedtls/mbedtls/include/mbedtls/dhm.h
dee3c667186591ed2aaadc40dd7dcacc58d59153 - optee/optee_os/lib/libmbedtls/mbedtls/include/psa/crypto_platform.h
df1c30dcd3e39f02ac914b9e5ce58ffe854645a9 - optee/optee_os/lib/libmbedtls/mbedtls/include/psa/crypto_config.h
b40b450cd5591203be962595eb2d2ac3460f14c3 - optee/optee_os/lib/libmbedtls/mbedtls/include/psa/crypto_extra.h
a6362ed70348246bf4991cc563a8b4afbbb4fe1d - optee/optee_os/lib/libmbedtls/mbedtls/include/psa/crypto_builtin_primitives.h
e75b044cb8e16e09cc751c08581aa4a438ecb3ed - optee/optee_os/lib/libmbedtls/mbedtls/include/psa/crypto_sizes.h
b4d90f0647f47fa5d3cf20b6a95526b657611c3d - optee/optee_os/lib/libmbedtls/mbedtls/include/psa/crypto_driver_common.h
466672cb252e250e358e3bd653aef09078264614 - optee/optee_os/lib/libmbedtls/mbedtls/include/psa/crypto_builtin_composites.h
7e8e95004150031806caf80fe1ca8acd7cebceb5 - optee/optee_os/lib/libmbedtls/mbedtls/include/psa/crypto_types.h
e4b5bd933df2cac806539b80a680ce33fc0f3171 - optee/optee_os/lib/libmbedtls/mbedtls/include/psa/crypto_struct.h
838afa1cf1cde025164212d9144103902a3a8ad4 - optee/optee_os/lib/libmbedtls/mbedtls/include/psa/crypto_driver_contexts_primitives.h
e0437efb823b29d8680400d8a77274c18a66ade6 - optee/optee_os/lib/libmbedtls/mbedtls/include/psa/crypto_compat.h
ea264bd84d15599d077e90945753dd0ae96e1c9f - optee/optee_os/lib/libmbedtls/mbedtls/include/psa/crypto_values.h
9c07dd65a273431dda589f00c3df456995718771 - optee/optee_os/lib/libmbedtls/mbedtls/include/psa/crypto.h
d36849352ac5ca4d1bdb3a43ffd6b7a8d6f5fef4 - optee/optee_os/lib/libmbedtls/mbedtls/include/psa/crypto_se_driver.h
66c6c3e45cb8b148263fb036fde8a9d9d525abcd - optee/optee_os/lib/libmbedtls/mbedtls/include/psa/crypto_driver_contexts_composites.h
34712c06411d1a00ae58d2857f73d33892be0ef7 - optee/optee_os/lib/libmbedtls/include/mbedtls_config_uta.h
a44f5dc58a410538389a74b4cd2fc016b826f839 - optee/optee_os/lib/libmbedtls/include/mbedtls_config_kernel.h
61a92d97bc038e1636f35968f5a75f708383e065 - optee/optee_os/lib/libmbedtls/include/aes_alt.h
b68da531ca86368d8d211961616d067dca104cf2 - optee/optee_os/lib/libmbedtls/core/aes_cbc.c
1e3080bd5db0189b057a3f4fa1d45dae9ce59c72 - optee/optee_os/lib/libmbedtls/core/des_ecb.c
53cec4289bac3bbe8e4fc0ebac55b3071878d7db - optee/optee_os/lib/libmbedtls/core/hash.c
89b5b1b09c6141ce6cae83b42b24106dbf5d19d7 - optee/optee_os/lib/libmbedtls/core/sm2-dsa.c
2475b97d485b317cc088b6d1b3842d0bb9e4bd07 - optee/optee_os/lib/libmbedtls/core/aes.c
7cf5fb5fdbffcf6f9ad1ffefde20cb30eb66d58f - optee/optee_os/lib/libmbedtls/core/sm2-kep.c
a86c6c8bf63ea21ef2492f49cbc071f2f23a1d35 - optee/optee_os/lib/libmbedtls/core/mbed_helpers.c
3eb60b38bd9b87944a242c659ad68d8aaa8e220f - optee/optee_os/lib/libmbedtls/core/aes_ctr.c
3a1838593a7cbf67a1966456b9e4e441e14368ea - optee/optee_os/lib/libmbedtls/core/aes_ecb.c
7d7d3c3b185a01f15e64f2b4815b1f604ed06cb7 - optee/optee_os/lib/libmbedtls/core/mbed_helpers.h
4be86702d2f54b1d3c9fa62c47c1c16e8f9a5210 - optee/optee_os/lib/libmbedtls/core/sm2-pke.h
9eac1bef00d42cb5d29355da4ff216ab65029708 - optee/optee_os/lib/libmbedtls/core/des3_ecb.c
03091ed4d6dc54646fb16556db614135ab3b3128 - optee/optee_os/lib/libmbedtls/core/bignum.c
7c72db258e4db9095f0efed76d97590d49db1025 - optee/optee_os/lib/libmbedtls/core/ecc.c
12ba008130153663cb6542e80dcdb00d3a09d35c - optee/optee_os/lib/libmbedtls/core/hmac.c
bc4a14352a35d7f28ca65fda6e4625eaad768ef2 - optee/optee_os/lib/libmbedtls/core/sm2-pke.c
95257f1b9669bd55e715296a5db0520dfef94dfa - optee/optee_os/lib/libmbedtls/core/des3_cbc.c
e5f2f25d4125ec02f8b75e88014c122601fee192 - optee/optee_os/lib/libmbedtls/core/rsa.c
44c09d4b791e9fc7eb12c3090186b990a05f4484 - optee/optee_os/lib/libmbedtls/core/cmac.c
27d0d017d652207089357343fefde8822d574a56 - optee/optee_os/lib/libmbedtls/core/tomcrypt.c
4a3549fe50b6596fa95703bdad942578f79ff095 - optee/optee_os/lib/libmbedtls/core/des_cbc.c
78d30d0ba985e6d4114a2163f83194e58c30ad9b - optee/optee_os/lib/libmbedtls/core/dh.c
98b5b0189cbb8c50b0e303790d23dbf9681647cc - optee/optee_os/lib/libmbedtls/core/sm2-dsa.h
61ba39ae5f3db7e446666d29227a87474f4a6117 - optee/optee_os/lib/libutee/tee_socket_pta.c
6a2bd30d6d4442e50515c09a081afd22562e62a8 - optee/optee_os/lib/libutee/base64.h
8e021ba886ee4c9113f7e5f943eff836e70d9c62 - optee/optee_os/lib/libutee/tee_api_arith_mpi.c
077681c818e3003b52065a80dbacbd498dff6b29 - optee/optee_os/lib/libutee/tee_api_private.h
8fa85961841aca5f32b051d7c2137dce6048c90a - optee/optee_os/lib/libutee/trace_ext.c
756eb32d34c8adc8518381acb1da0e71abfc07c9 - optee/optee_os/lib/libutee/assert.c
2f5ffed76f45e88e6a21f21030600fdf1485141c - optee/optee_os/lib/libutee/tee_api.c
dc820097b9daaecdbebb44d2745b59ab6c868b3c - optee/optee_os/lib/libutee/user_ta_entry_compat.c
de26a71b90cb412c9efc752727836f54fb1d95b9 - optee/optee_os/lib/libutee/tee_api_objects.c
2a8949363bf9be408cbddf09c072982132988ffc - optee/optee_os/lib/libutee/abort.c
505da116e55bfaee3c94a6db710ef70a860f9bf1 - optee/optee_os/lib/libutee/tcb.c
b4d75c22cea319de57b7d095ce76316fa38d1506 - optee/optee_os/lib/libutee/base64.c
9389ec3691da465689f9ef3c7e4a843bdad07389 - optee/optee_os/lib/libutee/tee_tcpudp_socket.c
0fb276adf148a0417f0f9fd329ccf1c340b3c582 - optee/optee_os/lib/libutee/tee_api_property.c
45c1ba4438be0ecfb4d4bca51534640836b8c995 - optee/optee_os/lib/libutee/tee_api_panic.c
bc9153018927868009fb5a5e6df2a409ecb13f4c - optee/optee_os/lib/libutee/tee_system_pta.c
b1398a9a37ee47f2718169316310a4a16c61166c - optee/optee_os/lib/libutee/tee_uuid_from_str.c
cd3c2b81c2fa7237a975213bafcf7ac4e67ff177 - optee/optee_os/lib/libutee/tee_socket_private.h
681df366c32f67cc5a24341f7b96e459d68b2b2e - optee/optee_os/lib/libutee/tee_api_operations.c
b9209dd75181e9d8ea1f62de22f752dc82097d5d - optee/optee_os/lib/libutee/user_ta_entry.c
07b4cbc455efb89b2f41b5d8b5b7d58008497abf - optee/optee_os/lib/libutee/arch/riscv/utee_syscalls_rv.S
b1ff8027d8f72d6043aefff12c169937335d77c2 - optee/optee_os/lib/libutee/arch/arm/utee_syscalls_a32.S
137080dcbc697e48f567709fe3fda2528f5d40fa - optee/optee_os/lib/libutee/arch/arm/utee_syscalls_a64.S
16e0dc83cf08600fd769832ff1d21611782da066 - optee/optee_os/lib/libutee/arch/arm/gprof/gprof_pta.c
2e2b03efa22c915b6ab0a59c54793e918ae83560 - optee/optee_os/lib/libutee/arch/arm/gprof/gprof_pta.h
a2170433362124e5401cea1cf6f4dafaca653856 - optee/optee_os/lib/libutee/arch/arm/gprof/gmon.h
1a3e524ad810227480d10b0d8426c780c85328bb - optee/optee_os/lib/libutee/arch/arm/gprof/gprof.c
be6fc3000484b65889ef0ddf1e7a926e364575a8 - optee/optee_os/lib/libutee/arch/arm/gprof/gmon_out.h
5e23b121b492913159ac492c975bc689fe4fe9d5 - optee/optee_os/lib/libutee/include/utee_syscalls.h
d6461788cfe9c7fa1812938fccf00428981ca21f - optee/optee_os/lib/libutee/include/pta_rtc.h
e3514bd732b3d0be323aae77cdfcbfb736b42fdb - optee/optee_os/lib/libutee/include/tee_internal_api.h
aa09af74960113ccd4fb8827d07e4b9140aacf8f - optee/optee_os/lib/libutee/include/arm_user_sysreg.h
d6494aea8b2d08af66c5b03901a962d4c23afa5c - optee/optee_os/lib/libutee/include/pta_secstor_ta_mgmt.h
083e406c1b8993f6c0226bf312fcd140b1bc2cc4 - optee/optee_os/lib/libutee/include/pta_imx_digprog.h
989a3f3ba297d8913c040b838c9cab1a5103308f - optee/optee_os/lib/libutee/include/pta_attestation.h
1f3e231e2e68ce744bb262619fadfdb1e8f137a9 - optee/optee_os/lib/libutee/include/tee_arith_internal.h
faeceac8862bbe02c984a8839b1e1cae06319dba - optee/optee_os/lib/libutee/include/pta_rng.h
c4e212610ccdc55f55421917a843a5b8ddb567c2 - optee/optee_os/lib/libutee/include/pta_imx_ocotp.h
c603b51b2bfba8baa7cb2c4dfbaaa421d9461207 - optee/optee_os/lib/libutee/include/tee_api_defines_extensions.h
8981169f89ce2d195a17112b676bb8552d21ad4c - optee/optee_os/lib/libutee/include/tee_api.h
62fdcf80906b4877ba0a4d22e69a0c75e98e8b9b - optee/optee_os/lib/libutee/include/pta_imx_manufacturing_protection.h
ce4bc2d3ed7f6c3ecb68a1f98a7f368f7369a286 - optee/optee_os/lib/libutee/include/utee_syscalls_asm.S
80eb8b37eb87886d40dc390c74bfae90f83ea208 - optee/optee_os/lib/libutee/include/pta_socket.h
aff5768a908441b37ad3a28350e0b0f6bf0007b0 - optee/optee_os/lib/libutee/include/tee_api_defines.h
9155ede1378206e1762eb2696d1589cb2b620ee6 - optee/optee_os/lib/libutee/include/utee_types.h
591d4ed947e32e0c72a95a7a2514221f1cf9490d - optee/optee_os/lib/libutee/include/pta_gprof.h
f6b88edde49c7f79eebc0c3f861b6f19ff685fd1 - optee/optee_os/lib/libutee/include/tee_udpsocket.h
987521c6dd87009f2cad24c545048d20baad76e5 - optee/optee_os/lib/libutee/include/pta_jetson_user_key.h
398b00b2fdfc1d0dd1987e95722a21a6de7413bc - optee/optee_os/lib/libutee/include/pta_device.h
0311b7bfd98a444eeef7c7c89d4e942a84ea6787 - optee/optee_os/lib/libutee/include/tee_ta_api.h
9c2c1f4769d19646dfe1493dfaa1007b8c538af0 - optee/optee_os/lib/libutee/include/rng_pta_client.h
4c169dffab3432c000d70fe610898278c4568483 - optee/optee_os/lib/libutee/include/user_ta_header.h
f5d83909e5071e2affc98fc56ac4b941e00ef03a - optee/optee_os/lib/libutee/include/pta_apdu.h
8572ff4140b947a4e4a4b5752d8265fe1ea5b348 - optee/optee_os/lib/libutee/include/pta_scmi_client.h
aa7d01574e3506e0ee2f42cdb251145908b75381 - optee/optee_os/lib/libutee/include/elf.h
ebea83d32048f9808bd31f5e2dabc5c0314057bb - optee/optee_os/lib/libutee/include/__tee_ipsocket.h
bfd21882753009a9bff306c49ea3d6ba0a27715d - optee/optee_os/lib/libutee/include/pta_stm32mp_bsec.h
47e7cf8af6ad09392aa45b94e88e4cc07e54520e - optee/optee_os/lib/libutee/include/tee_syscall_numbers.h
5ca4833e2188ae7c12e8b39f0448c7f3627571c7 - optee/optee_os/lib/libutee/include/__tee_tcpsocket_defines.h
ef91d0380fcc7f9a3bb92041f649b2756d3f1282 - optee/optee_os/lib/libutee/include/elf_common.h
34686e9ef3d016d68cb94ca12b860c89349b5eca - optee/optee_os/lib/libutee/include/__tee_tcpsocket_defines_extensions.h
f5e7435c16a3b97874cafc61dd32e3e448ea9b79 - optee/optee_os/lib/libutee/include/pta_jetson_ftpm_helper.h
f06afef5b0c60b95525e92a721eb9bcfcf6e6d3a - optee/optee_os/lib/libutee/include/remoteproc_pta.h
793d80272b98715200cd83435c35de534049b96e - optee/optee_os/lib/libutee/include/__tee_isocket_defines.h
5d2f8542dbd85a819207cf9201d5c104d1f45799 - optee/optee_os/lib/libutee/include/arm64_user_sysreg.h
4bfb3666782f62ba34d4645501617d1f4b424a98 - optee/optee_os/lib/libutee/include/riscv_user_sysreg.h
5a4c5c4386df019b937e53bdfca5e05bf5f10921 - optee/optee_os/lib/libutee/include/pta_invoke_tests.h
24acf5f9664ccd81af1147a5e2f875e5a303d97a - optee/optee_os/lib/libutee/include/pta_system.h
8ddaf3ec29e785a63a8b8ba266c13abdce68c125 - optee/optee_os/lib/libutee/include/elf32.h
7812d9a6cf27c9c8cb718a2a8824323576ccaf38 - optee/optee_os/lib/libutee/include/tee_api_compat.h
0f06e417dc0b4434790db823616a67697a157404 - optee/optee_os/lib/libutee/include/__tee_udpsocket_defines.h
dfe89d4404a213f5751887db149a30135cd07f9a - optee/optee_os/lib/libutee/include/pta_scp03.h
f5bd9efbf15469a7a654c4063b66c9cfa7ce476f - optee/optee_os/lib/libutee/include/pta_stats.h
f4adab9015698b3a5ad156216c44340a86567794 - optee/optee_os/lib/libutee/include/link.h
5e08d24c95ed9a2dbbcf69ef3896898ad97abc8a - optee/optee_os/lib/libutee/include/tee_internal_api_extensions.h
9a9e2018f6c94451408a11cb0c0be264353a3c7f - optee/optee_os/lib/libutee/include/pta_imx_dek_blob.h
ed871d9884b5e4c5c7801d8dfc5f77f30d79d4ec - optee/optee_os/lib/libutee/include/tee_tcpsocket.h
41b79406ff05bc4d3528fca688813e7f88e7d135 - optee/optee_os/lib/libutee/include/tee_isocket.h
1ee95d67db99aa4b7dab212672290e1dcf51e1e6 - optee/optee_os/lib/libutee/include/tee_api_types.h
16a82e5d6e02952d5d445df9b95c3d540e9aaa4b - optee/optee_os/lib/libutee/include/utee_defines.h
0914ffb8eea917ca32ddfd5e9d1e07b08242a132 - optee/optee_os/lib/libutee/include/elf64.h
fd26dac1d8ff0a59b77021c57b346cf0d9767c1f - optee/optee_os/lib/libutee/include/pta_widevine.h
d84b15deba3ac3edfa192902098d7b012e19893c - optee/optee_os/lib/libutee/include/k3/otp_keywriting_ta.h
69389cffd2f2392d520b42fb8a877d88184eb7ce - optee/optee_os/lib/libutils/isoc/fputc.c
3c0076665f570bb3894f7975c7af19546b24b949 - optee/optee_os/lib/libutils/isoc/stack_check.c
adf5b4c7851eccb3ab23eaa51e2c67aaea646dba - optee/optee_os/lib/libutils/isoc/ispunct.c
44884a714f6031d8c9899eda446ab6bd902d63bc - optee/optee_os/lib/libutils/isoc/bget.doc
3871de5c02c34257cb8c03aea71c406eca1389eb - optee/optee_os/lib/libutils/isoc/isupper.c
3072e334c9965c360ee485346541f37b1cade0ce - optee/optee_os/lib/libutils/isoc/strndup.c
9bef02b228d5d11a675a74e974644af7f91dc6ec - optee/optee_os/lib/libutils/isoc/iscntrl.c
b2a87efad81c7fc35f3f17a1507b650945a64089 - optee/optee_os/lib/libutils/isoc/fputs.c
486e4ec67949ba32eb52d521355b28c032ea31d4 - optee/optee_os/lib/libutils/isoc/fp.c
a426f426e3093d41ca84adcdf9eefd3d37354379 - optee/optee_os/lib/libutils/isoc/isspace.c
3849e364a583d8e2a6b06c73b88cbff340651414 - optee/optee_os/lib/libutils/isoc/isdigit.c
fbbd10cc345ddfe50e1ca5ec8a2e936b5cfe396a - optee/optee_os/lib/libutils/isoc/toupper.c
15d9b02b2f680e631dc3cb4acb612c5051534577 - optee/optee_os/lib/libutils/isoc/snprintf.c
e50bee77ddab437d58aec0c7d06ad8e70066d752 - optee/optee_os/lib/libutils/isoc/isgraph.c
f3a4dd8bf719bba595428ad39e580b4bdb83c0f2 - optee/optee_os/lib/libutils/isoc/isprint.c
05dba8367bdb83c45ecf37dc4146c37431fb7b40 - optee/optee_os/lib/libutils/isoc/bget_malloc.c
aae0aea5aeb4c700916f3a0cb796958a066f2033 - optee/optee_os/lib/libutils/isoc/islower.c
07859d16a6f156a7b7d53976c3ea35d8c181c050 - optee/optee_os/lib/libutils/isoc/strdup.c
bdba22e240af00ccb765dec28ab938c5e3619bd3 - optee/optee_os/lib/libutils/isoc/isalpha.c
465dccda5f6216b5156acdf8d97692de7a6bc618 - optee/optee_os/lib/libutils/isoc/tolower.c
66446d12deb5b2f6768b0037c5cd7f6bda49c01a - optee/optee_os/lib/libutils/isoc/fwrite.c
afbd6bbf47f8aceef9ce91f60a65246aa8579e52 - optee/optee_os/lib/libutils/isoc/write.c
29a7857f6999a06d58d700ca9bd712c157595adc - optee/optee_os/lib/libutils/isoc/isxdigit.c
fd0766e5127d24a75662d988de4c18f5686b3020 - optee/optee_os/lib/libutils/isoc/isalnum.c
08ed68e1c3fcaca243143f636c99d7b1c7c325bf - optee/optee_os/lib/libutils/isoc/sprintf.c
cc419cf9b3049ca5a067f8efc8b87fb21d16cc17 - optee/optee_os/lib/libutils/isoc/bget.h
d7303541082db306fa6b0447bd5aca62f4cb8169 - optee/optee_os/lib/libutils/isoc/bget.c
bd92a4e902b8f071cb08e11be594c2cc03b13e0b - optee/optee_os/lib/libutils/isoc/qsort.c
013f93c8f430036a391ce8954024b19664a7bfda - optee/optee_os/lib/libutils/isoc/arch/riscv/setjmp_rv.S
dbc715c45b8998c5276e4a7f3dfc71bd81a03947 - optee/optee_os/lib/libutils/isoc/arch/arm/setjmp_a64.S
24bfedc4ffd1c78df045ab1c725bd811b0531bee - optee/optee_os/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S
30211cfa366caf873a7801a7ac8e5828d0518b42 - optee/optee_os/lib/libutils/isoc/arch/arm/setjmp_a32.S
99b85b897d6a461c3fa3c1f9bd54fb771c45ae5c - optee/optee_os/lib/libutils/isoc/arch/arm/arm32_aeabi_softfloat.c
6a325e1881f32b8ca7c74367132e75f9318aff08 - optee/optee_os/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod.c
0519b9fc5474ccc5a5e50b508e05aa1d81b33c3b - optee/optee_os/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod.c
4d6df8e998067ae07c67580b5f7f261238c7cdb6 - optee/optee_os/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S
0f25fedd6c6f397a39b1254cce305242fe230e0b - optee/optee_os/lib/libutils/isoc/arch/arm/arm32_aeabi_shift.c
eea63204ff2fd371e116939e14a504bd9d17de4c - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/README.html
6cbdecb56028446ec09651ef96ade55402b23a2d - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/build/Win64-MinGW-w64/Makefile
39cb04a350a785c8fb1feeb91759b428750191ae - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/build/Win64-MinGW-w64/platform.h
140c840a66dc59f8b8460c7e18349faba5989be1 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/build/Win32-SSE2-MinGW/Makefile
39cb04a350a785c8fb1feeb91759b428750191ae - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/build/Win32-SSE2-MinGW/platform.h
6be19d4409b8a6cafc0be14b9b5ffdf052c7b25b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/build/Win32-MinGW/Makefile
39cb04a350a785c8fb1feeb91759b428750191ae - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/build/Win32-MinGW/platform.h
19237050b884871548365d61622e85253f30ffd1 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/build/template-not-FAST_INT64/Makefile
18484ed24a14a759985a39574bf4d1c56cfe1939 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/build/template-not-FAST_INT64/platform.h
6be19d4409b8a6cafc0be14b9b5ffdf052c7b25b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/build/Linux-386-GCC/Makefile
39cb04a350a785c8fb1feeb91759b428750191ae - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/build/Linux-386-GCC/platform.h
140c840a66dc59f8b8460c7e18349faba5989be1 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/build/Linux-386-SSE2-GCC/Makefile
39cb04a350a785c8fb1feeb91759b428750191ae - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/build/Linux-386-SSE2-GCC/platform.h
2b66ebd06a1b0c7e7626aceab2192011d72a70ab - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/build/Linux-x86_64-GCC/Makefile
39cb04a350a785c8fb1feeb91759b428750191ae - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/build/Linux-x86_64-GCC/platform.h
fc40163df60fca883cf8105128b0e2044b4e5c95 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/build/template-FAST_INT64/Makefile
18484ed24a14a759985a39574bf4d1c56cfe1939 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/build/template-FAST_INT64/platform.h
2e201e03147cc253f93e31812b6cc1fa19c54acc - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shortShiftLeft128.c
1a1af8af29ddb0214656df304b31583e97bbe044 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_le_quiet.c
2a8c469188ac72f1647a4e23121d6baab2f46881 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_to_i64_r_minMag.c
b390f4671e459aa98a5e6eba67989a524df502c6 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_normRoundPackToF128.c
ed1a42257f7a11ddfb2896bb3db8fa6b6b799910 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_add.c
cc9936a7e89313dabf987a759166c6b627c5697f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/i32_to_f128M.c
5aa2d29c4f2ecefdd83adab4927c2dba794a0a43 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_to_f128.c
04822aab5f0c58ebdfca756670ddbddf4524258b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_add.c
a44f15f379846d39821c025d6b7afe2f94cb4411 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_sqrt.c
c62a95ceba02a10b8f43ebf0b1621e6a814f07ad - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_roundPackToF128.c
321d4491ee122d9ff20f50a5fd4708eec3a9bbc4 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_addCarryM.c
67a5f98ae9f74d18b7c83f145618185127a93260 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shortShiftRightJam128Extra.c
c0e3f7568f5ce015eb6724ca13dcdebf3846138f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_to_i32.c
23659a34fd66f6a163767159d9191aece60e9833 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_to_f64.c
b8189771723e965a9e94712bfa8135b04f844af1 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_roundPackMToI64.c
3f17bb81a05b30c928c6f3dcbd9d6c33f6dd808b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_eq.c
039cc691a2609fb90724786e7ed7be17b006803f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_to_i32_r_minMag.c
74978af5148ccce4ca51465a934e52d8ff03fb9a - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/i32_to_f32.c
ddf3732777273f55557aa33c85aaea98c3017a0d - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_roundPackToExtF80.c
c3d4d8448c3e622688342aa49d892b84716125a5 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_eq128.c
bf60482d7a8c7573451dd9d358a4f59882b4ecd8 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_sub.c
e0f5d8c33a9db5f50d0fc16b09808a48a8b052b5 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_mul128MTo256M.c
62e6926f729011d5c3aa3af610ce0b916b919eb4 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_rem.c
0fb28e0101aaab0bd33ae51a05e4b522cea887b3 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_to_ui64.c
25066beb2f05f436d718c8073ec11ad550f53ef1 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_mulAddF64.c
1fb366479cad4034726000f4f22cdbcdcb95a4c0 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_roundToInt.c
c87f6f4eb78569c01e3fd0c6caed99232b37a378 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/i32_to_extF80.c
f81c603cb90e956ee8dde34149ac6bd684d4c70a - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_lt_quiet.c
2fc25c51a836eb30d5a0215659d5fd8b4dbda2e8 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_lt.c
1d4036336aa49d6961f510e234caf45cba50d995 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_to_ui64_r_minMag.c
2af1a8917871bcc8c0560e709aa28418d004c97e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_to_i64_r_minMag.c
d64953149b1077f8e6d0848e2fd5506136e6f2d6 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_add.c
71d3ef74fe02e7fe6891e4db41241c5b2e615643 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_to_extF80M.c
4189613b8730aaff62a01f6254b071b9fd3c8cb6 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_to_f32.c
a091e47127bd1311d2cd2b78353ee99ddfc54100 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shortShiftLeftM.c
fb72828cc90ce8ac0bb436552fbd39bee0f11d35 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/i64_to_f128M.c
7fbcbd3346af638125a977564bb94e3a4112db4c - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_subMagsF64.c
73e3351f07e2c7c7d591555895c25042a56c82fd - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_le.c
28ed562132fa508b794485f84e37ffebf0f45c03 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/ui64_to_f128M.c
e5f8702f5072f781a5b4ef72c7ec4db154d75965 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_invalidF128M.c
d11f89d0268036c5e2190b2001b08b46df5a1496 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_mul.c
3e0d54c15411c2c997b29fa7132f305ba0986d0c - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_to_ui64_r_minMag.c
a04e210c7ba96d0c982f31acdc218a4a63b5326d - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_div.c
cc614514257c6b0a721ebfbf2f2eb22e764e75e4 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shortShiftRightM.c
39e684d513bd8e1bc18146fe5b6b41ca6abfb889 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_to_ui64_r_minMag.c
993bf55183ee975278a5e4c34e658f6f7bd3702e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_sub.c
5f3d886dc9c8533c8093c13f3b4242c66ba17e5a - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_to_ui32_r_minMag.c
4e4a329eebd8c7675a57c1b06f75ff4ac326b2e1 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_tryPropagateNaNExtF80M.c
f02ad3fb3c3e82d60532e677d475a578ecdf6a1d - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_addExtF80M.c
d2e10d43888a0af127c80ebb29261c8c424b217e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_to_f128M.c
7749e3a634b0f7cb154a734be194e52d612310c5 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_sub128.c
3314b591c37fbe10125dd1047b564db3968c7246 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_isSignalingNaN.c
f7e21606f0f60046e7ed31a99520969bf3cff7c5 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_subM.c
61342ccf516ad5891a6f2eb1980d37329501ea4e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_le.c
2355160c0a3526eb32abd1d54fb01083a1fbe18a - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_countLeadingZeros32.c
5d919ea71a15f028ff7b85cd73d9543cbe322b06 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_normRoundPackMToF128M.c
f815fd87ebd1c160aa9ddb1c232c1de58da01072 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_to_ui32.c
876085f70200480ee30305fa6463d7c6504e7e77 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shiftLeftM.c
dd1f8b3669ce1b87360bd05963ce288acfd9f386 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_mulAddF128.c
29d181916bd52d0effa525808e4e4564f56b5ed3 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_subMagsF128.c
9b35552cd723623625c63511e14b0e559d678f4f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_normExtF80SigM.c
df4f91f5c1ef40d1eaec328ca6b879bf095951a7 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_eq_signaling.c
9611fba0e534169527d66900db62b107e96b8e2a - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_roundToInt.c
27897b3a3e2b0f5cfd67ca737c35af7cc360c3cf - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_to_ui64.c
2211257786a567ae6daea47fa4ddd31c0339d328 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_add256M.c
89e1c8f8d93bed98125ee2c0e27f4ad4b87f5f9e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_to_ui64.c
0d9fe463bfee7b28f85650d68588f7fb47358282 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_lt_quiet.c
b37dddeca4634f2e81fadc1fe8c9ec9f9643c56c - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_to_ui32.c
e5c280ffda9fadc7cf51f4e49ba880138473c188 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_sqrt.c
b6e5c30069ee1bfdeb29301eb988d9b5ef1e6fd7 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_remStepMBy32.c
672608ed7c1150531f5d4e2b3aa274de76f24f44 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/ui64_to_extF80.c
04b228218122ee8f024959ef831393289d417e7e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/ui64_to_extF80M.c
97688d5996165455b0ead5c1973e36b6d096c21f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_roundPackMToUI64.c
71874d6de8e801c14005d5b1f68170c3c6c6baba - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_lt_quiet.c
9fbd0b33c76b78481c512902dc4d9a0d67f4f210 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_to_i32_r_minMag.c
3ad627bba48b5bb63c11c5e86c0081d283f4a13c - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_normRoundPackToExtF80.c
e0d12d5167bae0c40dc2ee4e8eb79ccb7d7f8709 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_roundPackToF32.c
082138b2e89a050296984be3e3d195746735edfa - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_roundPackToF64.c
db04e48a5c823e4f060cc56187b01cbb89ee1afc - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_mul.c
03ee79d8d396bc6778c8bd477647f5e7b2035214 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/ui64_to_f32.c
6de7ad17814ec3532d2cc20927580d8cb52c44de - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_mulAddF128M.c
a6ea63bd09a37c67ab0db5c7378603bc343f7c4a - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_lt_quiet.c
a4bba6333e9a92cef62ff68ef528240c29173398 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_to_extF80.c
cddf72a19a53f1cc1e2077dbf7e9269f0ba5cf16 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_rem.c
d7dec92efc7a7503386861fc8a67b770c78d50fd - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_lt_quiet.c
bbb2e442ce63abe6d694eab84ce821e2ec210522 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_lt128.c
b48f6bd306c3509038d6c4d283bc189d517d3b4f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/ui32_to_f128.c
eed7248a2360c629c3dc0b39a7b019c718c1f8f8 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_roundToInt.c
d594421c568958d475a5939b2bc14c195493768f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_le_quiet.c
c7030401c4589ebe4ca9df47cdf4473be706e9c8 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_div.c
016a9e65ca19c7f5d3561d54a3fcbddfb6a310ee - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shortShiftLeft64To96M.c
9fb6f1767a51f28d28e6af39ffaedc9883363298 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_to_i32_r_minMag.c
2cbd145a4e3465e12bfd47dc4a52fd75c4e0b427 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_to_i32_r_minMag.c
b28464c7ae4ca7eb7416555259cf21f36e3906ba - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_mul64To128M.c
c04c45b92e29225e1d2e3decc3dfc108ae63b093 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_to_ui32.c
ef40011bbd21ac40df712f0f16dc844ee06aa453 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_add.c
f394231a827adbe842d2249d968ff138ad99c20b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_normSubnormalF32Sig.c
9783f22f581b7feca4f86660b538b214dd32b129 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shiftRightJam256M.c
4042678da076368eb21bb4ded888e17dd2109b55 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/ui32_to_f64.c
f5755b53bfa3d4ada8ed3be7b2e264ca31c83e9b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_sqrt.c
0020d431a9fe3314ba42c1dafe946fbd2ef7e606 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/ui32_to_f32.c
f1663c2acfcb26909b23e18b18c43a4aecee1908 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/i64_to_extF80.c
bc52a98da5add09bb146c15a8cc1e524e1e36989 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/ui64_to_f128.c
73f1f3cdf7a70d4d02ddd5d73f8198482d373296 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/ui32_to_f128M.c
47e7b19a3c969e8c6acf899992a2b3dc02ee894f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shortShiftRight128.c
6772aca13808c91d5fbc62b23e65a9aba99df8ef - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_addF128M.c
84791d4f50e8187197aeca69dbef6a333d167fc1 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_to_f32.c
5e4ff4edf1d3a006c61ca3098f1919088d42dd66 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_isSignalingNaN.c
289aeaf52ea847d12eab9ab91e1b080ae5cc4774 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_mulAdd.c
4dbe7ada2eae098c62ec673be2cb2452390c0a78 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_to_f128.c
467dcd8f83fcddef3d3402ebcc2c08822c68621e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_compare128M.c
68c9d3e3654c5107bd58185d3632d6e8c4b04687 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_approxRecip32_1.c
6a29d35180197bb865f52b54695f07430e3e06db - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_mul.c
c32eb171afa353fe6d96c9fcc1b6bc9116ba3237 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_sub.c
1d30d31c5765c77e617b9969b778019b60c4b1bd - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_to_i64.c
3166b1b25c791f37186ac5ace33c6369720cd72d - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_to_f32.c
20b550200dc22a4995a52f7bb20f8177c851d08b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_le_quiet.c
8c11bd928370bc41568ae3c44ed648224268134b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_roundPackMToExtF80M.c
622a359dab67eedd5448775dc3204d4f48039034 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_to_i64.c
757e08593f768490c92840e212583a4ec63dbbf9 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_normRoundPackToF64.c
e6b71c319835a3d037818d3ca0d1468b2dd3c325 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_to_ui64.c
bbe0db256dda63763f1a09d9af66cfbfa51c69f6 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_le.c
3e4e1cde87c7d37013c4665489e22a5e653b9e75 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_to_i32_r_minMag.c
0db18e1a005858944af9123bb29580ebac102bac - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_to_i64_r_minMag.c
0f29c869a8f46f705f24531b2826deabe579032f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/i64_to_extF80M.c
809dcde66eb6eff4e7af6a71ab240cdae5c11097 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shiftRightJam128Extra.c
3155ae7f402b23659c4ff5e89bd77c5599ee23e0 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_roundPackToI32.c
513a918766d59060a56eb14f936404c5a807d54d - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_to_f64.c
b33f24777a60c2b658a6463c17c19f932c67cefe - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_add128.c
6eb4a2a36946f25f5528e564a0391b709127224b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_eq.c
e14e58254cc0fe0ce4710d073c7a4c41961df960 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_mulAdd.c
644f4fb69b6d67725a586cb47755d4472694dc54 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_sqrt.c
188a513a8b2102d97b435bddcaa70a13422fd36b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_to_ui32_r_minMag.c
64b0e4b0e7bb5d8073e937068421026aa213bb57 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_isSignalingNaN.c
fb78669ac8ebe25845bdac20fd3007ac6ed6e254 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_sqrt.c
49a30ac92f2823400a43a7b0789def54eac5d67e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_mul.c
39eaa261c0332f55f617941b8bf51f30dfa288bb - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/i64_to_f128.c
ea9e18329087b88e680a9b0e1dc3f73d78ffc97b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_normSubnormalF128SigM.c
20cc97dd02d91a85b8d58ab1373f550058a5a4ce - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_to_f32.c
f3c0c6bf5032a3f329e5637aa49336a98dc365f1 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_rem.c
d5160582645bf346bf920e38f896596319da591b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_eq.c
54fed28ecc0bb163f71b7d5f47c960063b16f0f0 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_to_i32.c
c9372c8b60f9e67962d30179a0595294d74953a2 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_mulAdd.c
60cccf04237a9a059b26075b3bc4742662905190 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_to_f64.c
6504b9481457cfd6e39a69e7066fe09ffbbdb258 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_div.c
acd11d468d7a20b0e4381a8b7168e186b7d49d4b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_le.c
60a64ea74aeaa87b706af4f0c880e551d68ee8f6 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_addMagsF32.c
6b7125daba8bb60ca3e2db6c38bf5cbc5df906ea - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_roundPackToUI32.c
3fef81240caee61991a4a7c3ffa8e6d6e2e8066b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_sub.c
5d1495da9f0d75aa3f5fa75b43c5edbc95dc1ae9 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/i64_to_f64.c
7bed7a39e5684ce23986346806ce19c0a2d198a4 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_to_i32.c
b4f539877d9b40f21099ed92d2e18a9f57f28566 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_eq.c
623ab3fb8b679ac1b86f7c366eb192d128358f16 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shiftRightJam128.c
a473fd92baf36ab51a725b665f964a7a082f4eb3 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_le_quiet.c
4cc27ddd980713ad95fd12a90c077df01999893f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_to_i32.c
5158c6ca5efcc7ee5067415f6df5988c4b3645ed - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shiftRightJam32.c
25ad3859febf3093e91de0392cb0d7c98d3e9dcd - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_to_ui32.c
a8cd508101d5d02ae58933c2b91b0638fe9ce308 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/ui32_to_extF80M.c
7a1740bacdd6fbf37b3e9ad6b304b772722041c2 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/i32_to_extF80M.c
a5d1d8aa31fb5646e96d1f889729bd9eb7867e9a - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_countLeadingZeros64.c
ea2befd81aa697654bc1baf2a7da10508ae8b9ce - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_roundToInt.c
6ee82c2c62f3442cc1c0b2e9ef6b0b85da32cf3c - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_lt.c
ff0afa5079cd15008d3d3386ac73d3b62a0c4d79 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_negXM.c
73622cf9aea053c968f1922c8a206030cab025a9 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/i32_to_f128.c
6c279773b785568a5567bfe33f5a6082265b9efb - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_eq.c
3c7d728ab8fa5d0e345c67d53f5335d672d8fd5a - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_to_i32.c
fd6492962962b16aeabef92ff9542da4aae05f26 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_roundPackToUI64.c
4cc44bf1f32b533112fceaf74f2116052c251f45 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_lt.c
28af646437af4de6033b2176542a5d805636323e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shiftRightJam64.c
6ba3f71a3a306c79f58d469163b33f810aa8faa8 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shiftNormSigF128M.c
ebd71c72d17dd55dc010988fcc223aeb9679ee6f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_mul.c
5bddd155904f96e1af61acc11b87973856d66810 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_sub.c
3088c598cdb456e47e280fd0bc369fb0d5e6d2f9 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_to_i64_r_minMag.c
de37f2fef538ee89236273ac956585b2d58a15ab - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_mul64ByShifted32To128.c
9cd0d76126fdd8add379caa20c766668256efb6e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_eq_signaling.c
a91c926882ae26c3a59dc8885fabc6e86ce9465e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shortShiftRightJamM.c
6e91b9e38753aa8aa2094b6b40b596796bd11b3d - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_subMagsExtF80.c
62cbafb0d4719707254e3021383d31fd007b3971 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_invalidExtF80M.c
e550bcef98e4bc5091eac085dd5972d58c2bab09 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_mul128To256M.c
61fb9da8313a688f608a43d8aa36ac9861c74c75 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_addMagsF128.c
920cf94c441178943a1442a168fb4649cfe755d2 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_normSubnormalF128Sig.c
019af317356453e7119ac20be4c98c0a1c83f8af - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_roundPackToI64.c
d0375fd187a2ec8138e6a29c04afb951176c31bb - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shiftRightJam64Extra.c
a56defbdfcb63c086c83b3754d2848c2d67b561c - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shiftRightJamM.c
57500b9bade8439c0c3f06cbb999f6ba13952ad9 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/i32_to_f64.c
6f034e453e9efaa8477ac48fed5ff48d6320f99a - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_isNaNF128M.c
260bca4ccf486c140c36950f988253e30be3f9e2 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_to_ui64_r_minMag.c
5547439bc882d6cb17257578b63ed5dea9e85ad3 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_to_i32_r_minMag.c
97a45958e5ea33d1fed598272e527b7f72a9d8ee - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shiftRightM.c
136777686e7e2c7b3decdc75d9cb9e0f802b4dec - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_to_ui32_r_minMag.c
7edbff34e15aeda6b14e5e01fa34a2e4ec230d88 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_countLeadingZeros8.c
b971ed0265436f05a8f8f5eb8653de23e49747f1 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/i64_to_f32.c
5adc627cc2a4ed39719943fac8c29517f3d39bbe - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_to_f32.c
440066ddfc6cb2460e07a86d2552d5aa6978ca47 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_compare96M.c
7c39994169fccf5700f2fe944d8b94d912a07723 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_roundToInt.c
5bd19e6fff94dd11976e8f78f6ef8b9af01d33d2 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_div.c
d724729fe9aff2647d82d44cf7c98ef024550f4c - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_to_ui32_r_minMag.c
7233f7a2c75705b0b4173168df45777f969cae96 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_eq_signaling.c
5cd984d2fe4bfa79945c464d200d7b17d205b475 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_normRoundPackMToExtF80M.c
0ac05f3c78dd89e1084687237ede90311fc758d6 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_normSubnormalF64Sig.c
1a5d352e9bacfa36ecd8ef231155053713acece0 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_mul.c
32ee0bb66ee86e9f4d4f49c23487905e3e09715e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_rem.c
60f8ae03f26507e95f988d859c2a779d957c4efa - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/ui32_to_extF80.c
9cdcb1720d52c0b09ac2ab14aab047bfe940304a - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_to_ui32_r_minMag.c
f79c163815f902511ac25f8f5a391149043a846b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_to_f64.c
02501e2df1729d1c331ab6288158859f5302a791 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_to_ui32.c
bb4b86c5d78b77f1babf89d73c262ab3e47b6832 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_to_f128.c
e9570bb5907e357489fdf310d629201fb63fe691 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_sub.c
add3de1ad7693fb4a2a5453483938b93b287e275 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_normRoundPackToF32.c
dd00b7472e373b2a72b05389fd8c595c9e688831 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_to_extF80.c
80f53f88a6f924eaf40e9f79955bdfff87f72d14 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_to_i64.c
0fa1c7015b7c39efbe07d739a03f2a83b85745b8 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_compareNonnormExtF80M.c
33dedf42e83eb53f8ce20395143a01a73b412457 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_sub256M.c
70a0a4dddf509479def6ff905d493e6a50c1bacd - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_sqrt.c
bf81966f25644611be0129d9ef8aaf0f5c6da21e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_to_ui32.c
35820af43505df9a372d4e74e3f0550a3af9a249 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_eq.c
7aeebb299243e2d857eef25300233d709662a1be - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_addMagsF64.c
c42aa8ca5eb2a847874b705199b3033ae8fc00ee - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_le.c
495735b890e1bebb53e4e2cef50ffda57a242662 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shortShiftRightJam64.c
83db5e18b844bed794c0f1690aa2aa28ed93e4dd - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_to_ui64.c
c8fa83b76113c38831b0a21b4b6359fe6976b133 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_lt_quiet.c
3d89aeb6e7880b1152564ff98fac17e80a4beab4 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_mulAdd.c
23a84b7f28ce5a2345b3d037ccc8f2707163d262 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_lt.c
06c8f4bcf358da5b2930df117ecc0f2324a59b3f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shortShiftRightExtendM.c
359da64e36a5f411cf383e3fd0f83a248a1dd066 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/ui64_to_f64.c
8fd3330c1a032cc7c4a7ad995996169ac7f0805d - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_to_ui64_r_minMag.c
58782db3382eb567580f7105c6c8d88dd1a6fc67 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_to_i64.c
f06279e2d0e5d4a308a35ce0eae73d18ff2b0ad1 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_to_ui64_r_minMag.c
e4be027468e7ee598e8835dfe5c58692978be102 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_addComplCarryM.c
6ab2cbbff35bbae58c14a90419c2dd153b667063 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_addM.c
9c753ee79b20998c7b9c420d50cd9ca84b18a3f4 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_le.c
2d988cd65efb881d8f5103b71c9f6b121121ef6d - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_to_i32.c
c5fd85ea4a5cf0a00edfc6cb66cf20b3e7100062 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_eq_signaling.c
c50d86d027171a9f2481e8f7c1cb4308f1cf1d3a - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_to_i64.c
1aff280581ce3e0a033ebdb2257a5095804f4a18 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_isSignalingNaN.c
c425d403c3b3dfaed940888bca06384b967e8e5e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_to_i64_r_minMag.c
12d0070692fad1189770f55c41aab025bee462a7 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_to_f128M.c
d688f7a888e0e7b33a166af94044edc80100754e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_le128.c
1843081e5eaa9f77ccd80c3cba04e650ceee756b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_mul128By32.c
63a8a8dcae334e46b7fbc7ebc687e8d6c011fb7a - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_addMagsExtF80.c
5728e535d2903cca9e9558dddf7a571e606a385e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_div.c
2679177fa989374186316764ed9a90c42e38edd7 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_le_quiet.c
e33d236ac36ab3726429718fa699498e908afb21 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_to_i64_r_minMag.c
0529a095355f150e35063942c7aec7276033842d - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_add.c
d586657c54173f413fa72807b84027e1beeb6234 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_approxRecipSqrt32_1.c
327934b641bc5a6a891fd19aab7b9f0363952a0c - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_to_extF80M.c
641b01960569783533397d0ed1cdbb00695a3578 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_subMagsF32.c
1e172d64c3dbd60e0e9ffcbcc7a0225702f04848 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_roundPackMToF128M.c
14119b8fcb0828e0621f0d1c0b3130721abcf3a8 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_mulAddF32.c
fc451ef01165565a1d593b0e2572eb8e37aa72a3 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/softfloat_state.c
0f3d7b35ae34828864a226e8b123484e88b8cd13 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_to_extF80.c
9a156cc904d7427a794de20f093bdff4a44cc12f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_sub1XM.c
3c754eb220ded3a7e9c82cb01c7ed8adc2144452 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_lt.c
4802d692dda23c6bdb15e682f8895eaa2e02a824 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_lt.c
e6ad1063b924e4b96a1801d49b960b3d8534342e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_rem.c
badda43bf474995d00db78fe6ae6b40268e9f90f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_to_f64.c
c841c237414b6697fc42f3a261082257cec7dbec - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_add.c
9e7235e0ad3872a7b6f005a0203e63508f11eaab - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128M_eq_signaling.c
d5a7b42551a9289e11b502dcd611101098d47502 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_to_f128M.c
625d048386528b1c63a19813ace77ab7484e1876 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_tryPropagateNaNF128M.c
0ef83486a7270a31dab5ced482dfaec14b9a5b4f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80_to_ui64.c
dda54df5d890a969ba663a54ceae83c6492d7866 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f128_le_quiet.c
faf4056d360eb6faeccac416f54caa2a1a8bae9a - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_to_i64.c
8a4a364a4b4f144bc47fb5e28144cfe82dd3b585 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_normSubnormalExtF80Sig.c
345b454a7bf01265db26b15ff80f98692e81fc5f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_div.c
684615f62d1f460768c6b9cf951bbe7d82b7aa4e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f64_to_extF80M.c
d3cdaf7ed2016c9f9764a514ec05b2dd6f86fc85 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shortShiftRightJam64Extra.c
fab91920cf859d0f22562a98eea05a843806e70e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_to_ui32_r_minMag.c
a05a89d48fe8216f0fa0babd342a60249c72cef2 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_eq_signaling.c
01cd4ad4fff8805cc5bf43533b1576d7e170925b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/extF80M_rem.c
890504face9da670bb9338c6587d893fd632819b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_shortShiftRightJam128.c
7db7c6e3e7ed45f7c7ed16ea6935cc7fdba73da3 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/s_mul64To128.c
a8129c9fa34f996b39adef2e0620dd63b5ab655e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/f32_roundToInt.c
784083a6783d1d5de48e4b5a95ccb43b8103bfff - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/s_propagateNaNF64UI.c
74a3e6c966c47167bebd7abdfb17797124ee9279 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/s_propagateNaNF32UI.c
f58e104619733d72884d1de3ce89eedacb671595 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/specialize.h
d8fc85a2746e3c31e70de675027af01735ba105f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/s_extF80UIToCommonNaN.c
52bc24f91ee7846596274fb2b29654539fd3fa00 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/s_commonNaNToF128M.c
2c9f36c79b5d80fe13893b8c9b9f9c94273c1c95 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/s_f32UIToCommonNaN.c
52fee0fd73c94d2e2f5a21a55f082e1963b1569b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/s_f128MToCommonNaN.c
8c5a81c2b54db7d09ea4a08a43171c7f9ed3cbe7 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/s_commonNaNToExtF80UI.c
b6b8b672735a45d7c495bf8af1fa94d1c8e6556c - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/s_commonNaNToF128UI.c
7c65ad2301cc6e79aa3392bdb9010a7ce81b0c38 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/s_f64UIToCommonNaN.c
868cee0046c6b1426f45136804fd662b030f263e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/f128M_isSignalingNaN.c
67e0a5407af29f70e8a1cd10563b7aaec9ccbcdb - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/s_propagateNaNExtF80UI.c
94e7fa32804e73cff91d5bfa140aebbbb55fe6cb - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/s_propagateNaNExtF80M.c
4a66a4eaba41707a706d22a724ff5853260d070c - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/extF80M_isSignalingNaN.c
7e3b18d1139373153529a43d88c469da845d393b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/s_commonNaNToExtF80M.c
70de120b27bf3bf6917bf2a9536aad6fe8536358 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/s_commonNaNToF64UI.c
7d5189099e205be2e0420013770668fb8b96e133 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/s_f128UIToCommonNaN.c
35b37030a4086b22b7974082589b33ca07ccc8bb - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/s_commonNaNToF32UI.c
b0822433062f48471e106e268f79f079d1a1cd55 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/s_propagateNaNF128M.c
7dc9295fddc66cd74761fa03a90c65985b964c08 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/softfloat_raiseFlags.c
302b57e7a9ad056c7936806892309cb4de6ffc96 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/s_propagateNaNF128UI.c
1c390c99fc7405c9a44b4117383cce7de291c13e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086-SSE/s_extF80MToCommonNaN.c
3b6c666fa3fd1fcdb96504690f34db6740d85b2f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/include/softfloat_types.h
1afdc66c33767a868d162893776bf6d3ba9f1247 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/include/primitiveTypes.h
5ab0e0aaf3ae2f7637cf1c42709cdad267a20850 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/include/softfloat.h
0d0858bee5e0636c53a6f5b4a484f08b979495a9 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/include/primitives.h
8450fc5ca89f94b128b1d1d4608903ffd0de498b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/include/internals.h
93bd291166335a88ca0721d5beaebd9599a2475e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/s_propagateNaNF64UI.c
5e2ab65ab8c5b830b547afdfac8b72c1a7b193f5 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/s_propagateNaNF32UI.c
ade8c323e356c3e70af2424ed9e2ca0ccabc68c5 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/specialize.h
d8fc85a2746e3c31e70de675027af01735ba105f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/s_extF80UIToCommonNaN.c
52bc24f91ee7846596274fb2b29654539fd3fa00 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/s_commonNaNToF128M.c
2c9f36c79b5d80fe13893b8c9b9f9c94273c1c95 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/s_f32UIToCommonNaN.c
52fee0fd73c94d2e2f5a21a55f082e1963b1569b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/s_f128MToCommonNaN.c
8c5a81c2b54db7d09ea4a08a43171c7f9ed3cbe7 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/s_commonNaNToExtF80UI.c
b6b8b672735a45d7c495bf8af1fa94d1c8e6556c - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/s_commonNaNToF128UI.c
7c65ad2301cc6e79aa3392bdb9010a7ce81b0c38 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/s_f64UIToCommonNaN.c
868cee0046c6b1426f45136804fd662b030f263e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/f128M_isSignalingNaN.c
67e0a5407af29f70e8a1cd10563b7aaec9ccbcdb - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/s_propagateNaNExtF80UI.c
94e7fa32804e73cff91d5bfa140aebbbb55fe6cb - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/s_propagateNaNExtF80M.c
4a66a4eaba41707a706d22a724ff5853260d070c - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/extF80M_isSignalingNaN.c
7e3b18d1139373153529a43d88c469da845d393b - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/s_commonNaNToExtF80M.c
70de120b27bf3bf6917bf2a9536aad6fe8536358 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/s_commonNaNToF64UI.c
7d5189099e205be2e0420013770668fb8b96e133 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/s_f128UIToCommonNaN.c
35b37030a4086b22b7974082589b33ca07ccc8bb - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/s_commonNaNToF32UI.c
3b12a5a00c5ee315f9665165cc0160e7e4e7b946 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/s_propagateNaNF128M.c
7dc9295fddc66cd74761fa03a90c65985b964c08 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/softfloat_raiseFlags.c
cc1a5d99c9f6833e79108373c21162c7fb65a742 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/s_propagateNaNF128UI.c
1c390c99fc7405c9a44b4117383cce7de291c13e - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/8086/s_extF80MToCommonNaN.c
75e9aa350d3aae45b151a9bbe2f6e70ccad11c7f - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/doc/SoftFloat.html
90d2bc9a9afc3396f0a2271c1d79a76287c2516a - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/doc/SoftFloat-history.html
9170d3167dcd72c685ebc6ca6250eee2eefd0c45 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/doc/SoftFloat-source.html
cbaa68e47415bdb2b68ad13c2037e03cd231fd60 - optee/optee_os/lib/libutils/isoc/arch/arm/softfloat/arm32_include/platform.h
5fbd70f4fe7a023e3b9c3c6997b0cc042bec58d8 - optee/optee_os/lib/libutils/isoc/include/inttypes.h
b61508c5b2e6fa2f5e16faf66b4ea52d273b2767 - optee/optee_os/lib/libutils/isoc/include/assert.h
b704c2144f4058cc83eff91c732a965487af7f2f - optee/optee_os/lib/libutils/isoc/include/signal.h
2f1e8ef53989a85982945a254710d877d86ddab0 - optee/optee_os/lib/libutils/isoc/include/malloc.h
7146a287e1507a73b42aa6ae46d72881a5b318a8 - optee/optee_os/lib/libutils/isoc/include/stdlib.h
44f78c63d935ad93ce68039331f214dcc699f6e1 - optee/optee_os/lib/libutils/isoc/include/stdint.h
1b5da4e5962171c39a2b4762a169e12e50dd6641 - optee/optee_os/lib/libutils/isoc/include/stdio.h
eb700f736fea47a51c03069d099ff492d566f45b - optee/optee_os/lib/libutils/isoc/include/time.h
e83da5f07c33bc84bb291affe6480214bb4e6f9a - optee/optee_os/lib/libutils/isoc/include/ctype.h
e7fdba9acf2bc6ddc6d25cd852eeff72855d143d - optee/optee_os/lib/libutils/isoc/include/limits.h
9edc066dbedabb03c6479c2dfc962125c09207b5 - optee/optee_os/lib/libutils/isoc/include/memory.h
d107150611ad4db054a4c134a03cb4072e5b978f - optee/optee_os/lib/libutils/isoc/include/strings.h
f1ba2ffbb8b80c3d2c8baf5ad09f2d1883ccc95e - optee/optee_os/lib/libutils/isoc/include/wchar.h
15ec9c6af06bd04877ce230bac8bfa3ce26a23e9 - optee/optee_os/lib/libutils/isoc/include/unistd.h
c6501a452dfc56db99d454ab6785417f3fd2049c - optee/optee_os/lib/libutils/isoc/include/setjmp.h
8629e94b3bc7a9b628d559492f6859405e065233 - optee/optee_os/lib/libutils/isoc/include/string.h
e646420d5133d287b223a251d711caef5077d8aa - optee/optee_os/lib/libutils/isoc/include/sys/cdefs.h
04b7e694a49520ea266a7acc30e79a4d5d015854 - optee/optee_os/lib/libutils/isoc/include/sys/fcntl.h
ea09b9213223627399f059ff48bc083ac9652a96 - optee/optee_os/lib/libutils/isoc/include/sys/queue.h
f39fd14f91c4f1b1a6c2636a7abfaa0cad378a37 - optee/optee_os/lib/libutils/isoc/include/sys/types.h
5a9624425bf1040b1f7f44f5391b07f0f54eb969 - optee/optee_os/lib/libutils/isoc/newlib/strstr.c
5f94025cb7d772e0b69eb04008405feb9ef86a0c - optee/optee_os/lib/libutils/isoc/newlib/strlen.c
5c1c0c4053502cfc23acb11a61aef64e6a9f7383 - optee/optee_os/lib/libutils/isoc/newlib/strcpy.c
afd073d96ce316d15f065f34576779bf31b11b4a - optee/optee_os/lib/libutils/isoc/newlib/strtok_r.c
ffc219c3a21638f7e62d3b658ee6c4a3dad8e628 - optee/optee_os/lib/libutils/isoc/newlib/strncmp.c
108514868e87a312a98be4104fdfa5f0b689a956 - optee/optee_os/lib/libutils/isoc/newlib/memcmp.c
5604c3647615806cbfd5068d684f1127272226c0 - optee/optee_os/lib/libutils/isoc/newlib/str-two-way.h
ca1b181d9d51ccd041f7a54adb83afacde6591b7 - optee/optee_os/lib/libutils/isoc/newlib/bcmp.c
b1d845daf20cc5443488f37fac3559c721bcfb45 - optee/optee_os/lib/libutils/isoc/newlib/memcpy.c
4536b43b4035e668869db96685c3e398be901a40 - optee/optee_os/lib/libutils/isoc/newlib/strtoul.c
0800e9eb716a2e65ba7a95b2fbd873749abb41ec - optee/optee_os/lib/libutils/isoc/newlib/strcmp.c
6054fbc2e1ca96c1f5291cab671fc90d7ce00fa5 - optee/optee_os/lib/libutils/isoc/newlib/memchr.c
f4be3b2ac744128b112751c273f2850ec6277a45 - optee/optee_os/lib/libutils/isoc/newlib/abs.c
ad3617f14072481d06acd4c17903f9eaf3301223 - optee/optee_os/lib/libutils/isoc/newlib/memmove.c
811f31f56bd454989b15ad39bd9201411a4971f2 - optee/optee_os/lib/libutils/isoc/newlib/memset.c
e0298efe1346c7206253a9f0f174acc71479f134 - optee/optee_os/lib/libutils/isoc/newlib/strchr.c
3eaef3643d7bc2740a34226b2b66dca0fd662558 - optee/optee_os/lib/libutils/isoc/newlib/strrchr.c
2424e0252f73a9e6fea420e9f7f2967538d56444 - optee/optee_os/lib/libutils/isoc/newlib/_ansi.h
c62c5a7633896186fdfc21ab5992c569d0b93d28 - optee/optee_os/lib/libutils/isoc/newlib/strnlen.c
f78df3e9bb90074ab9ac143f5e62bed8c2557796 - optee/optee_os/lib/libutils/isoc/newlib/strncpy.c
89ebb1873af1f851bc8fc67e813f81eb6a676a2c - optee/optee_os/lib/libutils/ext/consttime_memcmp.c
ce50432f4d5515d5ce9fb398b5098b9c0ec12c38 - optee/optee_os/lib/libutils/ext/pthread_stubs.c
6bff861d7ee6d2d199bf849da8673bc2f7644a81 - optee/optee_os/lib/libutils/ext/mempool.c
47c2201804ad35107c694730f37c017ee288ee01 - optee/optee_os/lib/libutils/ext/fault_mitigation.c
eeaf7cbef43d983ce60db9ac8731767dc6bbf22b - optee/optee_os/lib/libutils/ext/nex_strdup.c
53a0650d0e1a37aefbb511bb3f422ca162180c36 - optee/optee_os/lib/libutils/ext/strlcpy.c
ffad6974fa755ea998a6801173ebf69647d8e204 - optee/optee_os/lib/libutils/ext/memzero_explicit.c
20e3e9705f80898b933d3708b6c1b4133ffa949b - optee/optee_os/lib/libutils/ext/trace.c
8d6b22214c57ad89d47fbf50c9d2a28ec11c2951 - optee/optee_os/lib/libutils/ext/snprintk.c
7a501727fe2d0e89ac822ec9ecfc06ac9387eb69 - optee/optee_os/lib/libutils/ext/strlcat.c
ece984c44b615c403bcea03f8d97fec4569856f1 - optee/optee_os/lib/libutils/ext/arch/riscv/atomic_rv.S
9744e9d7926714ea8ced25857ff8db9a0b12cff5 - optee/optee_os/lib/libutils/ext/arch/riscv/mcount_rv.S
fcd9b20bfb493ed1ef33987681cef3c072605105 - optee/optee_os/lib/libutils/ext/arch/arm/mcount_a32.S
3c9419abbdb07dffd661757f2b8acbc0c49e971b - optee/optee_os/lib/libutils/ext/arch/arm/memtag.c
7249fff01b1ca0cec36cca67bec4a1395ee4224f - optee/optee_os/lib/libutils/ext/arch/arm/atomic_a32.S
527c3d07f4d854cb770425c1d1bb43d87d25a622 - optee/optee_os/lib/libutils/ext/arch/arm/aeabi_unwind.c
c76559d831152142d5a0612b9a2ba8988ead0414 - optee/optee_os/lib/libutils/ext/arch/arm/auxval.c
adf6c7b011707e03c48439a6a7de0b07e91d5e59 - optee/optee_os/lib/libutils/ext/arch/arm/mcount_a64.S
ff0eea4f25438d8836034710afb20c6ff62d9805 - optee/optee_os/lib/libutils/ext/arch/arm/atomic_a64.S
e0f599207b28b33bf06b5e1c02b650d0e1a2d7c5 - optee/optee_os/lib/libutils/ext/include/trace_levels.h
0e9c096815b105d29d59a8cfadaaeb5e7a3b7998 - optee/optee_os/lib/libutils/ext/include/arm64_bti.S
5d1943eba944ecd7ffb277b76460ab47a379f73f - optee/optee_os/lib/libutils/ext/include/memtag.h
84039f2a7ab7966f95cf82f76639cb60c3d8f17c - optee/optee_os/lib/libutils/ext/include/util.h
2896ec82cb868e5f5d1b8338aba45f9490c96419 - optee/optee_os/lib/libutils/ext/include/asm.S
8aef0ea1cd59799ea3f9b89eb12d8ad5f9482b68 - optee/optee_os/lib/libutils/ext/include/speculation_barrier.h
93a77e57894a180ceb9cbf485c96b316b0223286 - optee/optee_os/lib/libutils/ext/include/string_ext.h
af2b6927c92cd80ffae87a12bf87645f43748dd8 - optee/optee_os/lib/libutils/ext/include/atomic.h
70ac170a6c79b30435a4b8fef9cf7e98ea61e9a9 - optee/optee_os/lib/libutils/ext/include/printk.h
6d52c01d26b5f87893d70ca173d1fd712d53f4a5 - optee/optee_os/lib/libutils/ext/include/confine_array_index.h
1439d0e682d301147076a8f0ef733acb0d21d451 - optee/optee_os/lib/libutils/ext/include/riscv.S
caef86fc6055f0c19ce5e5429996c4a422645a3b - optee/optee_os/lib/libutils/ext/include/trace.h
b049afe67cfa21b37d9733a47ac95b142b1bbf55 - optee/optee_os/lib/libutils/ext/include/fault_mitigation.h
d0fd7d83680885f9a71f56435b92b078f79e14df - optee/optee_os/lib/libutils/ext/include/mempool.h
296cc431c36cb1c06ef0965e569bb8f0028aaa86 - optee/optee_os/lib/libutils/ext/include/bitstring.h
ce8e8d219a06d536dfb044bd004db98fd595d438 - optee/optee_os/lib/libutils/ext/include/stdlib_ext.h
0c4e420d80821bc2e9d1c85cb5488cdba9b2dfb0 - optee/optee_os/lib/libutils/ext/include/config.h
cb245d42df602e376891d86e4a5bc7e4adf563ed - optee/optee_os/lib/libutils/ext/include/compiler.h
603efb52be462838f3f8f8f5ddb20258ac30f353 - optee/optee_os/lib/libutils/ext/include/types_ext.h
cb974d6f302fc21a6380a7a8d4e86e824279e6f5 - optee/optee_os/lib/libutils/ext/ftrace/ftrace.c
d252604ab38468dc215d8fff7e20420e53adb60d - optee/optee_os/lib/libutils/ext/ftrace/ftrace.h
76a908634bfe89773fd70c57fd77d712c4bc89ee - optee/optee_os/scripts/sign_encrypt.py
57eab194acd3e07adfaba6438695da8c79d0d289 - optee/optee_os/scripts/ts_bin_to_c.py
570bf1d2a225e0124496bc57c287ff0991fd023a - optee/optee_os/scripts/gen_stmm_hex.py
ab4324da2d6fb92edbcaa95bc23911ed63e4514d - optee/optee_os/scripts/arm32_sysreg.py
08b1957d02a5f8fb853138fa4b3f2b8b04f8d847 - optee/optee_os/scripts/update_changelog.py
d302da149f2f0d0b11b9c365bf3add51a131b8a9 - optee/optee_os/scripts/gen_ldelf_hex.py
edc01ccf3e16f1a4bdb1908f57a4722d3bfa203a - optee/optee_os/scripts/checkpatch.sh
e13049cc7ecc4774a0b40b42d6a72617f540db8d - optee/optee_os/scripts/bin_to_c.py
bd6f1fe3cc1334b262bfbcf3d1b4b2f98bda0d3d - optee/optee_os/scripts/checkpatch_inc.sh
ffaf1fbbaa6d01cecaeae7d8ce75f8315240228d - optee/optee_os/scripts/pem_to_pub_c.py
31f300bb6c5a381759d5e2a3b54e42039be66dd5 - optee/optee_os/scripts/sign_helper_kms.py
c92fcf555467abe77b88cea98e805eaa6eca5462 - optee/optee_os/scripts/gen_ld_sects.py
b1241b7d0c39f88fb4382637396901002f682b69 - optee/optee_os/scripts/gen_tee_bin.py
6d38439ab83fa8f0869ae12e569bbd89074aea8b - optee/optee_os/scripts/symbolize.py
24ab5b3587dac3d8b99136338a79a57b38027da9 - optee/optee_os/scripts/mem_usage.py
1119399c06c6d97111c710e321f7317d2d67df3a - optee/optee_os/scripts/ftrace_format.py
44102438f54e075418710993095e3d5b5f0cec54 - optee/optee_os/scripts/gen_compile_commands.py
f8bce245ce0b6610d39e02928e25307a5b6cc818 - optee/optee_os/scripts/print_tee_hash.py
718761702d374076e980d8684a032e9543d4e0e4 - optee/optee_os/scripts/sign_rproc_fw.py
e6692bdad99dbf466f146fe7169981ae542eb6cd - optee/optee_os/scripts/get_maintainer.py
d28afa9fcae64f65d207dc150f051b7c609bbe32 - optee/optee_os/scripts/derive_rpmb_key.py
ff71ab8e19870db30e4a8fba666168c645f37126 - optee/optee_os/scripts/tee_bin_parser.py
f38c4636b6798cab2823555649a59b72061b756b - optee/optee_os/ldelf/ldelf.ld.S
d7ed8b2b8bca2a9b7b2b50e4c5ef3533b96cbe02 - optee/optee_os/ldelf/ta_elf.h
db3db1aeff618f5696eb16e7076b63464784267e - optee/optee_os/ldelf/syscalls_asm.S
ecc193b3d2a051728bc5d4e5841c8bdc021b6d35 - optee/optee_os/ldelf/sys.c
a270591f1efb8037df1d1369287b15f5f2964e0c - optee/optee_os/ldelf/start_a32.S
c5d1a1d261c8bada5f949335bffe29a029d03e05 - optee/optee_os/ldelf/syscalls_a32.S
d875d1a5979daa09b5b535d0a3f040c86a60f078 - optee/optee_os/ldelf/start_rv64.S
139e3f4826e35954af3c3bfe5112f11c1bd0db62 - optee/optee_os/ldelf/syscalls_rv.S
16e361c79bd359473a90bde00b493ca4182cc975 - optee/optee_os/ldelf/ftrace.c
87d8438d725c689049dabad1a58459a5efaaef0a - optee/optee_os/ldelf/dl.c
cb079ab7bac5d488cf5375c1b028130bcb2c7997 - optee/optee_os/ldelf/sys.h
29a349fad517b13af907e7705113c3831dccd9e9 - optee/optee_os/ldelf/syscalls_a64.S
af3868e37b5f97fafb0a1843478916e687050325 - optee/optee_os/ldelf/ftrace.h
f133be54ea11df978fa33a5afe3a2d8ed8c8f035 - optee/optee_os/ldelf/pauth.h
0a9f8943d795fd8edd10c5cc7c83baab9970b012 - optee/optee_os/ldelf/ta_elf_rel.c
9201638e87d7051478eaabddd7ca1d9054f35f5f - optee/optee_os/ldelf/tlsdesc_rel_a64.S
4b036af7eee80c9d1402b0b1dcd09cab729a7a9b - optee/optee_os/ldelf/pauth.c
d733071f9aa144e7310fba8dee83b811398327e8 - optee/optee_os/ldelf/ta_elf.c
13ded24e6da6026069baf1c4dd3159b6410f5308 - optee/optee_os/ldelf/start_a64.S
611d7981c55b4c62f5b13677c04a314e1a2f3218 - optee/optee_os/ldelf/dl.h
2450caf3ccde56f97078cfabd0a6378472ae1a23 - optee/optee_os/ldelf/main.c
e753e305779ac38002c5db612439fd95d3e9a20d - optee/optee_os/ldelf/include/ldelf_syscalls.h
9d6a14f727a55f4691af8e78834e23c243a1be39 - optee/optee_os/ldelf/include/ldelf.h
1c8f13cf72490970da6d19a7a3d3c06f18770f07 - optee/optee_os/core/lib/libfdt/fdt_wip.c
78de4be67ce92f5b90ff1ab89c2ba46a1a34da7d - optee/optee_os/core/lib/libfdt/fdt_ro.c
966e9a4b174cc33c3ba6126614b919ca0bfd09e4 - optee/optee_os/core/lib/libfdt/fdt_overlay.c
ed2772a8c2274cf02551a2a21cfbc33a7d81c2dd - optee/optee_os/core/lib/libfdt/fdt_rw.c
a6759c569917866b44961c88629ae4f3f07ea686 - optee/optee_os/core/lib/libfdt/README.license
0da7a6ee0118d32ca78e772cbf5a81f0cd62af9a - optee/optee_os/core/lib/libfdt/fdt.c
e01b7a0052b837a4650f2c9ac75ad38c40edc583 - optee/optee_os/core/lib/libfdt/fdt_empty_tree.c
e5657b776e8466d0d7c9578591d9c2ef45ef2799 - optee/optee_os/core/lib/libfdt/fdt_strerror.c
fd3af5baadbf42cca01d1a438cc826ae85a21f97 - optee/optee_os/core/lib/libfdt/fdt_sw.c
5ac5dba57124ad85911a67c10cf941f08ae861bd - optee/optee_os/core/lib/libfdt/libfdt_internal.h
55fc5d2ffcba07e29948822d0b12e4bf5546b8b8 - optee/optee_os/core/lib/libfdt/fdt_addresses.c
265155048eb725a03c49a45a27f322ca6f3dfe6b - optee/optee_os/core/lib/libfdt/include/fdt.h
c90d25bb7b217171ad9437ee0bc8d4e0c5c7f4d3 - optee/optee_os/core/lib/libfdt/include/libfdt_env.h
7cf2619336867b335fe8f3c919607242477ccfa0 - optee/optee_os/core/lib/libfdt/include/libfdt.h
cc088246b745446e2d222bd1c5219334f1c8a430 - optee/optee_os/core/lib/libtomcrypt/mpi_desc.c
ef50fbda210143489722c5c073b049220aee69ce - optee/optee_os/core/lib/libtomcrypt/cbc.c
bf7cfd733029fd500704f55382b02cd8fba1b84e - optee/optee_os/core/lib/libtomcrypt/hash.c
5a1e99eeb7282f69b7e7cbd68a0f514644c4d2eb - optee/optee_os/core/lib/libtomcrypt/x25519.c
f38de7925c7043b9c008b228fe88f291f90fe671 - optee/optee_os/core/lib/libtomcrypt/sha3_accel.c
422469b123ee31fdd517259a2ff73fe03da28d95 - optee/optee_os/core/lib/libtomcrypt/ed25519.c
181064609b067d38f551f69dcacc2d7a6ee4c249 - optee/optee_os/core/lib/libtomcrypt/sm2-dsa.c
bc5761862d3f2bdc223bbd894e1edffc89db0614 - optee/optee_os/core/lib/libtomcrypt/aes.c
627ba519b1c58c51f6ba86d4c3efcf948e497db9 - optee/optee_os/core/lib/libtomcrypt/sm2-kep.c
36ca35680a4370d4f993961371d80d2e7b777458 - optee/optee_os/core/lib/libtomcrypt/acipher_helpers.h
466eb4dd083c77261b455c56dfb3036243b0992e - optee/optee_os/core/lib/libtomcrypt/sha1_accel.c
191319cf67c91dac0437c501694f9973ada49045 - optee/optee_os/core/lib/libtomcrypt/xts.c
5d3683701305265a319ea23c3053100dc9ae0bfa - optee/optee_os/core/lib/libtomcrypt/gcm.c
f11a282fb43eece165553ab1545b7035b44ebe24 - optee/optee_os/core/lib/libtomcrypt/ecc.c
a2ecdde9b88869f00656b532502bf2e1c9c778bf - optee/optee_os/core/lib/libtomcrypt/shake.c
2fc6c08d346f75feec7f1c1633ccf1ddc1ac7736 - optee/optee_os/core/lib/libtomcrypt/hmac.c
b1d9c45ed1f78bc67c1bf788fd2478f835b86f80 - optee/optee_os/core/lib/libtomcrypt/aes_accel.c
9197499a951acd6f4952270e28672de2d04696ca - optee/optee_os/core/lib/libtomcrypt/ctr.c
f2db1584836afadf8108bc4068ada599727f3a85 - optee/optee_os/core/lib/libtomcrypt/sm2-pke.c
2680c6505dd66000230072a984d24a8085db27d0 - optee/optee_os/core/lib/libtomcrypt/dsa.c
7f870de527ffa71429d8016fd5b6800110e56460 - optee/optee_os/core/lib/libtomcrypt/rsa.c
ac9a9648fe065d77e8a07c0f153c16784b90b675 - optee/optee_os/core/lib/libtomcrypt/cmac.c
bd085d21425692efa0737d43fe957bf83da73e8c - optee/optee_os/core/lib/libtomcrypt/des2_key.h
a53dd03d8ef444dc1ee628dd000ca066984be89d - optee/optee_os/core/lib/libtomcrypt/sha256_accel.c
db10215efa57b04d6d0c2259256832c69da9d405 - optee/optee_os/core/lib/libtomcrypt/tomcrypt.c
e6002d6bda94d5566d0598b73957a79863fc5869 - optee/optee_os/core/lib/libtomcrypt/dh.c
99aa558ed75d6462b266bdab24faa189c03b4563 - optee/optee_os/core/lib/libtomcrypt/ccm.c
a001afe7f955e43839c5e0d73be3db5db77d94d3 - optee/optee_os/core/lib/libtomcrypt/ecb.c
72b382fc200ec2a39395f48c821d263bb827cd3c - optee/optee_os/core/lib/libtomcrypt/sha512_accel.c
999e42770e9ee014be2004a0f9ce41d08a2002ac - optee/optee_os/core/lib/libtomcrypt/include/tomcrypt_mp.h
5c28c3c8b5fdb83a197148d44816e8b005affa3e - optee/optee_os/core/lib/libtomcrypt/include/tomcrypt_init.h
ed9c10d0285b377accb1e2494f6286e154bed777 - optee/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_macros.h
d86162251e3b48c30f090b3d893a17106c1b59d3 - optee/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_mac.h
4e5b33b2454acbfaa9b2ab42a0a03fcabc598d30 - optee/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt.h
941fea915f92af82307b36234f5ce179c0fd3025 - optee/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_argchk.h
c4d8079f35569279e5f30da5d4666d1a145c29e1 - optee/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_pkcs.h
47a31bfd38f96720df80f298c98d96cb435b3ad3 - optee/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_cfg.h
6e3431e86381584751e3fe17d1f783454fad2f52 - optee/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_misc.h
23b6ced88dc0c3124f432f3017aba8b385df4866 - optee/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_hash.h
44976f48c4f37ff61e8b03ca839b1a65f273117f - optee/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_pk.h
b024a3e54d8b78ef88bc56740995d089836bfc81 - optee/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_cipher.h
2e713c6c463faaebb4e01472732e51d74aa5b185 - optee/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_arm_neon.h
6603ac9ecc182ac6407d2a5bdd90f3baa4552f58 - optee/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_private.h
4cdf5186a0f57233bdeac68a7db9e2e488806fd7 - optee/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_custom.h
49b2782b96dbf7d798398be0b39ba922e5a21bf1 - optee/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_math.h
660c8803aeecea2223f2075be243bfdf24187599 - optee/optee_os/core/lib/libtomcrypt/src/headers/tomcrypt_prng.h
9bccb9e3b0ce1b901cd5e52d30d7b54b1e8c5674 - optee/optee_os/core/lib/libtomcrypt/src/mac/hmac/hmac_file.c
c2f957e54093361abef389519c1a79136dfb5124 - optee/optee_os/core/lib/libtomcrypt/src/mac/hmac/hmac_init.c
b27bb0657c7accb0df147f4bf193b12933a9d970 - optee/optee_os/core/lib/libtomcrypt/src/mac/hmac/hmac_done.c
224913f37550084d0b6a11c46a674e2560b9f6de - optee/optee_os/core/lib/libtomcrypt/src/mac/hmac/hmac_memory_multi.c
c987048ee653d7b9e528924cd4ea2041d81ffbd3 - optee/optee_os/core/lib/libtomcrypt/src/mac/hmac/hmac_memory.c
278c6feea087176001778da10154df788711b864 - optee/optee_os/core/lib/libtomcrypt/src/mac/hmac/hmac_test.c
149949542f34fe4521472a0d3740f4ac64b23050 - optee/optee_os/core/lib/libtomcrypt/src/mac/hmac/hmac_process.c
8151c66fd55cb82b2e4252f211a7d14de20599e1 - optee/optee_os/core/lib/libtomcrypt/src/mac/xcbc/xcbc_test.c
f86f622ff3761a9086d7779d77559eddf2774ece - optee/optee_os/core/lib/libtomcrypt/src/mac/xcbc/xcbc_memory.c
b8c88d3152a2d9384baf86c1ec61ebb26f13660f - optee/optee_os/core/lib/libtomcrypt/src/mac/xcbc/xcbc_done.c
ac3fb83b5d619e067782a032452e215cc2ccc3b4 - optee/optee_os/core/lib/libtomcrypt/src/mac/xcbc/xcbc_memory_multi.c
114da72cefd715009a772baebd50f69a3237da72 - optee/optee_os/core/lib/libtomcrypt/src/mac/xcbc/xcbc_init.c
bbf18f6d75557cfdbb5aec0cb00e3df605536d68 - optee/optee_os/core/lib/libtomcrypt/src/mac/xcbc/xcbc_file.c
a3529bef5d5ca05f194021b998a1d7ba5fdec700 - optee/optee_os/core/lib/libtomcrypt/src/mac/xcbc/xcbc_process.c
6f1f256d9e8a6ee6660406b43866a0dd79fbd255 - optee/optee_os/core/lib/libtomcrypt/src/mac/poly1305/poly1305_memory_multi.c
86f1332253c798f3fdfa01762ed1c64949a69794 - optee/optee_os/core/lib/libtomcrypt/src/mac/poly1305/poly1305_test.c
31e9ff14eef67741c7e79e9b1a4e478222f794b9 - optee/optee_os/core/lib/libtomcrypt/src/mac/poly1305/poly1305_file.c
f9cbe3b6dd912225eefc54f7dee30754e366cf62 - optee/optee_os/core/lib/libtomcrypt/src/mac/poly1305/poly1305.c
5300bb1eab429d1a602a848c46b9dbed916d1860 - optee/optee_os/core/lib/libtomcrypt/src/mac/poly1305/poly1305_memory.c
5e2fa3a8a8b8c0d38d74aa0bab4d4cc206166453 - optee/optee_os/core/lib/libtomcrypt/src/mac/omac/omac_memory.c
a081274e2f9dcc2ed96ec2a4db00ededed0ec9e8 - optee/optee_os/core/lib/libtomcrypt/src/mac/omac/omac_test.c
7314b670b2c1a382ba1017ccd3b3806fe451aad6 - optee/optee_os/core/lib/libtomcrypt/src/mac/omac/omac_memory_multi.c
2588957db97d4b727a20206702de592edae7afb9 - optee/optee_os/core/lib/libtomcrypt/src/mac/omac/omac_init.c
3657dea6098b394ec68f7c996eb8c2525646dafb - optee/optee_os/core/lib/libtomcrypt/src/mac/omac/omac_done.c
daee17f76d3539a02d8567dc943b2b3217098786 - optee/optee_os/core/lib/libtomcrypt/src/mac/omac/omac_file.c
5a792633cf4c62bb31894bcce5bb07e78763b88e - optee/optee_os/core/lib/libtomcrypt/src/mac/omac/omac_process.c
bfdb58bcc629f18e9ee0daf89aaccb205454e950 - optee/optee_os/core/lib/libtomcrypt/src/mac/pelican/pelican_memory.c
40dc7c58ad7c36c78900489dd9043971310b0824 - optee/optee_os/core/lib/libtomcrypt/src/mac/pelican/pelican_test.c
23f68588e1e7259db12eff911680272b1742519d - optee/optee_os/core/lib/libtomcrypt/src/mac/pelican/pelican.c
9b028196ee6d1b9299d41bc2c6d66cacd1011ed3 - optee/optee_os/core/lib/libtomcrypt/src/mac/f9/f9_memory.c
5c61eca352761007c4111cf83cabf66f712cb67c - optee/optee_os/core/lib/libtomcrypt/src/mac/f9/f9_process.c
78be422e4801b343c32f4a4574075488109af2e0 - optee/optee_os/core/lib/libtomcrypt/src/mac/f9/f9_memory_multi.c
de921bd15503ba513e2979be7113493b8c679ac9 - optee/optee_os/core/lib/libtomcrypt/src/mac/f9/f9_init.c
7ec5d863f61666d818632fd057c4fe9bc1a879f0 - optee/optee_os/core/lib/libtomcrypt/src/mac/f9/f9_done.c
8fa264dc57c925de0f8f36ad8848c8b278694d5a - optee/optee_os/core/lib/libtomcrypt/src/mac/f9/f9_test.c
683da90e66dec7dfc447bac38e35dbee802d3b57 - optee/optee_os/core/lib/libtomcrypt/src/mac/f9/f9_file.c
196fd89dd21f7f943fca9702ed9616a27edc7221 - optee/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2bmac_memory_multi.c
e853e7da65047812f5c09f5ed42bc85f5b2256db - optee/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2smac_file.c
208bbe5ced04c13eb0e1d3b24e76f5c81345cd04 - optee/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2smac_memory_multi.c
93f44519ebb2341e9ca27ec077a77a455641dba9 - optee/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2bmac_memory.c
9bf71a86a4483d4e404521f696f591017b261b9e - optee/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2bmac_test.c
361ba0aee5e365c0c0cb186cb4aefdac17289943 - optee/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2bmac.c
e29b12ee69c044ee575a389f95878c7498a62af9 - optee/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2smac.c
420e593df278e8c4bce349965dc185a1654e27b7 - optee/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2bmac_file.c
7ef84ee8949eea9fb48ef217f1c8ff24f6adf1d7 - optee/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2smac_test.c
13a4a399570926073872b210027dc5539d30d44e - optee/optee_os/core/lib/libtomcrypt/src/mac/blake2/blake2smac_memory.c
539c06612340597abac186f272ceeec032082a08 - optee/optee_os/core/lib/libtomcrypt/src/mac/pmac/pmac_shift_xor.c
0e00b9ac2e143fc27c3122a3f3d9bc87d8282076 - optee/optee_os/core/lib/libtomcrypt/src/mac/pmac/pmac_process.c
1336042d04c7dd5b0ee965be9d037bf654049339 - optee/optee_os/core/lib/libtomcrypt/src/mac/pmac/pmac_test.c
0371334e645562a86984c83f6257967f26cf1464 - optee/optee_os/core/lib/libtomcrypt/src/mac/pmac/pmac_done.c
fd77eaabb5a5ffddd12e2f91920bd8e657aaff2f - optee/optee_os/core/lib/libtomcrypt/src/mac/pmac/pmac_ntz.c
74a84dcfca09518e42ab725a717c8aedc0fb9f84 - optee/optee_os/core/lib/libtomcrypt/src/mac/pmac/pmac_memory_multi.c
eb8f24748a3fbff1fabe0be3ce91f76ace71528b - optee/optee_os/core/lib/libtomcrypt/src/mac/pmac/pmac_init.c
4a8d8ec6fb7faf70d806473ae0d8a3d1c9d3cc5d - optee/optee_os/core/lib/libtomcrypt/src/mac/pmac/pmac_file.c
21ade96dad372a77d13f421cc9c1f8d2290e239c - optee/optee_os/core/lib/libtomcrypt/src/mac/pmac/pmac_memory.c
af7e5ec699439a45de3f29a72e6779709ebce7ac - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_encrypt.c
16d4c4b33c5e68749766312b86e074433514c453 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_ntz.c
727b4d190bb993d395c276fdc4b6772e7507af6f - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_decrypt_verify_memory.c
93e89b145ff46fcae1c653ee70c2061ac539e737 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_done_encrypt.c
87188dae93ef2263dd1baa4207faf5551bf57bff - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_decrypt.c
9874e24493855b4ccab70b0ff538125c23e3515b - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_init.c
83f9d3b22b6bd8960fde8524bcd094d2fd1bad6b - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_test.c
069dc6544fea4923f5ffc9ed6cb508d1e3be4b16 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb/s_ocb_done.c
4c0669699a2b11b52aacda4fd2c617d5695da4c1 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_shift_xor.c
fb2baeda2808e719b2543a5bf4e92e86c5a8475f - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_encrypt_authenticate_memory.c
5fd053c692f154fa517d1a66afac3bf88a666dc1 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb/ocb_done_decrypt.c
00df47ac677f1c073e872b02d89d034defae3198 - optee/optee_os/core/lib/libtomcrypt/src/encauth/chachapoly/chacha20poly1305_setiv_rfc7905.c
a1a4e685352d4984fd5d49522bcd50c4492ea66c - optee/optee_os/core/lib/libtomcrypt/src/encauth/chachapoly/chacha20poly1305_init.c
0af7bc735a8720e5b936a261204b1aa73a0943f5 - optee/optee_os/core/lib/libtomcrypt/src/encauth/chachapoly/chacha20poly1305_memory.c
9de6e2171df8c3c6a974888bfde2f9333e56e12a - optee/optee_os/core/lib/libtomcrypt/src/encauth/chachapoly/chacha20poly1305_done.c
2d89b89d0738d4db5b761d40f9cd02510f413933 - optee/optee_os/core/lib/libtomcrypt/src/encauth/chachapoly/chacha20poly1305_test.c
55555aa0f46d7b4575242255f0729e9da8593aff - optee/optee_os/core/lib/libtomcrypt/src/encauth/chachapoly/chacha20poly1305_encrypt.c
268ca7b0eb4a15158fd3f58ae75ddaa90a8f7eaa - optee/optee_os/core/lib/libtomcrypt/src/encauth/chachapoly/chacha20poly1305_setiv.c
559a51a7d6a1d21918f5908f788bb294acf88bee - optee/optee_os/core/lib/libtomcrypt/src/encauth/chachapoly/chacha20poly1305_decrypt.c
5cc80740578579a16d394fdd144d7d71daabfa35 - optee/optee_os/core/lib/libtomcrypt/src/encauth/chachapoly/chacha20poly1305_add_aad.c
9eb480ccdf51a957a9391e17f2740e53048dd90a - optee/optee_os/core/lib/libtomcrypt/src/encauth/ccm/ccm_add_aad.c
f8f818328098018b9bc6836915dbfc34bafbf574 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ccm/ccm_reset.c
62851dedaffe4829a9e1d62149db76a1986abd9b - optee/optee_os/core/lib/libtomcrypt/src/encauth/ccm/ccm_add_nonce.c
f8665c5b620a773ad0a216d19c5abc141e016573 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ccm/ccm_init.c
9a94ec21fc09797428df52cdd5e9fd31d0692885 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ccm/ccm_test.c
e045e646861478e232fea83658bd42d37547f4fb - optee/optee_os/core/lib/libtomcrypt/src/encauth/ccm/ccm_done.c
d4dca139aea0166092d5665e29064ddda8901842 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ccm/ccm_process.c
a91a5e3eaa7bcde10bc135c0f63feaf78724d5ca - optee/optee_os/core/lib/libtomcrypt/src/encauth/ccm/ccm_memory.c
782a71b6b10b0305491529ce9963ace0c26a38f6 - optee/optee_os/core/lib/libtomcrypt/src/encauth/eax/eax_test.c
8f82752538241e4f3c3f48ccdb5bf6fd41d7e889 - optee/optee_os/core/lib/libtomcrypt/src/encauth/eax/eax_decrypt.c
30473a74f19214129f69b8b067d6d2d5a87a7364 - optee/optee_os/core/lib/libtomcrypt/src/encauth/eax/eax_addheader.c
cf42e3ab0129e2962618a2b9b261e9ea20e0bcf2 - optee/optee_os/core/lib/libtomcrypt/src/encauth/eax/eax_encrypt.c
c5f08bda970ba7d30ff7bee44fda96f5e6515caf - optee/optee_os/core/lib/libtomcrypt/src/encauth/eax/eax_init.c
3199f0f705460b9182e1e9b543e800f7d26b305b - optee/optee_os/core/lib/libtomcrypt/src/encauth/eax/eax_decrypt_verify_memory.c
f60e6c18f07779e8b066581926c51522a92069d6 - optee/optee_os/core/lib/libtomcrypt/src/encauth/eax/eax_done.c
633dfd755ba58507be81b2d70c2d483d28ca9597 - optee/optee_os/core/lib/libtomcrypt/src/encauth/eax/eax_encrypt_authenticate_memory.c
3f6fff56e90836bbb49e7e0f2ea08ef20a25dcc7 - optee/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_init.c
792b2c41264e5daf5d14ec67d327f8bfd079d994 - optee/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_reset.c
f162118759bca19c0f87c3807df85b6373ae5644 - optee/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_add_iv.c
6799d4d2d91f4e12e8d866fd920ae847eb66d5e6 - optee/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_add_aad.c
cf505805e8a15d2a7e342491371d6f38a799f8e3 - optee/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_mult_h.c
60ead8187339abc082c6fb5cfa8ca4a07d5bd3d1 - optee/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_mult_h_arm_ce.c
19aceaaa2254b78b3210d81efdb82d2909a5edbe - optee/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_test.c
7b1c5747593a58fdf9669888bd86df7718579054 - optee/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_memory.c
d071d7e805d688ccaaf2b3f8c3b7bc5d68bbba1e - optee/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_process.c
9dd030615b3a2c6b70c7e24dc125673f88550909 - optee/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_gf_mult.c
38d9de8caef78490c170d9f138c49db6374e6a02 - optee/optee_os/core/lib/libtomcrypt/src/encauth/gcm/gcm_done.c
ce658863c830e150ad4cc3c3bf741b91dfa68c6c - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_encrypt_last.c
9b663e83c3004ebe1725ad851bde5f946c0e6150 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_encrypt_authenticate_memory.c
650667de1f0e3d2308872cf4537ae49498239261 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_decrypt_last.c
7d45e3754a326d8386f2e536d6baa81554378581 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_decrypt_verify_memory.c
df0f2138b4cb5a037739e226490a0d08bd268048 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_decrypt.c
7c091098e78cd1fb572b8b2e843ac04d30099719 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_add_aad.c
d3aff516bc303de0bedf794c42305bb770b41629 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_int_ntz.c
487cb958837ebcf06f92ef604fb17b4a495bbd64 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_test.c
5de251abffe4c5d5eea6c9deb2b5a3dd7c128147 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_int_xor_blocks.c
4dd6870aa2c7606e90a94d802fa383dd8515b825 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_encrypt.c
5f19a3d36e36aa4d6fd83ace3219f06916e307a9 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_done.c
946301da12005f65f7f0a5d5cd79114186db81e7 - optee/optee_os/core/lib/libtomcrypt/src/encauth/ocb3/ocb3_init.c
4a0d52f29c5da69ba1248de543b53f80f00f0358 - optee/optee_os/core/lib/libtomcrypt/src/modes/ecb/ecb_done.c
2f93fc0a9e1afdf93c263f75675e15d9aae63cf6 - optee/optee_os/core/lib/libtomcrypt/src/modes/ecb/ecb_encrypt.c
a0941ac3c7a39107c7f3049a9ce6b7cc3d120c58 - optee/optee_os/core/lib/libtomcrypt/src/modes/ecb/ecb_decrypt.c
a1361518be72e5f0a2c22cf2e99afc5155c64421 - optee/optee_os/core/lib/libtomcrypt/src/modes/ecb/ecb_start.c
ad10e437f618657cf5b5e3ffc20fb6c5219a6db8 - optee/optee_os/core/lib/libtomcrypt/src/modes/lrw/lrw_process.c
3e8b2b92ce4faeef2ac7282bb0e58253ed01bc41 - optee/optee_os/core/lib/libtomcrypt/src/modes/lrw/lrw_encrypt.c
6166a8f10c3d96dd48d974f0c420288c79faaeed - optee/optee_os/core/lib/libtomcrypt/src/modes/lrw/lrw_done.c
7cbf93842dddca33e61a035f80d15e15d1e0c609 - optee/optee_os/core/lib/libtomcrypt/src/modes/lrw/lrw_test.c
89d10d95e8d542d75a69d8f580d6ba6448096006 - optee/optee_os/core/lib/libtomcrypt/src/modes/lrw/lrw_setiv.c
89b75f314fad2f247f3c02a8d043c69822182beb - optee/optee_os/core/lib/libtomcrypt/src/modes/lrw/lrw_decrypt.c
6343e513ad46501c7b3c7dc039c8b246ea927590 - optee/optee_os/core/lib/libtomcrypt/src/modes/lrw/lrw_getiv.c
6186f3e377626cce35518099044023ede1954ee7 - optee/optee_os/core/lib/libtomcrypt/src/modes/lrw/lrw_start.c
75a66324c9304c63a62bc2a97fbc8ea51df97255 - optee/optee_os/core/lib/libtomcrypt/src/modes/xts/xts_encrypt.c
85a32e2be465b69f7a4132892ad684cbcd8ea293 - optee/optee_os/core/lib/libtomcrypt/src/modes/xts/xts_test.c
336fd44e027effb81725392b176eb6fe5112e371 - optee/optee_os/core/lib/libtomcrypt/src/modes/xts/xts_done.c
769fbede217b0ef928a9b5939e849a6efd2d0e01 - optee/optee_os/core/lib/libtomcrypt/src/modes/xts/xts_init.c
3dea7eb14320987637e14b812e161c7efa873b76 - optee/optee_os/core/lib/libtomcrypt/src/modes/xts/xts_mult_x.c
a2a2185a5cbe8319ecd9e65dbb720317d63814ad - optee/optee_os/core/lib/libtomcrypt/src/modes/xts/xts_decrypt.c
41b01b20223d2bb66ac8f419cf6f8435c9867f86 - optee/optee_os/core/lib/libtomcrypt/src/modes/f8/f8_encrypt.c
ad7cdbcaef35b7db424ce95e64bf87baf2f4164a - optee/optee_os/core/lib/libtomcrypt/src/modes/f8/f8_setiv.c
cf8ba7e0b9c7428652d258729d7790277015c181 - optee/optee_os/core/lib/libtomcrypt/src/modes/f8/f8_start.c
2140195d11a6c4c204d39ed215e9600018bd23cf - optee/optee_os/core/lib/libtomcrypt/src/modes/f8/f8_done.c
2e8ea32ff629fd7635676de6611f85ef9285eee6 - optee/optee_os/core/lib/libtomcrypt/src/modes/f8/f8_decrypt.c
f9f61c74b98bf0afefdd73ff10efad3fafc465b2 - optee/optee_os/core/lib/libtomcrypt/src/modes/f8/f8_getiv.c
06cbb137bfc9d209674f552805083aeb3ae1516e - optee/optee_os/core/lib/libtomcrypt/src/modes/f8/f8_test_mode.c
f07be7c3adc027be7917e3d412fe07dcd829fb1e - optee/optee_os/core/lib/libtomcrypt/src/modes/cbc/cbc_done.c
f3d6327ce4ffdabcd4e94091f0c4d616198e8f04 - optee/optee_os/core/lib/libtomcrypt/src/modes/cbc/cbc_getiv.c
747a817bfdd38ce834a9198f1e176c1fe227b3bd - optee/optee_os/core/lib/libtomcrypt/src/modes/cbc/cbc_setiv.c
4a3b1b9453c09f7842de157e91770af0c0ed7415 - optee/optee_os/core/lib/libtomcrypt/src/modes/cbc/cbc_decrypt.c
9e461ccf05f3b82c258302f4a3eb873038978a89 - optee/optee_os/core/lib/libtomcrypt/src/modes/cbc/cbc_start.c
e6d6ea2e6d96293a8daf46f6c0748936ccc3527b - optee/optee_os/core/lib/libtomcrypt/src/modes/cbc/cbc_encrypt.c
7d9c7698b787a53e3bd28940cdd444746994860b - optee/optee_os/core/lib/libtomcrypt/src/modes/cfb/cfb_encrypt.c
d6eb82ef3d2185e358f7226af8bb34ffff297694 - optee/optee_os/core/lib/libtomcrypt/src/modes/cfb/cfb_setiv.c
ca7bed22fee4c69c65394f0811f17e8a4a3b3ea9 - optee/optee_os/core/lib/libtomcrypt/src/modes/cfb/cfb_start.c
3a750d0cc44888f039a609e54a400af43310abcd - optee/optee_os/core/lib/libtomcrypt/src/modes/cfb/cfb_decrypt.c
a5a54f70612eca541d03a7a560aba8cdff0b4df3 - optee/optee_os/core/lib/libtomcrypt/src/modes/cfb/cfb_getiv.c
56f1ea6d8684edf6bbfc6e96fec03f21f3ec7879 - optee/optee_os/core/lib/libtomcrypt/src/modes/cfb/cfb_done.c
b03f3351e97f9628fb7921eda85ae3f0b0534156 - optee/optee_os/core/lib/libtomcrypt/src/modes/ctr/ctr_encrypt.c
c9abd410a11d44eb94910ab6d95bafc4e75fcbe7 - optee/optee_os/core/lib/libtomcrypt/src/modes/ctr/ctr_getiv.c
cf2740b0fb974b94f1cc08890920c5e95f703310 - optee/optee_os/core/lib/libtomcrypt/src/modes/ctr/ctr_done.c
2997b2353ddb192f89b3ec278ad91cdc8d7f2b62 - optee/optee_os/core/lib/libtomcrypt/src/modes/ctr/ctr_setiv.c
0303400a05e16078ca1944029c36280472d79869 - optee/optee_os/core/lib/libtomcrypt/src/modes/ctr/ctr_test.c
ee5c9c1fd94d09694078522a5a470058f1aa78ea - optee/optee_os/core/lib/libtomcrypt/src/modes/ctr/ctr_decrypt.c
265e8429da2df62461fd0b313a0120c58034bd0b - optee/optee_os/core/lib/libtomcrypt/src/modes/ctr/ctr_start.c
eb172f92954aa6843672b7d7bc9707f7448bc1c4 - optee/optee_os/core/lib/libtomcrypt/src/modes/ofb/ofb_getiv.c
207351014a29ed0dce3fcaa0898b5c563262e0e1 - optee/optee_os/core/lib/libtomcrypt/src/modes/ofb/ofb_decrypt.c
4ec1b143f43bb9aac8d870e9bad201ea008c17c3 - optee/optee_os/core/lib/libtomcrypt/src/modes/ofb/ofb_start.c
6cb5287688b6eee249f4ccc152104c13fc0579f1 - optee/optee_os/core/lib/libtomcrypt/src/modes/ofb/ofb_encrypt.c
2301f47f63701715e30b0a1d5a7bcf2ff97644ff - optee/optee_os/core/lib/libtomcrypt/src/modes/ofb/ofb_done.c
f5dfcba990f115b494ccd95e958582ca983bfb31 - optee/optee_os/core/lib/libtomcrypt/src/modes/ofb/ofb_setiv.c
e618ce5c3d8409cf47b68ba9621e64262846a123 - optee/optee_os/core/lib/libtomcrypt/src/prngs/sprng.c
4b6959d31d2cd9d600c17adca9edd2b7fbb70bb8 - optee/optee_os/core/lib/libtomcrypt/src/prngs/fortuna.c
65bdd642447c1d4dfc26f0f35958f0e1f9dbf51b - optee/optee_os/core/lib/libtomcrypt/src/prngs/yarrow.c
b1696e891350ceb540ac60bc6d4fc5601ae109b1 - optee/optee_os/core/lib/libtomcrypt/src/prngs/chacha20.c
0175635dc4f43317153da8fa639515156755da5c - optee/optee_os/core/lib/libtomcrypt/src/prngs/sober128.c
91b049316fd473eb33d4807d7b5aaa9a00844a82 - optee/optee_os/core/lib/libtomcrypt/src/prngs/rc4.c
94ca15102c5937a658d63a00e39be8d7ce0a25fe - optee/optee_os/core/lib/libtomcrypt/src/prngs/rng_make_prng.c
9931d364f7feeae167aaad25aabc387977444f87 - optee/optee_os/core/lib/libtomcrypt/src/prngs/rng_get_bytes.c
02474538dadafba33694c8ecab5fc2e6d00a7281 - optee/optee_os/core/lib/libtomcrypt/src/ciphers/khazad.c
48cdd948011ecd3e9298f56dce531d60ede7608d - optee/optee_os/core/lib/libtomcrypt/src/ciphers/idea.c
398a2df01e72511a00c4fd56ef10ba61c9e08ae4 - optee/optee_os/core/lib/libtomcrypt/src/ciphers/kseed.c
461cbf82c045454db297fe16c3c478c4cde8fadd - optee/optee_os/core/lib/libtomcrypt/src/ciphers/noekeon.c
c870397dc946312c9c0304e8f132b1fe87eb18c3 - optee/optee_os/core/lib/libtomcrypt/src/ciphers/tea.c
819970a30ad279c10add699d9bb08c1023039bbc - optee/optee_os/core/lib/libtomcrypt/src/ciphers/anubis.c
e28e47ef72883f05ef629df3d495fddfda0372f9 - optee/optee_os/core/lib/libtomcrypt/src/ciphers/skipjack.c
60505e6a888a893c8edf9d6065362453230d0d78 - optee/optee_os/core/lib/libtomcrypt/src/ciphers/des.c
d48e4087de75284fb9aa215069515ac90849dd5f - optee/optee_os/core/lib/libtomcrypt/src/ciphers/serpent.c
06e4fcdd40cc84f756e818ffb70a63da8066c7a1 - optee/optee_os/core/lib/libtomcrypt/src/ciphers/kasumi.c
b0f8a843a280133fbab3d261ce7a7486c5f20bb2 - optee/optee_os/core/lib/libtomcrypt/src/ciphers/cast5.c
9748ebff9d560f59b42bb6c8c1dedc71dccbc225 - optee/optee_os/core/lib/libtomcrypt/src/ciphers/rc2.c
4e35739fffcd60f1f9971113810a08c7c7fb114e - optee/optee_os/core/lib/libtomcrypt/src/ciphers/camellia.c
cfc7412e0fbe23e14536db6836f3da2102c02e06 - optee/optee_os/core/lib/libtomcrypt/src/ciphers/xtea.c
9d2d04084cdc6c4c56cec3479af1ccb74619fe42 - optee/optee_os/core/lib/libtomcrypt/src/ciphers/rc5.c
783f175a7e6e630e954aa409e43cc67a854e2921 - optee/optee_os/core/lib/libtomcrypt/src/ciphers/blowfish.c
0e87ea79442a67dec4fad902f2df7a827f1c233f - optee/optee_os/core/lib/libtomcrypt/src/ciphers/rc6.c
840013cf542fd64a45cdea8afb965f8aa0e51df8 - optee/optee_os/core/lib/libtomcrypt/src/ciphers/multi2.c
4a6bb1fb9b2eed818cf6aebf8d6fc78f108db521 - optee/optee_os/core/lib/libtomcrypt/src/ciphers/twofish/twofish.c
b6e57c2661c58975ca885c612932e68bfeb45d9e - optee/optee_os/core/lib/libtomcrypt/src/ciphers/twofish/twofish_tab.c
48a4a60cd68d5143a1998139b830ee8fa7e56faf - optee/optee_os/core/lib/libtomcrypt/src/ciphers/aes/aes_tab.c
4d6e2810b820eb2b29529f2bb429d35841b3bdd5 - optee/optee_os/core/lib/libtomcrypt/src/ciphers/aes/aes.c
f7eb0744775bb897d006417c91c5f5b4aac5dd92 - optee/optee_os/core/lib/libtomcrypt/src/ciphers/safer/safer.c
31702a5acb225e761e0a4cd0e4b4e0e31c5206e3 - optee/optee_os/core/lib/libtomcrypt/src/ciphers/safer/safer_tab.c
5f2865f98ba1100f2d497f84b78a20571393885b - optee/optee_os/core/lib/libtomcrypt/src/ciphers/safer/saferp.c
82aa1b04a2ce5276fd516e96169dc1b0c2432bb6 - optee/optee_os/core/lib/libtomcrypt/src/hashes/md5.c
3c19181cce8bd461cc6a736ec3f3940ec737bcdd - optee/optee_os/core/lib/libtomcrypt/src/hashes/rmd160.c
1767c79b4e8637fd2636ed3e5d54dcd37cebae04 - optee/optee_os/core/lib/libtomcrypt/src/hashes/tiger.c
699622196fe40d368c4aa87afa335085d2d7cbd8 - optee/optee_os/core/lib/libtomcrypt/src/hashes/md2.c
17750b4d62fad12b1ae16ef01a8ffa2cac05fe1a - optee/optee_os/core/lib/libtomcrypt/src/hashes/sha3.c
50f0d32cf7879499990c4ec792546db1e812dfaf - optee/optee_os/core/lib/libtomcrypt/src/hashes/md4.c
f0e38b2df179903a5c62a5d1223c27d9468f2b55 - optee/optee_os/core/lib/libtomcrypt/src/hashes/sha3_test.c
a24770ddff20aa047ca6e50ed3b40f67fb229213 - optee/optee_os/core/lib/libtomcrypt/src/hashes/rmd256.c
f7476e6db75e35d781ab4d7ac8fbbb76133f2158 - optee/optee_os/core/lib/libtomcrypt/src/hashes/blake2s.c
c4e009d4708e3b97b2d83467411f582076ec374b - optee/optee_os/core/lib/libtomcrypt/src/hashes/sha1.c
436cc2c14c7f7f513d234253ebce325da3441faf - optee/optee_os/core/lib/libtomcrypt/src/hashes/blake2b.c
bbb1244d51ea6efa2a0d6fd5ff5d1a6b507eb3cb - optee/optee_os/core/lib/libtomcrypt/src/hashes/rmd128.c
c991e82af32c3fd33d4ca7f63a43c46aaa3a8af5 - optee/optee_os/core/lib/libtomcrypt/src/hashes/rmd320.c
63de08d2a37229f4bc2e4138db49d71e7f5786d0 - optee/optee_os/core/lib/libtomcrypt/src/hashes/chc/chc.c
5c4268acde331fa5dfc75643f9edc2c04189e29c - optee/optee_os/core/lib/libtomcrypt/src/hashes/whirl/whirl.c
d4fe8714b77fd3ad07260899bc8b5307e2d44e68 - optee/optee_os/core/lib/libtomcrypt/src/hashes/whirl/whirltab.c
18123fb06342b70d7c8af10d2c72fd07b75e1d2c - optee/optee_os/core/lib/libtomcrypt/src/hashes/sha2/sha384.c
f25a1dad013d500b85f3eef3b3570f30a88b8937 - optee/optee_os/core/lib/libtomcrypt/src/hashes/sha2/sha256.c
91834258fd0a291b0c2e8b5a43b6bd8f7278bca6 - optee/optee_os/core/lib/libtomcrypt/src/hashes/sha2/sha512_256.c
3ff874c5735dc5e5d895621a56ed2a379f35f3fa - optee/optee_os/core/lib/libtomcrypt/src/hashes/sha2/sha512.c
3b7138b66d581516a8dd7568842636ce576e8f33 - optee/optee_os/core/lib/libtomcrypt/src/hashes/sha2/sha512_224.c
3d396867f33dd56b9cb7f66e66c902badeee4bfc - optee/optee_os/core/lib/libtomcrypt/src/hashes/sha2/sha224.c
123f4981edadc5f102d34b0ba1b5a187c185bba8 - optee/optee_os/core/lib/libtomcrypt/src/hashes/helper/hash_file.c
0143b2df7c00d23cf21ee3f0a263e80cfb42788e - optee/optee_os/core/lib/libtomcrypt/src/hashes/helper/hash_memory.c
01fc3d71a3f1525612e644839c7a707c1e5a1af5 - optee/optee_os/core/lib/libtomcrypt/src/hashes/helper/hash_filehandle.c
06ac2272160baaf80405c2bc2d9ef9a5295548b4 - optee/optee_os/core/lib/libtomcrypt/src/hashes/helper/hash_memory_multi.c
2f7b628448c81541c1e80e9cd8cd61e1489736f8 - optee/optee_os/core/lib/libtomcrypt/src/stream/chacha/chacha_ivctr32.c
421494432d61682c13c00cb14769af324f4694e7 - optee/optee_os/core/lib/libtomcrypt/src/stream/chacha/chacha_done.c
0ecad8f59cf056ac38226599bdef384c2e52c733 - optee/optee_os/core/lib/libtomcrypt/src/stream/chacha/chacha_setup.c
76550dd06cbcff27a2d8ac4d8f8ef0428da2a4ba - optee/optee_os/core/lib/libtomcrypt/src/stream/chacha/chacha_memory.c
a1c69b888c2662b3db2c4343318cfed05ce1a262 - optee/optee_os/core/lib/libtomcrypt/src/stream/chacha/chacha_test.c
19529a1c91610536d1f56e09d8f7f0c1c44ed1fb - optee/optee_os/core/lib/libtomcrypt/src/stream/chacha/chacha_ivctr64.c
95e2d29cf4201f1cc469997b0aef539883229f02 - optee/optee_os/core/lib/libtomcrypt/src/stream/chacha/chacha_crypt.c
408fed5f27e4bb531ec7c18c4ea4b85e1b3e25b4 - optee/optee_os/core/lib/libtomcrypt/src/stream/chacha/chacha_keystream.c
21ad37425084eb46c5dd6d7917ce29b0758fe98e - optee/optee_os/core/lib/libtomcrypt/src/stream/rabbit/rabbit.c
4aca9bfe042afdad9b57f2241c99597911fcb7a8 - optee/optee_os/core/lib/libtomcrypt/src/stream/rabbit/rabbit_memory.c
e554ce2b664e1b21e037000eab5b05a464e2f913 - optee/optee_os/core/lib/libtomcrypt/src/stream/rc4/rc4_test.c
43f7927b89b648f1b642bbe96a30329482a96706 - optee/optee_os/core/lib/libtomcrypt/src/stream/rc4/rc4_stream_memory.c
0370402bb2b440618f27fff3e9a7d3e2219a348e - optee/optee_os/core/lib/libtomcrypt/src/stream/rc4/rc4_stream.c
d7ddc63403a0836fcb998d8a80e1d253aad3fac4 - optee/optee_os/core/lib/libtomcrypt/src/stream/salsa20/salsa20_ivctr64.c
b8a013b428ced9671422b507d6833d25312bd823 - optee/optee_os/core/lib/libtomcrypt/src/stream/salsa20/salsa20_test.c
c086c739c64705448b06feec7107cd47dedf997e - optee/optee_os/core/lib/libtomcrypt/src/stream/salsa20/salsa20_memory.c
bfa49e2602c5cdee29bb880f6558844a31175fc9 - optee/optee_os/core/lib/libtomcrypt/src/stream/salsa20/xsalsa20_test.c
c1487e9b5be5b8d3a2662a6e37a477cf5c86bb8f - optee/optee_os/core/lib/libtomcrypt/src/stream/salsa20/salsa20_setup.c
e8f1fb8eb2b962abfef86027594a70a50023e9d9 - optee/optee_os/core/lib/libtomcrypt/src/stream/salsa20/xsalsa20_memory.c
5d403e317c9deb62133d017412250702a48683d9 - optee/optee_os/core/lib/libtomcrypt/src/stream/salsa20/salsa20_crypt.c
a4f8195e9e117c1053f0272b7b26bc835bdc5337 - optee/optee_os/core/lib/libtomcrypt/src/stream/salsa20/salsa20_done.c
51497c0e6a261a2ebe26056565149049e7154e05 - optee/optee_os/core/lib/libtomcrypt/src/stream/salsa20/xsalsa20_setup.c
1e3ea925d7df004fe7994bcedc4d5e0d9551c09d - optee/optee_os/core/lib/libtomcrypt/src/stream/salsa20/salsa20_keystream.c
cc60780ba62cc198b8657fb2994150ebdbd9aabd - optee/optee_os/core/lib/libtomcrypt/src/stream/sosemanuk/sosemanuk_test.c
51e23c33fc2f379b97fdbb9128414859204e00a4 - optee/optee_os/core/lib/libtomcrypt/src/stream/sosemanuk/sosemanuk.c
15c26663221b68b94b5e2f66b93c1b4468d6b956 - optee/optee_os/core/lib/libtomcrypt/src/stream/sosemanuk/sosemanuk_memory.c
7c4f40cf2659b91a59b92ee79867fc47b44affe1 - optee/optee_os/core/lib/libtomcrypt/src/stream/sober128/sober128tab.c
18ce9329f7f80ff15e4e96615479074600a7ec87 - optee/optee_os/core/lib/libtomcrypt/src/stream/sober128/sober128_stream_memory.c
d6981e9defa0ed7bd29fdde4dff9567394bf672e - optee/optee_os/core/lib/libtomcrypt/src/stream/sober128/sober128_stream.c
ff214c34d15c197a91a236c37775d89e959c1bec - optee/optee_os/core/lib/libtomcrypt/src/stream/sober128/sober128_test.c
6adfd2c5e4b416a65be0e9e7d0b6a24c1a3589d1 - optee/optee_os/core/lib/libtomcrypt/src/misc/adler32.c
f4059601bb534681d08bbf29b543f5bc37d29267 - optee/optee_os/core/lib/libtomcrypt/src/misc/zeromem.c
746776871c1d225104237b1021e530a23d5c1fd0 - optee/optee_os/core/lib/libtomcrypt/src/misc/compare_testvector.c
5c187006ec54c463347d528d5671b8e92f9b762b - optee/optee_os/core/lib/libtomcrypt/src/misc/copy_or_zeromem.c
90dd180fc585755ec6db549d5d69653fe83ed6ab - optee/optee_os/core/lib/libtomcrypt/src/misc/mem_neq.c
c129c049a7b7b18cdb44284f93430835d0001761 - optee/optee_os/core/lib/libtomcrypt/src/misc/crc32.c
ff2dcdde770c5904024d8bd59763632a301e9790 - optee/optee_os/core/lib/libtomcrypt/src/misc/burn_stack.c
ad0c66e6a4431f567b49915d01f026888538f63e - optee/optee_os/core/lib/libtomcrypt/src/misc/error_to_string.c
c2fa3c8655b71dc36a48c5aa409c9ed586f9c8d0 - optee/optee_os/core/lib/libtomcrypt/src/misc/base32/base32_encode.c
f5d1d5c1f347ba72d7eecf6995812bd9b0443efc - optee/optee_os/core/lib/libtomcrypt/src/misc/base32/base32_decode.c
2e8f9163643ed6d0b41b646077f77fa7c179ffcc - optee/optee_os/core/lib/libtomcrypt/src/misc/pkcs5/pkcs_5_1.c
4f6812ba75aa737fd7f24b4148cdf1b3a99e59e4 - optee/optee_os/core/lib/libtomcrypt/src/misc/pkcs5/pkcs_5_test.c
11a7db8b0e76dc35b70e854992156d2f75f98688 - optee/optee_os/core/lib/libtomcrypt/src/misc/pkcs5/pkcs_5_2.c
d0feb5c364be991806af64380cd3a6e5d7062ab3 - optee/optee_os/core/lib/libtomcrypt/src/misc/bcrypt/bcrypt.c
80d8a64decdaeb241abf260380e42f406eb7e132 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_unregister_hash.c
18b723be741bf36e94966af24f7f0da9fa256f26 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_constants.c
0090a8c4b12094134c7e3fcdd6c82cd26327c271 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_register_prng.c
082f0d654b13f0b93cbe1d28f01726941f0bac78 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_register_all_hashes.c
abb752921991a5264ecf76f92d09589c9477d1d6 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_sizes.c
20925129239360b39ed195a0d8b6b99d59b890f2 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_find_hash_oid.c
1221efc9a518048e34fe881a93fe5c765524f34e - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_unregister_prng.c
d15ddf5b26ce2f13c726a540479ac62355bc4ab3 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_prng_is_valid.c
9e47537140b5988fba0847120d3e311f83085ac8 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_hash_descriptor.c
70ff3cb0ee05909a347b56392e40b79171d1d3ce - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_unregister_cipher.c
6809767adc93fcb15bd91fdd9e99a6264937a6ef - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_register_all_ciphers.c
d92b5cc31e60e6581ee77b6e9780353b967e8321 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt.c
994a86f2bda5d048c5755b0e7819184195f24ce9 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_register_cipher.c
28e1308aa1d2f79105cf6aedb36a9ea1664e3567 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_prng_descriptor.c
474440e2037216fed3c26f124fd92a96e2bf51d8 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_argchk.c
81f55ffa10b11eb901eb4a3e44acce81c2582f84 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_find_hash.c
5c81f4d8d18f6544665cf9385fabb100324f2323 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_find_cipher_any.c
f1821b4e1d8e159fc9eebb3c49abfe0f6eef8da9 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_find_cipher_id.c
a98c18ecdba584f662232ca582bb88b502daee55 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_fsa.c
26a169c33ea38516c1421f536f7bbeeb2983f01c - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_hash_is_valid.c
23eb56683e5cb3b2a6203532f2261e1146584ee2 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_cipher_is_valid.c
c261fdd28c1198d33aeccd35a7728d324671e3b1 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_register_hash.c
34b218af0b0d226b125bb51da3c2016bcde2eb62 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_inits.c
c22b0f36bb603c5a4cc0e043d1fc84ed5615c82a - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_cipher_descriptor.c
209b907a121df459daa08c8ab473adaedc01f56b - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_ltc_mp_descriptor.c
07ad1815506e2a82911ec0c3fbb9dbe66466efde - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_prng_rng_descriptor.c
96342e249d7c747d11849bf1a4a2cfa99139134f - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_find_hash_any.c
233015470408b5b2e38773c5b1127762f545a856 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_find_prng.c
dd27864633e7f1746e256cc07e47437bbbb4bc97 - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_register_all_prngs.c
d4220e04397554fa19428f3ff33ebc5b80d93d7d - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_find_hash_id.c
63d0675dee46f130dd505b9ef11305f66b51d5ef - optee/optee_os/core/lib/libtomcrypt/src/misc/crypt/crypt_find_cipher.c
eb9ee827d87cbf5ee6013ea99a318a0e5c477a57 - optee/optee_os/core/lib/libtomcrypt/src/misc/base64/base64_encode.c
b4f980accf155a8df885c69266a8b2154992181a - optee/optee_os/core/lib/libtomcrypt/src/misc/base64/base64_decode.c
4b83b978826b5dc7e68898bde8d396e51a73583e - optee/optee_os/core/lib/libtomcrypt/src/misc/pkcs12/pkcs12_kdf.c
c2fe66c77a5e4ba8a09979753ec8fa3b1c9530ae - optee/optee_os/core/lib/libtomcrypt/src/misc/pkcs12/pkcs12_utf8_to_utf16.c
1d1ff4347844de6a3d1d111125194a55c55cf30e - optee/optee_os/core/lib/libtomcrypt/src/misc/padding/padding_pad.c
3c3c7ed1c6223f40663fab3cc95afff608de638c - optee/optee_os/core/lib/libtomcrypt/src/misc/padding/padding_depad.c
1a73cc544c8c9a3bb0d77497a5a92900c5acef58 - optee/optee_os/core/lib/libtomcrypt/src/misc/base16/base16_encode.c
e6d0978d88f10edcb4164e550bac09364d5a72e2 - optee/optee_os/core/lib/libtomcrypt/src/misc/base16/base16_decode.c
5e2328959d1d9fa3dfe651bc8390f56e97cfeeb9 - optee/optee_os/core/lib/libtomcrypt/src/misc/pbes/pbes.c
8ea5fa890004eae1957192d67e017a2f68ad820f - optee/optee_os/core/lib/libtomcrypt/src/misc/pbes/pbes1.c
e0622cab6f654c9d78768c0037a71e91c7c904d8 - optee/optee_os/core/lib/libtomcrypt/src/misc/pbes/pbes2.c
6b7496efa00caecdbe62a0a85ac0ac8b7a637d57 - optee/optee_os/core/lib/libtomcrypt/src/misc/ssh/ssh_decode_sequence_multi.c
4a0a598b182902b1813bb584ef6dd3ae446d0c70 - optee/optee_os/core/lib/libtomcrypt/src/misc/ssh/ssh_encode_sequence_multi.c
779555900035522f3dacfa9d8dcb18c310e78d2e - optee/optee_os/core/lib/libtomcrypt/src/misc/hkdf/hkdf.c
78d7c916e74e8dba0076ccd8a784ef784d2a3473 - optee/optee_os/core/lib/libtomcrypt/src/misc/hkdf/hkdf_test.c
cbc194b08bb465a7b3cea249824712fda8857789 - optee/optee_os/core/lib/libtomcrypt/src/pk/x25519/x25519_import.c
f2e15ff205094f5a30ffd289282806adf3bfa02c - optee/optee_os/core/lib/libtomcrypt/src/pk/x25519/x25519_import_x509.c
812929f4e13a575e58aeceea8cd3c5db95ab2189 - optee/optee_os/core/lib/libtomcrypt/src/pk/x25519/x25519_export.c
0672fb6756a04c5eec2b963d2b2e9798f5d94c5b - optee/optee_os/core/lib/libtomcrypt/src/pk/x25519/x25519_make_key.c
8c6f5460141c1ee2b6fe1887243f5ee6ab21da0e - optee/optee_os/core/lib/libtomcrypt/src/pk/x25519/x25519_import_pkcs8.c
a9ba477ca5b2713fbf6217fa2b25888a448773dc - optee/optee_os/core/lib/libtomcrypt/src/pk/x25519/x25519_shared_secret.c
9e8045a9b7b85a4fd345a8606dda5a4529102a84 - optee/optee_os/core/lib/libtomcrypt/src/pk/x25519/x25519_import_raw.c
8d59b1b306078e34f08e267a5aa226debdf7551d - optee/optee_os/core/lib/libtomcrypt/src/pk/ed25519/ed25519_import_x509.c
e428a8a7e8121639e668ea708f09f5a768e4d12e - optee/optee_os/core/lib/libtomcrypt/src/pk/ed25519/ed25519_import_pkcs8.c
26547d5e1492512ed28376c853daeed24108f559 - optee/optee_os/core/lib/libtomcrypt/src/pk/ed25519/ed25519_import_raw.c
d06add7d54e686364cb1d56bc5c23a69c71597c3 - optee/optee_os/core/lib/libtomcrypt/src/pk/ed25519/ed25519_import.c
7fa48553c905b29d4a54176091d6fce2114399d4 - optee/optee_os/core/lib/libtomcrypt/src/pk/ed25519/ed25519_verify.c
3e1ac45da9df45134fb091ec1709d5464f79d2ef - optee/optee_os/core/lib/libtomcrypt/src/pk/ed25519/ed25519_sign.c
3c7f07f8405b9f895d89a3ea2090632df8c19cc8 - optee/optee_os/core/lib/libtomcrypt/src/pk/ed25519/ed25519_make_key.c
bca50dcf7601a449f350e48f0db458f6e0377f15 - optee/optee_os/core/lib/libtomcrypt/src/pk/ed25519/ed25519_export.c
f527339cc3a30c2b3135771f132f79c94331a0d8 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_import_point.c
1931064b040780af5b1dfe453878c4cffbec7c7d - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_sign_hash.c
c3b19e86b94901366e718206c46cd3cc4432b417 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_decrypt_key.c
cf05860092837c42f574e893b097a13b3374da04 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_projective_add_point.c
b818e0a65fbcb65e56211555e7979eb98ece81a0 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_export_point.c
966e686fb8e1225167a2e3a7c6df50b0540fa9c6 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_points.c
3e64593819f63544e4b0a5e7d7aca57eb34eade6 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_ansi_x963_import.c
5b57ce74997f89ba8f1107d442aca33bb2dc01e4 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_import.c
fbe398aee3a10e7dcb094e86282410752aa1a8b7 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_set_curve_internal.c
df15dd31ef7691042508e5eb5a7963483113cfc1 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_encrypt_key.c
a5205a7b0f315b2ebe0a2ced975772f8a1057571 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_is_point_at_infinity.c
d8f5cf749289d6a9c685c94b34909b764e1d7689 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_import_x509.c
1c00b1e26aaf1253c27c4f23b98535e45a041610 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_shared_secret.c
280c3e6ecb5e86ef00f694afb173a251ce58babc - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_find_curve.c
015e8b1e8df2b67df5666581c49ed3b443a17ebd - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_export.c
8149696ce9b92edc4b72e701857542c66a19265d - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc.c
1a11b95c51b4280fc073baaebd5f749bf0b623c0 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_mul2add.c
b1285aa85f707bd46b815f2a877d32bd8573987d - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_ansi_x963_export.c
1303993f215f0d4001ad7ac1dac13696058b33aa - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_get_key.c
fe473b8190607030112719eb24493f1941c3e619 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_export_openssl.c
0287f0fa69106c0067f42dcf123ce01e29d98031 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_mulmod.c
1860b05d1e6d84e49e6bde6665be70d81cc9c8a1 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_get_size.c
4204640f642d5ddb2df36d5eb318b13aed778172 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_map.c
450bf440ad3be5053c0d9c6d7926d5cdcd9714be - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_is_point.c
b482130a4f79e28597bcb38ab42cff07c19787a6 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_set_curve.c
450616e20f9d56c11a1adb892a3645a93741b105 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_verify_key.c
6b5a515a99122e80c6c6b9aa06a86e21ee73b3fa - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_get_oid_str.c
c5c1644f8bcfb94a1e9dc96faf3657ba2ebb4266 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_ssh_ecdsa_encode_name.c
f03fb73a557258c6ea41d3193cd6bd750a62245e - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_verify_hash.c
4703d1e4bec1f70e5e1b17f15db6ee3a4046b47c - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_sizes.c
b51764d8bd42b7561f41b8a977e021f720d461f6 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_projective_dbl_point.c
bf20409e528c89116d228521a61e12ec29b6b8e5 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_make_key.c
42aa854ffcb3552db4fb57796569ea830db3d9e1 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_import_openssl.c
bc4963f87689adb59ace0786a7b43d6a677b8512 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_import_pkcs8.c
c8932926feb1db7458a4121747277fbf302deca4 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ltc_ecc_mulmod_timing.c
96db40ce102160544ab24dfd2a14926461815e18 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_set_key.c
1fb03ce919d517f2cdd83c378d731a39ff656df8 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_recover_key.c
257ac82c33135561dfe7b5c7edecb5a2d0cdf7e1 - optee/optee_os/core/lib/libtomcrypt/src/pk/ecc/ecc_free.c
f547d958caecd824b0b17b1355530bcc788c20ca - optee/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_shared_secret.c
2893671ff36eba57509da1721ac9e5cf8567b6db - optee/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_generate_pqg.c
272952cb667172cf8fba5e852b5b8147d03f3534 - optee/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_make_key.c
a55666907f63f401c00cfa793eac033bc2226339 - optee/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_sign_hash.c
0803f50e230a9797701852fd02cdc9821544fa74 - optee/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_encrypt_key.c
b6d3f3a6c24debd170f1ec62a74d682113250cff - optee/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_free.c
5dc0463320e60a8062e4bb3b76301bfbb72227a5 - optee/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_import.c
4b2dbab5e2aa90bd324218ea5674fef8777f8473 - optee/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_export.c
bb5f98cabbead6be93d785dcc286f45498d5c0c9 - optee/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_set.c
b2e238370d7a369638a2b76d7c64b726f3eb53eb - optee/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_decrypt_key.c
3b82a4885c17b3d11eae9d1f870da34e6cae9f0f - optee/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_set_pqg_dsaparam.c
b0a3bbbaf6fb172cc402a25cfd4114abb554850c - optee/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_generate_key.c
fa3c683b57ff8087a2fd90fb5c6accf72d63ffd8 - optee/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_verify_key.c
7da5513cb4e6ebca0d19c35d74509deb172ebac6 - optee/optee_os/core/lib/libtomcrypt/src/pk/dsa/dsa_verify_hash.c
9c29bb5f9a40d49dc22a8b7c3f62c2fb6930eec9 - optee/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_shared_secret.c
2517e59c7961fc7b73ed472569df670355137213 - optee/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_export_key.c
952b34bccc6c1b05ad9de3bcddb1cca3b46b4e58 - optee/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_generate_key.c
e304ed0a492309f8b0055a4e147f87970fdf38bc - optee/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_export.c
82232e2e87681ab9ba1ecb3a51e964671eeb710a - optee/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_make_key.c
d32c3211c9738e6edeec863035ebddca34d496fe - optee/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_check_pubkey.c
a1886213cc203cfe7e6ef49271838e7d967f53bd - optee/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_free.c
ec26e921ae1e3e3d36d45dc1e9485f2ce7793529 - optee/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_set.c
3f0628db016f76777bae6ec89728511a7cb6cfa5 - optee/optee_os/core/lib/libtomcrypt/src/pk/dh/dh.c
fb90bf4aa59ee4d6f4371b1ed062a7efdf83462e - optee/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_set_pg_dhparam.c
af78940c2ff22884837509d7ba94f767ac3af81e - optee/optee_os/core/lib/libtomcrypt/src/pk/dh/dh_import.c
9765d9c7ad353767665e26aa27114aed5064b9d5 - optee/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_oaep_encode.c
f804f75c30cacbad97b14cac9f9603f27f4ee67f - optee/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_v1_5_encode.c
7a444c752e2d4df2d1384ce8f9a56dff42a02347 - optee/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_pss_encode.c
7bb1feddfc1ba6fcb69cb4ef537c5a0dfafb8d1e - optee/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_v1_5_decode.c
fa6b0f40cef3e152cec36c4ccd8d895e10dc60ca - optee/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_i2osp.c
2d5bca5df73d8684673df1d6ab38bae6f25cd304 - optee/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_oaep_decode.c
7e7beaf2f29e72101e3ff7ff9cde8d32af8b6305 - optee/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_os2ip.c
f97b4369ca4a6cee89a277cd05e60345fcc88377 - optee/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_pss_decode.c
357e06818540426a6b09b30b6265482454ba9342 - optee/optee_os/core/lib/libtomcrypt/src/pk/pkcs1/pkcs_1_mgf1.c
efb086030db7d8223ec9f72497920413fe5b9cb1 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/oid/pk_get_oid.c
d6404b3d1b805e9236eb4d91f784191692cb4f3b - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/oid/pk_oid_str.c
65c73948627beeb228b285cceb082340770d5dd1 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/oid/pk_oid_cmp.c
5cff49720c80fe773da512a51dbaaac7ef7a8eb8 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/pkcs8/pkcs8_decode_flexi.c
0fcf9b8d13534b36c44fbab36118578551653494 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/x509/x509_decode_public_key_from_certificate.c
fde5cba0f1fbdcfa0af606a17b90c2ece77fdfee - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/x509/x509_decode_subject_public_key_info.c
2e7715416f0b9b81765354e9b71ac389bc674bdb - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/x509/x509_encode_subject_public_key_info.c
2e24598b6fabfaad933446c87bd5a064a275e144 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/choice/der_decode_choice.c
e9d1241660244c310419ea1378b9ae323a7ac61d - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/general/der_length_asn1_identifier.c
5ae066c005e04dc7f013a783713675e77547f565 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/general/der_length_asn1_length.c
d82b04231f128724960a64f0099c8af38548d2d7 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/general/der_decode_asn1_length.c
61c080828e48973c7e450aca6d6e998b893001fa - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/general/der_asn1_maps.c
7a3773c30383a7999306b37627b17630b85eddf1 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/general/der_decode_asn1_identifier.c
18ca4c581baeb6b0fc04572980c8ff2c540588f1 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/general/der_encode_asn1_length.c
6d28b44c01e719209cf6726c110c6b0601e3ba50 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/general/der_encode_asn1_identifier.c
aedf07da8f7d1b98991abe3e3e74d0760c207630 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/sequence/der_decode_sequence_multi.c
16be383d4118fcac43cee6cf8550a7b4027ace1e - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/sequence/der_encode_sequence_ex.c
c5977a968d09b999595cf145d3429a62599ca661 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/sequence/der_sequence_free.c
a7b792db24f08ecaf3dc061773572acce6754633 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/sequence/der_encode_sequence_multi.c
e597c83e6003b94ef2d3664d81d39ef668416724 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/sequence/der_decode_sequence_ex.c
36b1d4df09d77914a9621e323848927e19b9e482 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/sequence/der_length_sequence.c
3547f3191ec66412dcb8347be374eca128c03c11 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/sequence/der_sequence_shrink.c
ca146db1227ca30261685565e96aad77b75b5577 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/sequence/der_decode_sequence_flexi.c
24de714f216931c3f599fc8d1e2deb86c21b847d - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/bit/der_decode_bit_string.c
df1aa22c0a11a444fa3e307b084eb35b6d651a88 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/bit/der_encode_raw_bit_string.c
291e2e946e23e0e29c802af28ecfb68aa74a3179 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/bit/der_length_bit_string.c
2da5ad73ec9c0ef261a7a06266369434fbeddc4f - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/bit/der_decode_raw_bit_string.c
9a3485d1bfab9d30eaf363de36eddaec1464396b - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/bit/der_encode_bit_string.c
f3830f9b7b3e4c414480974538e07a107e11eb09 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/octet/der_length_octet_string.c
6040a83b18f15c48008263edc7586ab2682a2650 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/octet/der_decode_octet_string.c
e45dcd69212ceaa620d3a68584c8cc3d8d7d7abc - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/octet/der_encode_octet_string.c
be4a439c97860d7aaf286c7ff16597491596101f - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/short_integer/der_decode_short_integer.c
3ed9c426a6a4649858e87dfe5a61277fc5aab712 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/short_integer/der_length_short_integer.c
f387f820036c9bddff6210310aafe78d14e6c4f6 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/short_integer/der_encode_short_integer.c
8412b0b3c04480ca5f376fefe953156f97d32d51 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/object_identifier/der_encode_object_identifier.c
769cca541575ba36865f25e1673640cad524581b - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/object_identifier/der_decode_object_identifier.c
8a688cc8917314414fb10e6bf7557ac9b22f42d6 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/object_identifier/der_length_object_identifier.c
4ab4dd3b5bbbb87afcfc52966eb024bb4d0c8234 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/generalizedtime/der_length_generalizedtime.c
52132cd7a799e297b872a524bda661601b33e5a3 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/generalizedtime/der_decode_generalizedtime.c
e50711035dcfcaa4d0c1fc32f433be0aa8d98689 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/generalizedtime/der_encode_generalizedtime.c
b64eaf809c7884f4963eabf55cbae2037d4aeb1f - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/utf8/der_decode_utf8_string.c
424afeec6f07fd7906055c91c9951d455c69033c - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/utf8/der_encode_utf8_string.c
715c09b19bbef0a9d89511be2ba47db3eb184457 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/utf8/der_length_utf8_string.c
ea6f9fec8d29d2a40e34eca954bf19601646c1fb - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/printable_string/der_length_printable_string.c
aafed90e2fb679630e5f4234ead1dbcc220b5ca8 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/printable_string/der_decode_printable_string.c
c9b6246d4dfd821f49c4cfb15b0b6bc3414d69bd - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/printable_string/der_encode_printable_string.c
ddc24ebe07f30aff933f0dcacceca877f7a8c912 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/ia5/der_length_ia5_string.c
28a82e82ca20ba6d4ef0d5d0da2afd9994aea550 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/ia5/der_decode_ia5_string.c
3fc70309a59d43216aa49ab5477df50823a97232 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/ia5/der_encode_ia5_string.c
f65972e7e1e35ea9bf3c750f6d2fbd3c22de8df1 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/boolean/der_length_boolean.c
2c41e8e870f523500c8fb60f9d88b90dd079c9ab - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/boolean/der_decode_boolean.c
b85ec531d4f44b87eb3be27290a2aaddc246d62b - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/boolean/der_encode_boolean.c
cdc82def06cef9eb373fb549f277544af32d2d40 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/integer/der_length_integer.c
ad22ad01c3f0cfb81fcc6eb155f0e48df5223102 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/integer/der_decode_integer.c
bdfcc0fc58006df5d8906f179fb339eeece8a99d - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/integer/der_encode_integer.c
13994ec081d65c83c2a411ecce60211f79aa7f8a - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/utctime/der_encode_utctime.c
9d6bf8a3d490c881c022ec153b9dfd96d4798be1 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/utctime/der_length_utctime.c
5c2277093dc1c4f2d6b877f924200805c950e697 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/utctime/der_decode_utctime.c
3ca43288d74863f2acf8e0553554f4110d572e56 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/teletex_string/der_decode_teletex_string.c
c66a829d9f1a1a0e936357a82b563385c99b38f3 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/teletex_string/der_length_teletex_string.c
8eedec47a421b47090137b1e2da8eb203fdef911 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/custom_type/der_encode_custom_type.c
cdbe2378f68d5da22b7a94428334cb11343dd5ff - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/custom_type/der_length_custom_type.c
6dc60f80f7af76c0a1b5992f03ddea0435b439ec - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/custom_type/der_decode_custom_type.c
ca628b8ab6300f40be2d696eb9c06cec680f4e87 - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/set/der_encode_setof.c
1292bcd4021db8959c6d5042550705be1b170daf - optee/optee_os/core/lib/libtomcrypt/src/pk/asn1/der/set/der_encode_set.c
979846f85b72946ff810edf5eafeca166d4283fd - optee/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_sign_hash.c
47347830be6ee382ced26f00e0be055570804c49 - optee/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_sign_saltlen_get.c
67055fc35186b6aa83df93e46da7bcbbe92b1f5c - optee/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_set.c
41df11b40913dcd9ec153132f10f527896611190 - optee/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_exptmod.c
94fb2295b17b0d88234119fb717d678ec352c9d1 - optee/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_get_size.c
9a424e42fb17d230990378f002faa44cd171738f - optee/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_make_key.c
01b964e18bfa23b2d17ae36580bb114f096fb07c - optee/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_decrypt_key.c
071f6f93d133ca61acdffd03ca03180bd812032b - optee/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_export.c
11826b990bf085ee0676611201c6a738ee4bff48 - optee/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_verify_hash.c
38f5811d94e0c86e4215591ed40917dbde19a7f8 - optee/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_encrypt_key.c
87a49a80c12d41e8594da7524050eba34e5f96f0 - optee/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_import_x509.c
a47196953806fe0b060f66e17a9f5c26db46a788 - optee/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_key.c
9f43d136949b104d186b32b4e272ab71212d140b - optee/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_import_pkcs8.c
32efc4a6c51bd46b2e5123cff17d55cc8560d582 - optee/optee_os/core/lib/libtomcrypt/src/pk/rsa/rsa_import.c
131a94c18f4c6d67111f71772ce64e30b214b7c6 - optee/optee_os/core/lib/libtomcrypt/src/pk/ec25519/ec25519_crypto_ctx.c
344a33caba6182cfa38c93b69be392fdb85ac4c9 - optee/optee_os/core/lib/libtomcrypt/src/pk/ec25519/tweetnacl.c
bbaf6a67e160f4064a99efb50a56e264bcd9722d - optee/optee_os/core/lib/libtomcrypt/src/pk/ec25519/ec25519_export.c
406b6b0422373c9c2a3c3f85df960bd5fd4134d8 - optee/optee_os/core/lib/libtomcrypt/src/pk/ec25519/ec25519_import_pkcs8.c
4107a71b931755873657a1db5c1d361d3baad0e5 - optee/optee_os/core/lib/libtomcrypt/src/math/radix_to_bin.c
0519f4dfb1ed6bcad6119da63132e2cb99a1ed77 - optee/optee_os/core/lib/libtomcrypt/src/math/ltm_desc.c
2ca00d67d4090191db790a545cd86d609c5678eb - optee/optee_os/core/lib/libtomcrypt/src/math/gmp_desc.c
9974963705cf2ee6ede4a5f04102ba8237fe707e - optee/optee_os/core/lib/libtomcrypt/src/math/tfm_desc.c
64535e883ae11fec86629844a95e9c1d7f02a486 - optee/optee_os/core/lib/libtomcrypt/src/math/rand_prime.c
6eb1e1c16c036e2717dc3ab41e98acde07da53a8 - optee/optee_os/core/lib/libtomcrypt/src/math/rand_bn.c
829f687603d1caba9543ddddb56af948b6a6369e - optee/optee_os/core/lib/libtomcrypt/src/math/multi.c
5a3aef9006609eab6327112f5508e2991e7a678e - optee/optee_os/core/lib/libtomcrypt/src/math/fp/ltc_ecc_fp_mulmod.c
eb37e780cdfe0dbafb29c0fa8629125c6e19bd6a - optee/optee_os/core/lib/zlib/adler32.c
edf93d4bfb11950ac75aade2faf0bf05d0aaff47 - optee/optee_os/core/lib/zlib/zutil.h
ce569e81ab26f5eb8d922b18be6561af7876c4e8 - optee/optee_os/core/lib/zlib/zconf.h
5121bcf9ae9f1eb58b39c4debbc5931e5be16434 - optee/optee_os/core/lib/zlib/inffast.c
47e5da9b88163c7194af9b7b6a17fb46ca08b009 - optee/optee_os/core/lib/zlib/inflate.h
341003df806d2bcfcbd194fc3f9da99919b918a9 - optee/optee_os/core/lib/zlib/inffast.h
8770ab43c9050b824c646f6e6cee8b3c0628cbda - optee/optee_os/core/lib/zlib/inffixed.h
1e0b1438feffed910661d48b2b793a5f7c308f06 - optee/optee_os/core/lib/zlib/zutil.c
00b226f75f6beab393031f6893b2868c707d0d0c - optee/optee_os/core/lib/zlib/inftrees.c
206b2054814df6c3f42f29c045d584c6a25c462f - optee/optee_os/core/lib/zlib/inflate.c
4192c931405d13fabed42ec8725255502d35fbcc - optee/optee_os/core/lib/zlib/zlib.h
8139ab5dd86e53ccbde7ba4e78200db4cd79f9a9 - optee/optee_os/core/lib/zlib/inftrees.h
36c4f51e48f8320621c5739dd2ee69ef0d973a21 - optee/optee_os/core/lib/zlib/gzguts.h
79b1451ee0197c749cd4f07450ed2d374f1c3cee - optee/optee_os/core/lib/scmi-server/scmi_server.c
619aa8e61beb89b2df060ca24485432e8269b5fd - optee/optee_os/core/lib/scmi-server/include/optee_scmi.h
c05559286b41f00c3815a047a26e80df6785a42b - optee/optee_os/core/mm/core_mmu.c
129dfa30ed6d0f01fa944600085cfb54b0dae9a0 - optee/optee_os/core/mm/mobj.c
7f4fbb1dbd7b0a4a78f67b449a3ec8ed6e2289b2 - optee/optee_os/core/mm/tee_mm.c
fbf52bc1a50fae147acaeca0138d7dc640a88275 - optee/optee_os/core/mm/pgt_cache.c
73be8d9cc10ccf4ecc646ab51ec17b8bbb51177c - optee/optee_os/core/mm/fobj.c
e7f04184eddb0da4969adfcbd5dd4a378d087fca - optee/optee_os/core/mm/vm.c
4c81a53362b3a07b1dabb5a197f0e3ec26117bee - optee/optee_os/core/mm/file.c
62bea91954c0b60ce398bcc52950deef1311beb8 - optee/optee_os/core/pta/device.c
b137817eff91658d19d1a479dee6a84dda10ccbc - optee/optee_os/core/pta/attestation.c
3ea15c610f4ecba8788d1055a06e13c3b6aeea5f - optee/optee_os/core/pta/scp03.c
4b7b26064a5527653817507ced6b5d36e09d75dd - optee/optee_os/core/pta/rtc.c
14015171ba8ab23dce63f6011ecd0899f08137c1 - optee/optee_os/core/pta/hwrng.c
4e1b614df9067b7a1f2158f1d5111c1925483f9b - optee/optee_os/core/pta/apdu.c
6a748b8c571c2b207c9db79b56b491192bf22379 - optee/optee_os/core/pta/gprof.c
a479d607c3f4dcbca4d5d1e9797340ef6e59131d - optee/optee_os/core/pta/scmi.c
b07d570bacd753a4f6c4ddd3730017971f2f9d85 - optee/optee_os/core/pta/widevine.c
8f532c3b41d08bdbee29cdf99e831e9a5652bd71 - optee/optee_os/core/pta/system.c
6284c967a1103f26724ff4dfe45af409bfbbf948 - optee/optee_os/core/pta/secstor_ta_mgmt.c
c8f8fa8bd161af69f46889e90966bef0ad018b68 - optee/optee_os/core/pta/stats.c
4c4029f19bf83df309ffd54d9d525c327ff8a7c7 - optee/optee_os/core/pta/tegra/jetson_ftpm_helper_pta.c
f04e7c33a8c114fd563d57de4d069c6cebd01e0f - optee/optee_os/core/pta/tegra/jetson_user_key_pta.c
9f086ff5817b522588e0b043af390b20bc659347 - optee/optee_os/core/pta/tegra/jetson_t234_decrypt_cpubl_payload.c
186b949fc854bc97be7883a0f85300a6113bce2c - optee/optee_os/core/pta/tegra/jetson_t194_decrypt_cpubl_payload.c
169bda07f69b89df46b79e7a085d3fc44595d2ec - optee/optee_os/core/pta/tegra/include/jetson_decrypt_cpubl_payload.h
c527ed81dee9ab0a7262d28f7a7318bfb152c4da - optee/optee_os/core/pta/tegra/include/jetson_user_key_pta_ftpm.h
434dbf013ffa6633ede1816527dfb82782c3db0d - optee/optee_os/core/pta/tegra/include/jetson_user_key_pta_compute_cmac.h
8c32652450144f8d62ba455a35cede26cedf44c3 - optee/optee_os/core/pta/tests/fs_htree.c
598beefd2c0b1d1ed3caf79b7ee3f6fd4315b410 - optee/optee_os/core/pta/tests/mutex.c
58a21a5d072a642b4650c67cc299e210a254d9fb - optee/optee_os/core/pta/tests/dt_driver_test.c
9d5f604852b526c4c03348962f3d622ead341452 - optee/optee_os/core/pta/tests/invoke.c
773d0fc2245c86d75271917a6eef93910cd5a5f2 - optee/optee_os/core/pta/tests/misc.h
a27586aab31e93cb9ce669c13e202c989d6f3e00 - optee/optee_os/core/pta/tests/lockdep.c
1828d31f10e6236e1f4f6c98f71f34b61827f092 - optee/optee_os/core/pta/tests/misc.c
b939d0c32959ac65dafe67f6019699ab4f194d94 - optee/optee_os/core/pta/tests/aes_perf.c
f76d93f72808e78fe854329128254e40a8ae64ef - optee/optee_os/core/pta/imx/digprog.c
9c77709e56621860013c067a19359bd3f2fb621c - optee/optee_os/core/pta/imx/manufacturing_protection.c
1141e0df408fb0977880fbd63e8a1575a2a81e8d - optee/optee_os/core/pta/imx/ocotp.c
fc52da8f6cfc83dc3606768cd703affc8029c2df - optee/optee_os/core/pta/imx/dek_blob.c
5b825d9894d2ed56396b487aaa3d994d6860b837 - optee/optee_os/core/pta/k3/otp.c
83d3b7f9616db0d5e42b621f55691ec5d505b4dc - optee/optee_os/core/pta/stm32mp/bsec_pta.c
8e4201b982761ca70f6155537299a9fbcdd9555e - optee/optee_os/core/pta/stm32mp/rproc_pub_key.h
e3cc7102b54ea2bb07693ad42f9497a44a93df51 - optee/optee_os/core/pta/stm32mp/remoteproc_pta.c
5d347d3376095cbc05c1ae47cb6d4ac6f74ef5b5 - optee/optee_os/core/pta/bcm/sotp.c
3a98f4eae781f4b50887b79395cb6cefbf957df3 - optee/optee_os/core/pta/bcm/gpio.c
92265a3a661a4862d09043e5c3ed8787895b4d23 - optee/optee_os/core/pta/bcm/bnxt.c
8accf96a33e318180c18fd79729c3476c4e4a567 - optee/optee_os/core/pta/bcm/hwrng.c
c53ce6db2d7519d9bd08c02472fe525fbb768a6c - optee/optee_os/core/pta/bcm/elog.c
1d96880636f5a98568edf08f68e5e4b38291da17 - optee/optee_os/core/pta/bcm/wdt.c
565af249a8ad523f04c21a52b091bb00f021d43d - optee/optee_os/core/tee/tee_cryp_utl.c
792b545f3897e6cf80b0b561c1f99382c02dafe1 - optee/optee_os/core/tee/tee_nvme_rpmb_fs.c
791192c3a090ffefe53650af896cb341e30c6552 - optee/optee_os/core/tee/tee_rpmb_fs.c
40a7130c87b8874c0ff3df4ba6d7ac5ecc7010a1 - optee/optee_os/core/tee/socket.c
3be470d597c40bff1ed4641b735cb7fef3dce6eb - optee/optee_os/core/tee/tee_ree_state.c
e8ee3f02aee406877da4da3ff36dacb130cfab40 - optee/optee_os/core/tee/tee_time_generic.c
a2028063632c8857bed15d993063a7fd353ee9c0 - optee/optee_os/core/tee/tee_cryp_hkdf.c
a1f3d00831693e2b21465993a0b88230998270fd - optee/optee_os/core/tee/fs_htree.c
8462217cd1216cdeb47261930203db704ccd4ed7 - optee/optee_os/core/tee/tee_svc.c
0cdf747942eaeec2f670e600d773b8d1143cc2e8 - optee/optee_os/core/tee/tee_fs_key_manager.c
5be8cb39c5a5a4e02648d219b3f67eacc9868f36 - optee/optee_os/core/tee/tee_ree_fs.c
53578bdbeb3107e8113102750cbc8d8861701bf8 - optee/optee_os/core/tee/tee_pobj.c
3264e7dee283facb91122a3be3a91c34300d49dd - optee/optee_os/core/tee/tee_svc_cryp.c
bbd20680e1d41ecf7f806411c32f0eac33c860f9 - optee/optee_os/core/tee/tee_supp_plugin_rpc.c
8fabba1dda1dee9af15b514f65afdae49ba948ff - optee/optee_os/core/tee/tadb.c
dc4bbc967130baa858c0d97bb72c8d16aeb961d8 - optee/optee_os/core/tee/entry_std.c
fc58bf53b6b42bf286bd64683b86c6d31dc3a517 - optee/optee_os/core/tee/tee_cryp_concat_kdf.c
4ca9c10d9b17380efab8d45d2de31948c98a16e5 - optee/optee_os/core/tee/tee_ta_enc_manager.c
e59e39dfb4986541318ae84e47f44e52afa20b12 - optee/optee_os/core/tee/tee_fs_rpc.c
a1202328842c81639257318e2047a9e13b1802c0 - optee/optee_os/core/tee/uuid.c
dd81c49e2b9da8f822e7246d08cecde9f28fc2a7 - optee/optee_os/core/tee/tee_cryp_pbkdf2.c
4c03723f4ad981f468207f5a6437352c5c87b0db - optee/optee_os/core/tee/tee_svc_storage.c
ee7b25818bd52227343d7f45f5ef5f725be9a89b - optee/optee_os/core/tee/tee_obj.c
d18ce49edc69a8027687b7b43c5d4d36c33cfac3 - optee/optee_os/core/tee/fs_dirfile.c
c62767343baa3f2bbf0bb384fa1feee2ff2784c5 - optee/optee_os/core/arch/riscv/mm/core_mmu_arch.c
a67134011a6bba88ca1207fbcbfe628c0ac0b4ba - optee/optee_os/core/arch/riscv/mm/tlb_helpers_rv.S
4065c59874a936748d321924f558ea342fae8947 - optee/optee_os/core/arch/riscv/tee/entry_fast.c
a141eda98aea803a64ff9542fcd8a574020b418a - optee/optee_os/core/arch/riscv/plat-virt/platform_config.h
159322372864ce9f888c412d5d39c84fda99e290 - optee/optee_os/core/arch/riscv/plat-virt/main.c
5f83776d0c7ce64d6d01df485fd353b7d1d20699 - optee/optee_os/core/arch/riscv/include/sbi.h
56bd7d4c065fb5932029bbc17b96d59a42f34270 - optee/optee_os/core/arch/riscv/include/riscv.h
1223e5cd29f4984ecabe36e78efe63b42f2bb84d - optee/optee_os/core/arch/riscv/include/riscv_macros.S
aaf4ec0db08de01b5e8012ce949710f9dcf0f993 - optee/optee_os/core/arch/riscv/include/encoding.h
f90a39605a177515f57172f8bfcac31468bec502 - optee/optee_os/core/arch/riscv/include/mm/generic_ram_layout.h
fd17c38c386b15bdb4e87b47c4a2fbc2a66e8171 - optee/optee_os/core/arch/riscv/include/mm/core_mmu_arch.h
291fa9f4f92f4c42ffc5713f505e357cd3d7e9c1 - optee/optee_os/core/arch/riscv/include/tee/optee_abi.h
3e29f4f935b7151c6a16978c5c3d956c8b1d3be2 - optee/optee_os/core/arch/riscv/include/tee/teeabi_opteed.h
5eaa1cef4d6a42985aca8a8308f4f1f732ce71b0 - optee/optee_os/core/arch/riscv/include/tee/teeabi_opteed_macros.h
b66cd21c1e374e71627820cd3c2a6621a7212f89 - optee/optee_os/core/arch/riscv/include/tee/entry_fast.h
0c4cbba16aac1f17267a36ecda588756cfd3277c - optee/optee_os/core/arch/riscv/include/kernel/clint.h
d331fbb22fc7d3164c7b2d0ba55f2fec013d9cf4 - optee/optee_os/core/arch/riscv/include/kernel/thread_private_arch.h
8cc637a0b1fa21930752c33d1cc58d647bc81179 - optee/optee_os/core/arch/riscv/include/kernel/arch_scall.h
826a1d5fe853d5d25e39ce6e66d577e479b11016 - optee/optee_os/core/arch/riscv/include/kernel/stmm_sp.h
9fe08ff654da68413ec097e684cf2d6a39de3b56 - optee/optee_os/core/arch/riscv/include/kernel/misc_arch.h
b3be5129fb98824666e9dbe5734dd1f811ab97d4 - optee/optee_os/core/arch/riscv/include/kernel/cache_helpers_arch.h
359cfc0da1c4cc03f466ebe78020a796e736dd55 - optee/optee_os/core/arch/riscv/include/kernel/user_access_arch.h
0152544509ec093752ad771824add96b3ed7a04c - optee/optee_os/core/arch/riscv/include/kernel/tee_l2cc_mutex.h
e363a3270c54efb0764aceaa2210b94a552269b1 - optee/optee_os/core/arch/riscv/include/kernel/tlb_helpers.h
b7fa8ca503a4c669510829a0aa242d662cb674f7 - optee/optee_os/core/arch/riscv/include/kernel/delay_arch.h
9ff069cbffd055e8fc24029279eafec7c295b34a - optee/optee_os/core/arch/riscv/include/kernel/secure_partition.h
f9ad119abcc0fb84ce214fa4cc0d9f507c860d7f - optee/optee_os/core/arch/riscv/include/kernel/thread_arch.h
f4d75a0309e2040dbb1ca13717a13dfa6be01e03 - optee/optee_os/core/arch/riscv/plat-spike/kern.ld.S
fbcbb1531e4e70ea9aad7289c3cda3efc1eed54f - optee/optee_os/core/arch/riscv/plat-spike/platform_config.h
944299de7735a170cb3eccd15eec91c07a5e7672 - optee/optee_os/core/arch/riscv/plat-spike/main.c
359b98fad7ce1225b5fb675394acb32df9e74380 - optee/optee_os/core/arch/riscv/plat-spike/drivers/htif.h
558db749b68778acc836e96fc170bc823ab0e441 - optee/optee_os/core/arch/riscv/plat-spike/drivers/htif.c
09e09dcb96e69d3d3ea89c3997d9340fe33f53da - optee/optee_os/core/arch/riscv/kernel/semihosting_rv.S
53456fe6fd16922b93fddbb3e177d68557843d5d - optee/optee_os/core/arch/riscv/kernel/tee_time_rdtime.c
b163d4b03cb454500769933734d6cfc2f5b50155 - optee/optee_os/core/arch/riscv/kernel/entry.S
ef752dba0afbc3441defa0ce7f596275e4eacdf6 - optee/optee_os/core/arch/riscv/kernel/idle.c
de03d1758884a3e0e0f7ea910139d312790963d1 - optee/optee_os/core/arch/riscv/kernel/arch_scall_rv.S
6543d720eb1111ece07baa5ef24e17f5166c3c66 - optee/optee_os/core/arch/riscv/kernel/thread_rv.S
b3ad33b5f5481b84a1a568cfec88d6bce78f4e40 - optee/optee_os/core/arch/riscv/kernel/thread_optee_abi.c
137070765c0c55bc0ad0e2a1c59919088ed69e85 - optee/optee_os/core/arch/riscv/kernel/arch_scall.c
0f43c49d2273009469484b2cc76a2b941e4d9d68 - optee/optee_os/core/arch/riscv/kernel/cache_helpers_rv.S
d7ea3b838aae7c777e6db63f192267e50bf10cec - optee/optee_os/core/arch/riscv/kernel/sbi_console.c
7c20c3e99ed3f34f87513b8b6648ce62062805f3 - optee/optee_os/core/arch/riscv/kernel/thread_optee_abi_rv.S
937e79d309f828a69b64d6998e80595aa1eea7b5 - optee/optee_os/core/arch/riscv/kernel/abort.c
9fc8bce83666ebb14ca70e1a2140db274ba5f0c1 - optee/optee_os/core/arch/riscv/kernel/thread_arch.c
848daa8b88efcef6b41ae9cd1598e5aa1d24574d - optee/optee_os/core/arch/riscv/kernel/asm-defines.c
0de310d21aaf90056a2327f208ed61a659cf483f - optee/optee_os/core/arch/riscv/kernel/sbi.c
df7133315b272219ed0615fbcd0b9f2770f8c32d - optee/optee_os/core/arch/riscv/kernel/unwind_rv.c
7f1c0c47cf8d4455d3bb56977982a34a008a7fbe - optee/optee_os/core/arch/riscv/kernel/spinlock.S
6309bad6a7c50cedfe6901944f520790b07f26b1 - optee/optee_os/core/arch/riscv/kernel/kern.ld.S
f3714d71c5a47d36649c0a35563b87efce775068 - optee/optee_os/core/arch/riscv/kernel/boot.c
4e0482b88d52f8a7d6adf974d0e5015f13872f65 - optee/optee_os/core/arch/arm/plat-rcar/hw_rng.c
15d328d6ef35c2f6a4c4f5a69f4eb2a571802c1c - optee/optee_os/core/arch/arm/plat-rcar/romapi_call.S
29cb5b650192d2e9a8bc4b01921c70539825e413 - optee/optee_os/core/arch/arm/plat-rcar/romapi.c
9ca9f50ac43c9276ee67375c8e915f0827e349d9 - optee/optee_os/core/arch/arm/plat-rcar/core_pos_a64.S
b713d037582ce7c9f21402a91665b067ed931ff7 - optee/optee_os/core/arch/arm/plat-rcar/rcar.h
f8a2662937d568146b977cdedf2e268e5b1f6b6e - optee/optee_os/core/arch/arm/plat-rcar/romapi.h
e5ec049ffef670a29b7cade4d9d9f96abef549f6 - optee/optee_os/core/arch/arm/plat-rcar/platform_config.h
d99c2594d96797d631564d55d1cec73d69073a16 - optee/optee_os/core/arch/arm/plat-rcar/main.c
105fcd115c8f37f13c3f1617c6e564dce1a1a50f - optee/optee_os/core/arch/arm/plat-stm32mp1/reset.S
41fc0d480726ccac287c2341b62956a102d2b134 - optee/optee_os/core/arch/arm/plat-stm32mp1/boot_api.h
166fbca392a757857b207b6a39177ebdae48c2a1 - optee/optee_os/core/arch/arm/plat-stm32mp1/stm32_util.h
4cd706376b2b8e9f29529251f6e8dd0f97b45a2d - optee/optee_os/core/arch/arm/plat-stm32mp1/link_dummies_paged.c
7a02cc2b686285ca057686052ccf437bc2441e81 - optee/optee_os/core/arch/arm/plat-stm32mp1/scmi_server.c
b2bae4d35241a08ab393a13a463719aacabe7159 - optee/optee_os/core/arch/arm/plat-stm32mp1/shared_resources.c
5b41538b0faeb38ba559f5e71fc8c7fb4b808593 - optee/optee_os/core/arch/arm/plat-stm32mp1/platform_config.h
ee9a76fa832621b03cd35d4e26d326eb11e278aa - optee/optee_os/core/arch/arm/plat-stm32mp1/plat_tzc400.c
92c2966c3109fd535677e7f5a34fd89106328ea6 - optee/optee_os/core/arch/arm/plat-stm32mp1/main.c
8e7e39483872171d059e87be0b70594fb8a2abaf - optee/optee_os/core/arch/arm/plat-stm32mp1/pm/psci.c
a1238faa3df41c0c66412e3b032255e1cd4988eb - optee/optee_os/core/arch/arm/plat-stm32mp1/scripts/stm32image.py
0c65b2a9483053f11245b70f723294b6d32fea5e - optee/optee_os/core/arch/arm/plat-stm32mp1/drivers/stm32mp1_syscfg.h
af1241bfcd71e1d8950df5ee76e9cd120d9a67e8 - optee/optee_os/core/arch/arm/plat-stm32mp1/drivers/stm32mp1_pwr.h
f1cfb11d1e643d8118b07e9de2b36797b20c4cc2 - optee/optee_os/core/arch/arm/plat-stm32mp1/drivers/stm32mp1_pwr.c
6f513d1b2ba687dd8a5d3d5b3942d070b8475b3f - optee/optee_os/core/arch/arm/plat-stm32mp1/drivers/stm32mp1_syscfg.c
0a5b02ff39cea084c1bafb0169edd9f4a643592b - optee/optee_os/core/arch/arm/plat-stm32mp1/drivers/stm32mp1_pmic.h
a3ac99fd762c9216188d37d084dd70008fbe1199 - optee/optee_os/core/arch/arm/plat-stm32mp1/drivers/stm32mp1_etzpc.h
8e140261281a08779ff3209432e4170bf4ea066b - optee/optee_os/core/arch/arm/plat-stm32mp1/drivers/stm32mp1_pmic.c
4e92814caf4d208f3424697ce4a54cbceba75632 - optee/optee_os/core/arch/arm/plat-stm32mp1/nsec-service/stm32mp1_svc_setup.c
536663cb01d75d67a4021fe8314c5ae79909dbd8 - optee/optee_os/core/arch/arm/plat-stm32mp1/nsec-service/stm32mp1_smc.h
e7ec6cb3b0018db5664ccd87d3ab1529e5d5713e - optee/optee_os/core/arch/arm/plat-stm32mp1/nsec-service/bsec_svc.h
d335d9bb50b2453d365ca88f3f18520fdd0a1086 - optee/optee_os/core/arch/arm/plat-stm32mp1/nsec-service/bsec_svc.c
81eaad1a97f464cb81867fe716edddc6a94c14a2 - optee/optee_os/core/arch/arm/plat-sam/platform_sama7g5.c
b04aabae313af1ab007337548c8d3c3340147467 - optee/optee_os/core/arch/arm/plat-sam/sam_sfr.c
05ae55b82f1b86db41cd5dec856b760b9cbac2db - optee/optee_os/core/arch/arm/plat-sam/sam_sfr.h
6bb95a72f4df9441141153c1f593d952cdbd5088 - optee/optee_os/core/arch/arm/plat-sam/platform_sama5d2.c
9e03ab42551128401c4786a75250b1db1cd4922d - optee/optee_os/core/arch/arm/plat-sam/sam_pl310.c
c85debf71cacdc0e53e262424984cec5fece885f - optee/optee_os/core/arch/arm/plat-sam/sama5d2.h
66bba258091108cedb62f43234a3e9fa874dbd85 - optee/optee_os/core/arch/arm/plat-sam/matrix.h
c6124d9de9443cdbc216ffbbe7eaa083e321867e - optee/optee_os/core/arch/arm/plat-sam/matrix.c
d452ceba090437688ae1658171bcda10e43263b4 - optee/optee_os/core/arch/arm/plat-sam/tz_matrix.h
087ee14fbb7d4606fe2f1b748c159783d18a6ec5 - optee/optee_os/core/arch/arm/plat-sam/scmi_server.c
cb565968e3bdcd440dd373b4b88bd1e995c64e08 - optee/optee_os/core/arch/arm/plat-sam/sama7g5.h
e41104fa5f74b992b4dbd859dd2a1b4b3b2bb913 - optee/optee_os/core/arch/arm/plat-sam/freq.c
48e145a8a02773f53e3afc68f9d44f1aab5f8be5 - optee/optee_os/core/arch/arm/plat-sam/platform_config.h
51975d5a6d4516cacb42fd70885043c1f8b6fbf1 - optee/optee_os/core/arch/arm/plat-sam/pm/psci.c
0dfa109395fbc4b3c968756ccf16d0e1d8cef554 - optee/optee_os/core/arch/arm/plat-sam/nsec-service/sm_platform_handler.c
c11e25489752cfc848301693c08dff59b589ed3f - optee/optee_os/core/arch/arm/plat-sam/nsec-service/smc_ids.h
49dbe1b862ab1676a3186ddc9f6c7650820902d7 - optee/optee_os/core/arch/arm/plat-totalcompute/platform_config.h
d07921192fb4097f0da3129fcfc442229f93154f - optee/optee_os/core/arch/arm/plat-totalcompute/main.c
00e4e12466db95649e17c7dce132fd03e23b837c - optee/optee_os/core/arch/arm/plat-totalcompute/fdts/optee_sp_manifest.dts
46a2594f3aa4681ffd83538ff397c8e3bf3974ca - optee/optee_os/core/arch/arm/plat-rockchip/grf.h
384be00889fd82aa785e7d07fa9f819c764557c4 - optee/optee_os/core/arch/arm/plat-rockchip/platform.h
82976a1c26f0098dc91782fdd667476feac53253 - optee/optee_os/core/arch/arm/plat-rockchip/platform_px30.c
24c8244ba3044caed1943ad05138413c6db6ab2e - optee/optee_os/core/arch/arm/plat-rockchip/platform_rk322x.c
e8c669f6cd515061ddc1fac878644149427040c8 - optee/optee_os/core/arch/arm/plat-rockchip/psci_rk322x.c
7993e64e5bfd2d72ce89ef822b3a49a1381e8c69 - optee/optee_os/core/arch/arm/plat-rockchip/platform.c
1853ca66ab2f40919fcb69448e1b866eb2bc9e4b - optee/optee_os/core/arch/arm/plat-rockchip/core_pos_a32.S
971d879311868f34f4ebf712ba6de5f9f0ea6f35 - optee/optee_os/core/arch/arm/plat-rockchip/plat_init.S
de4933508c95b4cc044fec515f190d8ff6ebfdc0 - optee/optee_os/core/arch/arm/plat-rockchip/common.h
b74b363d6e2a566d4a03278aaacaf9391d505a44 - optee/optee_os/core/arch/arm/plat-rockchip/cru.h
5c98cb66829c84f0e07676a8a66b6883c782b877 - optee/optee_os/core/arch/arm/plat-rockchip/platform_rk3399.c
86e640e06414afd26ad833d31867572408fd251a - optee/optee_os/core/arch/arm/plat-rockchip/platform_config.h
4d0bc50554ebec63e6fb62a4772b77b82ec501cd - optee/optee_os/core/arch/arm/plat-rockchip/main.c
a1a353aa32ebd77dd5c2966ff38e024d0e8938bb - optee/optee_os/core/arch/arm/plat-k3/platform_config.h
882cb529fe6df1cf2eed27c1d61be5069bf860a6 - optee/optee_os/core/arch/arm/plat-k3/main.c
6a4aeba37a7be60d63bfeff66846d3a0c9cfa796 - optee/optee_os/core/arch/arm/plat-k3/drivers/sa2ul_rng.c
167f0568d280c4eaa824b31126105d0f2a0d3f89 - optee/optee_os/core/arch/arm/plat-k3/drivers/ti_sci_protocol.h
96e780127fe944086f4e057b31baea9b2fa125e2 - optee/optee_os/core/arch/arm/plat-k3/drivers/sec_proxy.h
31bc4f9734a7ba434af482766846ba6cfc120a82 - optee/optee_os/core/arch/arm/plat-k3/drivers/sa2ul.c
7e9288bc18f6a5ae30fd66d3f04abd5a43971250 - optee/optee_os/core/arch/arm/plat-k3/drivers/ti_sci.h
2020136e5c1ef325c92bc319ebb5f582d8d1b447 - optee/optee_os/core/arch/arm/plat-k3/drivers/sa2ul.h
259f0d13481825cf2b56b06524f54b93aaf8abeb - optee/optee_os/core/arch/arm/plat-k3/drivers/sec_proxy.c
08166357e31dfc2ba303f00ae83b8bb6cfb13c3f - optee/optee_os/core/arch/arm/plat-k3/drivers/ti_sci.c
4210a13d7617d8becb16ca879152a64ba12e99a5 - optee/optee_os/core/arch/arm/dts/sama5d2.dtsi
abbe0e5a7c63995c207b1995649e3a6ed6b4221a - optee/optee_os/core/arch/arm/dts/stm32mp15xc.dtsi
d6dbda8b14af74b3a63db810c4c4ed53bfb097bc - optee/optee_os/core/arch/arm/dts/stm32mp15xx-dhcom-som.dtsi
80e5d5425cd21aaac73665beba3aa827a985f10e - optee/optee_os/core/arch/arm/dts/stm32mp13-pinctrl.dtsi
d23af59b64d5380f6f9c8ca37a1a5b1af3e9f93c - optee/optee_os/core/arch/arm/dts/at91-sama5d27_som1_ek.dts
41aa3da18dcb49b316aefc9ad5eed7dc2664dabc - optee/optee_os/core/arch/arm/dts/stm32mp157c-ev1.dts
23b592b2e03dead1636f2110cd64531ec92bf807 - optee/optee_os/core/arch/arm/dts/stm32mp133.dtsi
6785fab64335569d7bd355648ab3eea10428ba95 - optee/optee_os/core/arch/arm/dts/stm32mp135f-dk.dts
6ed7397e2751cabb21fc7e87b53983b9117d2e26 - optee/optee_os/core/arch/arm/dts/sama5d2-pinfunc.h
ff54b38797ff11d07b4812b54de0c54381e5c944 - optee/optee_os/core/arch/arm/dts/stm32mp255.dtsi
ed24a9b0089183c2059975547510395e1e35c43f - optee/optee_os/core/arch/arm/dts/stm32mp257f-ev1-ca35tdcid-rif.dtsi
361479ac7684841706aca2fdb4c3d2c9f8e0e13e - optee/optee_os/core/arch/arm/dts/stm32mp15xxac-pinctrl.dtsi
409d4ed71faffbe877746442e5f91e568dc7df1e - optee/optee_os/core/arch/arm/dts/stm32mp25xxai-pinctrl.dtsi
c801e4c35f00786835f0cd63b71559a146086866 - optee/optee_os/core/arch/arm/dts/stm32mp15xx-dhcor-io1v8.dtsi
ed30a800e2e2a388fbecc51158b47a9cc3921038 - optee/optee_os/core/arch/arm/dts/stm32mp157c-dk2.dts
d631d38e887afb5747ac43a31fbfa52feff971c1 - optee/optee_os/core/arch/arm/dts/fsl-lx2160a.dtsi
731b9a6acef7c38b916dc026ccdb6d9fab7a7528 - optee/optee_os/core/arch/arm/dts/stm32mp25-pinctrl.dtsi
db15a31ad3135aacca1c525a09c102593c0f1bfb - optee/optee_os/core/arch/arm/dts/stm32mp157a-dk1-scmi.dts
6c18e9690a909c9b4898d1d609cdf3874e22d19a - optee/optee_os/core/arch/arm/dts/stm32mp15xx-dhcor-avenger96.dtsi
d26bbcf985b7523a6af715be4feb22233be74ba5 - optee/optee_os/core/arch/arm/dts/stm32mp15xxaa-pinctrl.dtsi
fb4be0e25bdca79fcf443034897f81e669e42d88 - optee/optee_os/core/arch/arm/dts/fsl-lx2160a-qds.dts
642045067c7bfc99b19f317cb3af060f111d3f58 - optee/optee_os/core/arch/arm/dts/stm32mp131.dtsi
0c1276612681bf9f22517513242e678c22551542 - optee/optee_os/core/arch/arm/dts/stm32mp153.dtsi
8b0ff69354da1ce17daa0d18c67f38fdd3bcdd7c - optee/optee_os/core/arch/arm/dts/stm32mp135.dtsi
fad0980d9bf80c0fc0a8dc20548c3d6d65a9c4ee - optee/optee_os/core/arch/arm/dts/stm32mp257.dtsi
414473317258a6e6a9fe63c8f9b0125faf78845b - optee/optee_os/core/arch/arm/dts/stm32mp253.dtsi
d8011a03e68d20864da688cd4e37f5f00fceb92c - optee/optee_os/core/arch/arm/dts/stm32mp15xx-dkx.dtsi
cc1a5787a5c707145c1d43a2dafde4081469219f - optee/optee_os/core/arch/arm/dts/stm32mp15-pinctrl.dtsi
e793accc60529af1c41651063de57ef9cd0a0b5e - optee/optee_os/core/arch/arm/dts/stm32mp157a-dhcor-avenger96.dts
af297633ee1dd3ddc9a4e06782e0390214b9c3dd - optee/optee_os/core/arch/arm/dts/stm32mp251.dtsi
c07147cb14bc871e069f3be8248fc2c79e311949 - optee/optee_os/core/arch/arm/dts/stm32mp15xxad-pinctrl.dtsi
6f054373484e9a7e6b398ac064c824e838b666e0 - optee/optee_os/core/arch/arm/dts/at91-sama7g54_ek.dts
1985ea8670dc7c7937541f6b2da9c30c41ee000d - optee/optee_os/core/arch/arm/dts/at91-sama5d27_wlsom1.dtsi
62934ca38185da79af035ba4a82f62ae3a33f4ac - optee/optee_os/core/arch/arm/dts/hikey.dts
e4fa73abdd45e453c0b16f0617ff2e73f505c20d - optee/optee_os/core/arch/arm/dts/stm32mp25xc.dtsi
9d307000551e74012b0ab3eecedcce5e21315f12 - optee/optee_os/core/arch/arm/dts/stm32mp25xxal-pinctrl.dtsi
28f113e9a075bf7903cddddaacfda1cbe77f6947 - optee/optee_os/core/arch/arm/dts/stm32mp151.dtsi
ce82c06ac99261e680a62585d80c90e9dfe941fb - optee/optee_os/core/arch/arm/dts/stm32mp157c-dhcom-pdk2.dts
9d307000551e74012b0ab3eecedcce5e21315f12 - optee/optee_os/core/arch/arm/dts/stm32mp25xxak-pinctrl.dtsi
ad3b5f3ede872c44e014eb6ca5a69329195968a6 - optee/optee_os/core/arch/arm/dts/at91-sama5d27_wlsom1_ek.dts
676f90d7c25eb035af4475d83d6e355f07ac0634 - optee/optee_os/core/arch/arm/dts/embedded_dtb_test.dts
d7230a1568081b9a39b151bbe38f188691b2b84b - optee/optee_os/core/arch/arm/dts/fsl-lx2160a-rdb.dts
b90fd277b20c2235559780745427fce254204eb5 - optee/optee_os/core/arch/arm/dts/sama7g5-pinfunc.h
e4c09d7943a625db6187d1b74f0990a9918b7663 - optee/optee_os/core/arch/arm/dts/dt_driver_test.dtsi
c8ec256ae55cb6c849aa51624b9974259884b159 - optee/optee_os/core/arch/arm/dts/at91-sama5d2_xplained.dts
e4fa73abdd45e453c0b16f0617ff2e73f505c20d - optee/optee_os/core/arch/arm/dts/stm32mp25xf.dtsi
0740af056d7271572901b9dc8ed2822af6546c20 - optee/optee_os/core/arch/arm/dts/stm32mp13xc.dtsi
8275c3486f497663a76c22d5ef4895c0c6ef6721 - optee/optee_os/core/arch/arm/dts/stm32mp157c-ed1-scmi.dts
9dea507c72c9eec09336578711a432b198478a56 - optee/optee_os/core/arch/arm/dts/at91-sama5d27_som1.dtsi
e4418357621a953d3e4b62676dcd52da1e958777 - optee/optee_os/core/arch/arm/dts/stm32mp157a-dk1.dts
0740af056d7271572901b9dc8ed2822af6546c20 - optee/optee_os/core/arch/arm/dts/stm32mp13xf.dtsi
ce5455a1f2afa724bbdec2b0c14f79a6bed0b1e4 - optee/optee_os/core/arch/arm/dts/stm32mp257f-ev1.dts
bceeab3e2319f80b613c6ccaefc42154a2d76148 - optee/optee_os/core/arch/arm/dts/stm32mp157c-ev1-scmi.dts
1b30098b442b7f3ded006ca7b7e80e963cc9fc6f - optee/optee_os/core/arch/arm/dts/stm32mp157c-dk2-scmi.dts
9f93f18baccbb7718af6c571e70dfecb3529b694 - optee/optee_os/core/arch/arm/dts/stm32mp15xxab-pinctrl.dtsi
b318d72ed3eee6e4bd7d8ecdb5b1eba8dfc31f89 - optee/optee_os/core/arch/arm/dts/stm32mp157.dtsi
5af1e6fee13bee69410732af10981f063661c519 - optee/optee_os/core/arch/arm/dts/stm32mp157c-ed1.dts
0cc38427ae1b225d88d000f9438b7cc34e883b30 - optee/optee_os/core/arch/arm/dts/stm32mp15xx-dhcom-pdk2.dtsi
6cec48599b2381a43a302f390c48d557ba064697 - optee/optee_os/core/arch/arm/dts/sama7g5.dtsi
0f41a6ee8e489bec0d79a976edb540945506d498 - optee/optee_os/core/arch/arm/dts/stm32mp15xx-dhcor-som.dtsi
9c453b2fc11aaa02877de7f09472e5d5fd74cbea - optee/optee_os/core/arch/arm/mm/mobj_ffa.c
864e848f1defa3de1e5572ca3d95b4e44792d0f8 - optee/optee_os/core/arch/arm/mm/core_mmu.c
0800ed2cdb60a7e006e239b48c9a13db03283eb9 - optee/optee_os/core/arch/arm/mm/mobj_dyn_shm.c
feeeaeae7f26fdd8673fba9c1c90c5997766aad6 - optee/optee_os/core/arch/arm/mm/core_mmu_lpae.c
57677b0d6e625b07083889d81e304b9c700c5c13 - optee/optee_os/core/arch/arm/mm/tee_pager.c
e6f86e9d7f1972ae55f5ca9938620da5246c59b8 - optee/optee_os/core/arch/arm/mm/sp_mem.c
48384d9c72c1c7a6dd5c2b5395d330221188e699 - optee/optee_os/core/arch/arm/mm/core_mmu_v7.c
ac0abfb473091ac6c14804be7ef4894e137990ee - optee/optee_os/core/arch/arm/plat-mediatek/platform_config.h
4af0e09221ce2161556eec932ee5c97df9943156 - optee/optee_os/core/arch/arm/plat-mediatek/main.c
e1fca0dd2d7d34c4bab110dfb24010cbd1538b8d - optee/optee_os/core/arch/arm/tee/entry_fast.c
df18a9464597e6dbc2844ec1e5d735db00c74f37 - optee/optee_os/core/arch/arm/tee/svc_cache.c
176317554a2541fa4a9d6504dbe52227bdcb5083 - optee/optee_os/core/arch/arm/tee/cache.c
6631e40f0ad62f389ac0fc0c59e142b9313bb246 - optee/optee_os/core/arch/arm/plat-aspeed/core_pos_a32.S
c2a044439dfe43a71ae10d3b6dac3011aa488674 - optee/optee_os/core/arch/arm/plat-aspeed/platform_ast2600.c
70fb1d819f629339d313a83ea0f8efa6e4fa80ca - optee/optee_os/core/arch/arm/plat-aspeed/platform_ast2700.c
b8d3a5d517e206505803d023df167bb48a6eacb5 - optee/optee_os/core/arch/arm/plat-aspeed/platform_config.h
1046d8e53fbfdcc9ffd8a63a012cccfb40cafacf - optee/optee_os/core/arch/arm/plat-tegra/tegra_common.h
798efa99d464a96c2b70639a3c25ba14f618c29b - optee/optee_os/core/arch/arm/plat-tegra/README.tegra_secure_storage
194b1c2efb4a1b60d27d88813f6317cca0a978ce - optee/optee_os/core/arch/arm/plat-tegra/platform_config.h
d448b3370e0f8e7cbe52eefd2d149899a6ab0860 - optee/optee_os/core/arch/arm/plat-tegra/main.c
390b45a60cc4219e64e58f0ca0ea2890dc31a351 - optee/optee_os/core/arch/arm/plat-vexpress/vendor_props.c
178685f16c79b3f0dd48d1b8fb551d428ab67b68 - optee/optee_os/core/arch/arm/plat-vexpress/juno_core_pos_a32.S
cbbb4b7ba94d66daba35e4e8de0e1ea8f3975534 - optee/optee_os/core/arch/arm/plat-vexpress/juno_core_pos_a64.S
00d480f375e00da8a39d12face3416dc339d7205 - optee/optee_os/core/arch/arm/plat-vexpress/platform_config.h
baaed900d9ea88c65994dfc76dbe982ffbbfb5ad - optee/optee_os/core/arch/arm/plat-vexpress/main.c
c043a9411306559a982b5d09ae419821ff026bd0 - optee/optee_os/core/arch/arm/plat-uniphier/kern.ld.S
11ce785f6bdd56fdc8b32c6c2174a9b49b96b230 - optee/optee_os/core/arch/arm/plat-uniphier/platform_config.h
2c699c471ccb146cc88b3899204cbdd9d4fd82d6 - optee/optee_os/core/arch/arm/plat-uniphier/main.c
1cea08afcf4cab7bbff31ea3666c5360c4c03498 - optee/optee_os/core/arch/arm/include/arm32_macros_cortex_a9.S
236e177873dbb765f512f6690ca9df800109edb4 - optee/optee_os/core/arch/arm/include/arm64.h
c24a0141912421b79a8ecb62ec4ee5d10c8f5d11 - optee/optee_os/core/arch/arm/include/arm32.h
55298b41d3e8800e2aeebd746e9e1371142fbd6e - optee/optee_os/core/arch/arm/include/smccc.h
12dc0bca72b62cb9e340cb631b2cbab3bf9b26fc - optee/optee_os/core/arch/arm/include/arm64_macros.S
ff294f026e09453cbd1ffb3cbc764befc573676c - optee/optee_os/core/arch/arm/include/arm32_macros.S
33a023b2aefc347327909bc18584a5a7f7c96d5f - optee/optee_os/core/arch/arm/include/arm.h
6f4f3bf783228669c7e3f15094154e9affc48745 - optee/optee_os/core/arch/arm/include/optee_ffa.h
ef7bffd960c06d3d1f3248123500188bfb08cd13 - optee/optee_os/core/arch/arm/include/pta_stmm.h
4a7c4dda42996356c37cb094d4908f62d0ab1bd4 - optee/optee_os/core/arch/arm/include/ffa.h
33da86787f5ed31b247e1b8f9b33f6e4346fe53f - optee/optee_os/core/arch/arm/include/mm/generic_ram_layout.h
79775424a3d2afb3c555a91a210974e20db667ca - optee/optee_os/core/arch/arm/include/mm/core_mmu_arch.h
36508e4fbdf66e9683c7425ff68edf20b89d4243 - optee/optee_os/core/arch/arm/include/tee/entry_fast.h
4771b6a98c18654bdf73d522fbadb6ba28acb94f - optee/optee_os/core/arch/arm/include/sm/teesmc_opteed.h
b99db7102beabc3103377efbcd2cb4f144d615f6 - optee/optee_os/core/arch/arm/include/sm/watchdog_smc.h
913aa87cc293d3fcebd5bb787ee5da1e8af74be2 - optee/optee_os/core/arch/arm/include/sm/std_smc.h
f98998e892ec280bcd9da125164c5462995da079 - optee/optee_os/core/arch/arm/include/sm/teesmc_opteed_macros.h
d135a39b3545929f32e6c75c5c6ee45eb44e5a30 - optee/optee_os/core/arch/arm/include/sm/optee_smc.h
c3cff2cbe62224e1869a92e1b246525bab44944c - optee/optee_os/core/arch/arm/include/sm/pm.h
28cac67ced3db8dcaccca1fe953dde17f3401ba9 - optee/optee_os/core/arch/arm/include/sm/psci.h
eb652901568dbd1107a5a134f53d5741b458f453 - optee/optee_os/core/arch/arm/include/sm/sm.h
52885058120498a8199e4cb48f05ed7a3e6ed510 - optee/optee_os/core/arch/arm/include/kernel/thread_private_arch.h
b3b756fb7bc39e3f2db4127b0ae7461715f6b08b - optee/optee_os/core/arch/arm/include/kernel/spmc_sp_handler.h
daca510172fc09d7f8395b9e4700f1e76edd9629 - optee/optee_os/core/arch/arm/include/kernel/thread_spmc.h
34937789ac227f638211cfec7cb102dcffe2e120 - optee/optee_os/core/arch/arm/include/kernel/tz_ssvce_def.h
2360143179a1f2cfd4a3cbbbc03448bb6790d698 - optee/optee_os/core/arch/arm/include/kernel/arch_scall.h
b95d779051d2b0e70152491dc1046ef721584d7a - optee/optee_os/core/arch/arm/include/kernel/stmm_sp.h
2cb8761a88828b0812171b4a8fb7fc6338baa169 - optee/optee_os/core/arch/arm/include/kernel/misc_arch.h
59802332e69d96bb3641667a395d02f3c2fcd82f - optee/optee_os/core/arch/arm/include/kernel/cache_helpers_arch.h
621b56388a4696754f95b4599e1822d9a34a412c - optee/optee_os/core/arch/arm/include/kernel/vfp.h
bcf79acc39a9f4ce8fdd50e3929bba0bceaf33aa - optee/optee_os/core/arch/arm/include/kernel/user_access_arch.h
9723fb1cc272c7203c2e914cc6186ae2098e80bf - optee/optee_os/core/arch/arm/include/kernel/tee_l2cc_mutex.h
524a5a3c2a8e9d1c2d5a74c054a5465f28328abf - optee/optee_os/core/arch/arm/include/kernel/tz_proc_def.h
787920f87e2f8f5b90ab5a7dbb652cdcac005aa8 - optee/optee_os/core/arch/arm/include/kernel/tlb_helpers.h
bd02afc86bd0e2a2d5b96382da5b08872e3704b3 - optee/optee_os/core/arch/arm/include/kernel/delay_arch.h
ccc12fd93eb51399e2102d7549c3460ce011b98e - optee/optee_os/core/arch/arm/include/kernel/tz_ssvce_pl310.h
88697bcdf5234c2ad97597d4455f819c4c13797e - optee/optee_os/core/arch/arm/include/kernel/secure_partition.h
c36bfdcd6ad5e85e7f084678b7dc5595db7639ae - optee/optee_os/core/arch/arm/include/kernel/thread_arch.h
9397b11c32fdff7d6f2fb9203459b016a3dc0861 - optee/optee_os/core/arch/arm/include/crypto/ghash-ce-core.h
c020f068ad8593457e743ff0430d6a3cd685e142 - optee/optee_os/core/arch/arm/include/scmi/scmi_server.h
6c637d1038773281e56bbbd0e1381510508531cd - optee/optee_os/core/arch/arm/plat-synquacer/rng_pta.c
b1b7de5b516440a686f80083730d8a139d7cad97 - optee/optee_os/core/arch/arm/plat-synquacer/synquacer_rng_pta.h
596136d3b40cd1cbae47d4ed48a5b4d246e08dfe - optee/optee_os/core/arch/arm/plat-synquacer/platform_config.h
63b965066fdfe0c218542a9cc90635f1177300d8 - optee/optee_os/core/arch/arm/plat-synquacer/main.c
dd54ce3d620f2b22180ef201aeecf74b5b4480ad - optee/optee_os/core/arch/arm/plat-rzg/platform_config.h
8c4023604f9a8209cc2f3fbc55da146ee176f62e - optee/optee_os/core/arch/arm/plat-rzg/main.c
435d5321e6d484c095ede7a5b320ec92fddb3025 - optee/optee_os/core/arch/arm/plat-bcm/bcm_elog.c
3d4f18ba7a9634be9a46f900264cb0132fd65654 - optee/optee_os/core/arch/arm/plat-bcm/bcm_elog.h
db3ddcb5c48ff30c64e8b561ed5300400d67bca1 - optee/optee_os/core/arch/arm/plat-bcm/crc32.c
92cb86eafac038fc02be252efc14c3e3316f27af - optee/optee_os/core/arch/arm/plat-bcm/crc32.h
0b99d0c7135e7f0002ef7a51d63461307e66203b - optee/optee_os/core/arch/arm/plat-bcm/platform_config.h
43a45ac90d01fd0045318dc972f78f0bf1b526ba - optee/optee_os/core/arch/arm/plat-bcm/main.c
d15ae1ce071edbfc8d4d4de7c944cb1d8712136e - optee/optee_os/core/arch/arm/sm/sm.c
0fbfd45981f9512d688a49c32add4297540c689e - optee/optee_os/core/arch/arm/sm/pm_a32.S
bbd1df35108340d6d4e6179926681fb794f8ce12 - optee/optee_os/core/arch/arm/sm/sm_private.h
9421c26b6ce38f1d5da0e2f431afc0cab732f0e6 - optee/optee_os/core/arch/arm/sm/std_smc.c
79b02c9017b471e73d8c11acc7f91278ec851f2b - optee/optee_os/core/arch/arm/sm/pm.c
615d9401894c37dec5e5ebe9bcdb678df854564e - optee/optee_os/core/arch/arm/sm/psci-helper.S
45960371e7a1224c4d067ff3c172952b7d616998 - optee/optee_os/core/arch/arm/sm/sm_a32.S
8a9cd4bad5748dac76110944be1fb3442e98b2f6 - optee/optee_os/core/arch/arm/sm/psci.c
e2b43db2de0208697b4c88f2f0562d58a4b0b2fb - optee/optee_os/core/arch/arm/plat-d02/platform_config.h
64f5feb8d512291b20a4f975aaf809383b8501f9 - optee/optee_os/core/arch/arm/plat-d02/main.c
2a0bf39e0ef3f1dfa764058f0142b54a53a92006 - optee/optee_os/core/arch/arm/plat-ti/api_monitor_index_a9.h
ec14532de7ea2afbf4bb14220372faf052e0d77c - optee/optee_os/core/arch/arm/plat-ti/sm_platform_handler_a9.c
537927d745de820a0b09ef12a56515a53e68bcef - optee/optee_os/core/arch/arm/plat-ti/sm_platform_handler_a15.c
c3c107d238f7f96e38416cbd2ce783cb5c5231be - optee/optee_os/core/arch/arm/plat-ti/ti_pl310.c
188877287aafc257998231f234a1a79a4886c0af - optee/optee_os/core/arch/arm/plat-ti/a9_plat_init.S
f185f9e1ea859d9f4233cffc8c78fcbe72e4c090 - optee/optee_os/core/arch/arm/plat-ti/platform_config.h
9925b7637fef70a5a09336acc3facf8f32a968cc - optee/optee_os/core/arch/arm/plat-ti/main.c
608a97cee50965f940169862e6754dd17612fadf - optee/optee_os/core/arch/arm/plat-ti/api_monitor_index_a15.h
8fa033ec5237e06aef907c0f641f208388793c26 - optee/optee_os/core/arch/arm/plat-poplar/hi3798cv200.h
d4139567b62848e1c43b6759cd767e034e10db73 - optee/optee_os/core/arch/arm/plat-poplar/platform_config.h
65c024516806f7b43dd1ecc361e617bb25fa8a7a - optee/optee_os/core/arch/arm/plat-poplar/main.c
da5b397448c96664ff0d89282edbecf39150b736 - optee/optee_os/core/arch/arm/kernel/generic_timer.c
8ebc782c56e8a49cbb1a1842f396de645f1f46a7 - optee/optee_os/core/arch/arm/kernel/cache_helpers_a32.S
96a20985eac7f15b591f72bdd3a413deab7bed66 - optee/optee_os/core/arch/arm/kernel/thread_spmc.c
6fd7aa6291ba867b69684437a7dd5bb5a7bf35f0 - optee/optee_os/core/arch/arm/kernel/tee_time_arm_cntpct.c
cfe9209c0f08602f20df8752df4016c257305627 - optee/optee_os/core/arch/arm/kernel/vfp.c
170f9fade8d4cfd3805f2aa2383b7f3d358507df - optee/optee_os/core/arch/arm/kernel/idle.c
0dafbe192d55bfc13650b4d9b06857d1b515e38d - optee/optee_os/core/arch/arm/kernel/cache_helpers_a64.S
99dbd4c6ced9d21fbf6db2c3e7c6755d8c6bce28 - optee/optee_os/core/arch/arm/kernel/vfp_a32.S
07324ee362ff4d159fdf6bce6b0b02e8e78b88c4 - optee/optee_os/core/arch/arm/kernel/arch_scall.c
a3d562edc0d696f64d77e9c96d86c9a88451b5a1 - optee/optee_os/core/arch/arm/kernel/vfp_private.h
5e41ac280fa605fa56477c6e9667c7421ae832c1 - optee/optee_os/core/arch/arm/kernel/thread_optee_smc_a64.S
d347c9bafe24140b9717de8891d9659b01333e07 - optee/optee_os/core/arch/arm/kernel/arch_scall_a32.S
4ee8f8d86109824375f2cc97d335f68da3fdaa62 - optee/optee_os/core/arch/arm/kernel/tlb_helpers_a64.S
c591321644c6fd32d600a9a797daf4cdc48647d2 - optee/optee_os/core/arch/arm/kernel/spin_lock_a64.S
fd41f03a86b219928984dc3153a10bd5702fcca3 - optee/optee_os/core/arch/arm/kernel/spmc_sp_handler.c
a0adb6240ef123f1b7a7d5c06d1f43bbe84ab420 - optee/optee_os/core/arch/arm/kernel/stmm_sp.c
b4d64fa787d883488032c460e9bdd9219c8b7e6b - optee/optee_os/core/arch/arm/kernel/link_dummy.ld
ab6654f9a53a145c7e2bc78923bed0bc0657bfe3 - optee/optee_os/core/arch/arm/kernel/thread_a64.S
d5860b562cc073c556bae2a7af9a7e1eb58a120f - optee/optee_os/core/arch/arm/kernel/thread_optee_smc_a32.S
f5f53c7818eac3cb9a438d50e42b970aa59256a0 - optee/optee_os/core/arch/arm/kernel/virtualization.c
3bc11c7750b18f421431d5d75da90d8db8f968e8 - optee/optee_os/core/arch/arm/kernel/entry_a64.S
af8d99e369132adac450a89f4b07fbbada85156d - optee/optee_os/core/arch/arm/kernel/misc_a64.S
4100714c5da0ab3a043f026f768aa0f42963f0f7 - optee/optee_os/core/arch/arm/kernel/link_dummies_paged.c
dee3ef20e88a64d3e5c6a703b7e499cf302b0d3e - optee/optee_os/core/arch/arm/kernel/abort.c
7926173ef40ab1dffbd3b48ff3aa6da3fc04408c - optee/optee_os/core/arch/arm/kernel/asm-defines.c
24e1db339b48a73b6aaafcfca9047c7855896faf - optee/optee_os/core/arch/arm/kernel/rpc_io_i2c.c
da59d8db4ac8cd365ffd09d040ddc2a6ecab1d06 - optee/optee_os/core/arch/arm/kernel/thread_optee_smc.c
cff200d2106d26baf930f16e6caa8634adebbe08 - optee/optee_os/core/arch/arm/kernel/vfp_a64.S
8430d6b00cd4f9685acc4a7635286460c6c6656b - optee/optee_os/core/arch/arm/kernel/entry_a32.S
f41ca1e85c2faac131a78224385cef504fa5fb20 - optee/optee_os/core/arch/arm/kernel/tlb_helpers_a32.S
5ccfc6d56a72745aa30a58576530f6a552424dd9 - optee/optee_os/core/arch/arm/kernel/secure_partition.c
44470d3e7b9cdbed041ae13408e647edc645aa74 - optee/optee_os/core/arch/arm/kernel/misc_a32.S
8e7f44c940c10653f99ce491cc9ee014042dd270 - optee/optee_os/core/arch/arm/kernel/tz_ssvce_pl310_a32.S
4eb9e4b6f2b6b8f595acf22a683d831fee0ef40f - optee/optee_os/core/arch/arm/kernel/unwind_private.h
b5ebdeae94cfe7fd7a32f0be15e8a28b230cd175 - optee/optee_os/core/arch/arm/kernel/tee_l2cc_mutex.c
db8f47350612f3b8a6329c86401fdd3f68deea35 - optee/optee_os/core/arch/arm/kernel/timer_a64.c
9447a2f925a8c4a712433747c0b99e00733645d3 - optee/optee_os/core/arch/arm/kernel/semihosting_a64.S
63ea63ab5d506208970d6f5b8738ee82850aefe3 - optee/optee_os/core/arch/arm/kernel/unwind_arm32.c
9d0bd8480809254b743bf3d766efe7c3cdc70034 - optee/optee_os/core/arch/arm/kernel/kern.ld.S
af2646c2f7bed754eace205139dfe421ab8bd3a5 - optee/optee_os/core/arch/arm/kernel/thread_a32.S
288600f47bcdb1589b53bf9f9679cd62fc048b35 - optee/optee_os/core/arch/arm/kernel/thread.c
599bd7fb683e3e1c0eddc71e66e5eb979e8e7c28 - optee/optee_os/core/arch/arm/kernel/spin_lock_a32.S
9e422c03938a8b32edd015a653d5dac29880a5e2 - optee/optee_os/core/arch/arm/kernel/unwind_arm64.c
d6c09e6c39b889a25fcb82340f1725f9d0427d59 - optee/optee_os/core/arch/arm/kernel/arch_scall_a64.S
429869efe81ea182c117279b62d84611f6c67d9e - optee/optee_os/core/arch/arm/kernel/thread_spmc_a64.S
4d984b5505df1222904d25ec03a4521297c86119 - optee/optee_os/core/arch/arm/kernel/boot.c
85841b19544e59c0896f7c344b4695e129135d4e - optee/optee_os/core/arch/arm/kernel/link_dummies_init.c
43dcd40dee8c1bca63526b7590768c430e2b9eb4 - optee/optee_os/core/arch/arm/plat-corstone1000/platform_config.h
a2bbb6d8467a57da3e214024d754db8c39773688 - optee/optee_os/core/arch/arm/plat-corstone1000/main.c
eba718605aa45932a4b80632aa65d8cb35dc2b22 - optee/optee_os/core/arch/arm/plat-versal/platform_config.h
bfcf05746b3abe951fa87eae66701a8f965aa611 - optee/optee_os/core/arch/arm/plat-versal/main.c
095caecf26786efe69779aab593c67447f44b9c2 - optee/optee_os/core/arch/arm/plat-ls/plat_init.S
f413d0ba2e04b6ef2802475a9132687b2f19237a - optee/optee_os/core/arch/arm/plat-ls/platform_config.h
13868e401113be9ac3e66fcf65079f44ea2bacc5 - optee/optee_os/core/arch/arm/plat-ls/main.c
94a132cb905aa39756cd3bd0c4cd0bb955893219 - optee/optee_os/core/arch/arm/plat-amlogic/platform_config.h
c361b974a831b2e73783b393d9d3893180fcd1af - optee/optee_os/core/arch/arm/plat-amlogic/main.c
b1793c2149008cfc5c242a3fbbfcdfecfb082b4b - optee/optee_os/core/arch/arm/plat-amlogic/scripts/aml_bin2img.py
2399244b8020942c1b3a3cb924194e8770560051 - optee/optee_os/core/arch/arm/plat-sunxi/plat_init.S
eaa619f9de58ee047ca541b4c238b2afb5b83b6a - optee/optee_os/core/arch/arm/plat-sunxi/psci.c
4e93d8d25766b05b285896a4944c227f8b4da442 - optee/optee_os/core/arch/arm/plat-sunxi/platform_config.h
e88f1ed007545a2d9bad93b2b4339ad8b3495d1c - optee/optee_os/core/arch/arm/plat-sunxi/main.c
bf4be1dd46e6278e5b9b8b6a40b710d90007d915 - optee/optee_os/core/arch/arm/plat-hisilicon/hi3519av100_plat_init.S
92415c6775326559b08df1d2a9976b3e1ebb0a72 - optee/optee_os/core/arch/arm/plat-hisilicon/psci.c
012cc9cc5cd4d1213266d657558cd6c1fb998e1f - optee/optee_os/core/arch/arm/plat-hisilicon/platform_config.h
1e0932868e4fc72946b4b12a3650c383dcdd7a79 - optee/optee_os/core/arch/arm/plat-hisilicon/hi3519av100.h
a8c72f869ba4905a042677386935fe5f89594db8 - optee/optee_os/core/arch/arm/plat-hisilicon/main.c
2d7ce0ada1137b16132294b438cf80dc592fc2d2 - optee/optee_os/core/arch/arm/plat-stm32mp2/stm32mp_pm.c
409ab7028ed4877a9e66ce00a6aa0f1f0facd611 - optee/optee_os/core/arch/arm/plat-stm32mp2/stm32_util.h
1dbd06a7324f258effac9a8ef4ac5baf9c426440 - optee/optee_os/core/arch/arm/plat-stm32mp2/platform_config.h
46b98d93bcfa1a298f80c25b710f13f434f751e8 - optee/optee_os/core/arch/arm/plat-stm32mp2/stm32mp_pm.h
0597459671a071898baca88cd6fd4c7319cb6e7f - optee/optee_os/core/arch/arm/plat-stm32mp2/main.c
6bad30092b6947c38cd0dcc571b822356d63152e - optee/optee_os/core/arch/arm/plat-zynqmp/platform_config.h
00aa4ae9cc5e6bc0ee8dc057986548b31545f5ed - optee/optee_os/core/arch/arm/plat-zynqmp/main.c
0fce490355fabf44c68c3e70a54be1e01f9c097a - optee/optee_os/core/arch/arm/plat-marvell/platform_config.h
af9cccac94bc9f4624a345c140c5b6e92cc1cbf6 - optee/optee_os/core/arch/arm/plat-marvell/main.c
382e9ecd3c29e2e17e189e59fd3427c1c682e199 - optee/optee_os/core/arch/arm/plat-marvell/armada7k8k/hal_sec_perf.c
5277b6c495f09f7293c54198cbee638bbfdb0254 - optee/optee_os/core/arch/arm/plat-marvell/otx2/core_pos.S
4ff87aa9e6aeaf3d88e17943ead649009d0b0fb2 - optee/optee_os/core/arch/arm/plat-marvell/armada3700/hal_sec_perf.c
9f34e39f67ff62c0eb53b7758b4bb2acdc47c228 - optee/optee_os/core/arch/arm/plat-marvell/cn10k/core_pos.S
9899b78e83cfa336552e36d0be06113de438bf15 - optee/optee_os/core/arch/arm/plat-hikey/hikey_peripherals.h
4957879ea142b46fd1ace368df87de82c90f5e5f - optee/optee_os/core/arch/arm/plat-hikey/spi_test.c
11fa51fa797eb2a0ed5a79b96c4c48ab77451fc9 - optee/optee_os/core/arch/arm/plat-hikey/platform_config.h
a3ca539721787ac30ecbe03305f389325b894ff1 - optee/optee_os/core/arch/arm/plat-hikey/main.c
f59a39b271b322f5bdd6baebdedb3ef701a78b02 - optee/optee_os/core/arch/arm/crypto/sha3_armv8a_ce_a64.S
9c1f14fdc223c00af03fe8b922a520419b7fd0b9 - optee/optee_os/core/arch/arm/crypto/sha1_armv8a_ce.c
afc997b206bbdc6c60cd9f08308b7b53832eac0b - optee/optee_os/core/arch/arm/crypto/aes_modes_armv8a_ce_a64.S
d857b4b442486f2ac052ee687cb6d6f424843433 - optee/optee_os/core/arch/arm/crypto/sha512_armv8a_ce.c
fb5f716381766749999f0032bf39f39bf88af12e - optee/optee_os/core/arch/arm/crypto/aes_modes_armv8a_ce_a32.S
cb5a3413393627c5fb4626c2315e2e12bf01abf1 - optee/optee_os/core/arch/arm/crypto/ghash-ce-core_a32.S
02305ae36a17490cecdc906c0970e8625ea9e6a1 - optee/optee_os/core/arch/arm/crypto/sm4_armv8a_neon.c
45797af469d803907920fecce84f86fbe684a40c - optee/optee_os/core/arch/arm/crypto/sha3_armv8a_ce.c
1ab432ea10e0e0edf03b0ce17bb5277fea163578 - optee/optee_os/core/arch/arm/crypto/sha256_armv8a_ce.c
6e006d07e0e25f49c5af73e0e522f6f97963275c - optee/optee_os/core/arch/arm/crypto/sm4_armv8a_aese_a64.S
933f5b3256795b2ffea6b7b93d75365f865599b3 - optee/optee_os/core/arch/arm/crypto/sha1_armv8a_ce_a32.S
182b52f83f99ae6bbfa5098b2a3b2018194acde0 - optee/optee_os/core/arch/arm/crypto/ghash-ce-core_a64.S
2da4cbb016071dacfbbd7c99799a27ad6d8c56a7 - optee/optee_os/core/arch/arm/crypto/sha512_armv8a_ce_a64.S
0b84c15b4796a2a23a095ae2d6d037677510760a - optee/optee_os/core/arch/arm/crypto/sha256_armv8a_ce_a64.S
bb50a2e7fffd5945ce8214bf57ad9d55135b46c0 - optee/optee_os/core/arch/arm/crypto/sm3_armv8a_ce.c
2c3ba8b73e012b48da6c8ff12c635f8fa109e5a8 - optee/optee_os/core/arch/arm/crypto/aes_armv8a_ce.c
47012ceb6af70d59a7666ca551814aa811efe9e8 - optee/optee_os/core/arch/arm/crypto/sm4_armv8a_ce.h
ad9a80c4d43acd03ae5d27e14df6dfee3abc4e05 - optee/optee_os/core/arch/arm/crypto/sha256_armv8a_ce_a32.S
ad5becb659037cf49bdc0fccc768675b2ce55068 - optee/optee_os/core/arch/arm/crypto/sm3_armv8a_ce_a64.S
f7d7763974a8359b3d84d7c848542872c9a1a1b4 - optee/optee_os/core/arch/arm/crypto/sm4_armv8a_neon.h
cf714bfd8657a2fff8112b3b94d7e476d51e2e60 - optee/optee_os/core/arch/arm/crypto/sm4_armv8a_ce_a64.S
56e9da14883d74e8eca3a4c7737185590cf14c08 - optee/optee_os/core/arch/arm/crypto/sha1_armv8a_ce_a64.S
0c1913711dd52b93cfe5d2d476a3a050a5bae97d - optee/optee_os/core/arch/arm/crypto/aes-gcm-ce.c
09cb511f6b571c162ae284911b5af9c702dd5130 - optee/optee_os/core/arch/arm/crypto/aes_armv8a_ce.h
0cd13267dd6db52ed1ff3742dcb7adb15bdff8cd - optee/optee_os/core/arch/arm/crypto/sm4_armv8a_ce.c
55fee8bf238c661a2f59118cbea5d8fca29471f3 - optee/optee_os/core/arch/arm/plat-zynq7k/plat_init.S
e8a97315a58b289054e1f3fb5418cba746b5633e - optee/optee_os/core/arch/arm/plat-zynq7k/platform_smc.h
8694a8f4be2551b1bf8f1abcb17284a8b202e5af - optee/optee_os/core/arch/arm/plat-zynq7k/platform_config.h
8ec4ce70677e98cc80e5c401bf9640ec0fee3b83 - optee/optee_os/core/arch/arm/plat-zynq7k/main.c
fd20baae7413cd701b88ba6dfeb2a294a9eeb452 - optee/optee_os/core/arch/arm/plat-stm/rng_support.c
bdd38a0220aac82b0aafa97e8f1993cb27e0ac1f - optee/optee_os/core/arch/arm/plat-stm/tz_a9init.S
784a5cea3b2741f04facdeaf7bfac0e093630875 - optee/optee_os/core/arch/arm/plat-stm/platform_config.h
445f45675057a9e6f1aaab83895215595ae65915 - optee/optee_os/core/arch/arm/plat-stm/main.c
1b82881f2b80531fc7743309c38c8e9370969ef1 - optee/optee_os/core/arch/arm/plat-rzn1/rzn1_tz.h
776215d1f8598a5514e759d70ae400a8101f835a - optee/optee_os/core/arch/arm/plat-rzn1/a7_plat_init.S
48ef8147e12f826d7e87c67d7c12e3932d317546 - optee/optee_os/core/arch/arm/plat-rzn1/sm_platform_handler.c
245d63c49ace44a4319be3f8b9882e520bf67448 - optee/optee_os/core/arch/arm/plat-rzn1/psci.c
2ecc2eb6bff695c5b86aba9d1b07e0edcef5ab75 - optee/optee_os/core/arch/arm/plat-rzn1/platform_config.h
c9a02f7b7f7b87ffbcb1b4817f13f0a9ce102e7a - optee/optee_os/core/arch/arm/plat-rzn1/rzn1_regauth.h
efb02131d3016042f019eb5255aea2a304f26d44 - optee/optee_os/core/arch/arm/plat-rzn1/main.c
1362e6bff2c7739808fe60425baeb2fadc816d16 - optee/optee_os/core/arch/arm/plat-sprd/console.c
43ecf7e39e7a28c27b7b79a3615e3614939834bf - optee/optee_os/core/arch/arm/plat-sprd/platform_config.h
ff3678a750adfc1d8371ccec9e74da720682f3c6 - optee/optee_os/core/arch/arm/plat-sprd/main.c
7a47d9b9d80c3ff0539ada4663d95c9e7bdac984 - optee/optee_os/core/arch/arm/plat-imx/tzc380.c
33c6bb81805293647a9e56f5a1c069e159c98217 - optee/optee_os/core/arch/arm/plat-imx/imx_pl310.c
8f2a801bfab0d2fb53487c8d7dca3be221530eae - optee/optee_os/core/arch/arm/plat-imx/imx.h
576710aa6118eebca00bfa8024c4f48ad57b89ec - optee/optee_os/core/arch/arm/plat-imx/a7_plat_init.S
adedaaade5c7177a170c74433b126fb1bd75463b - optee/optee_os/core/arch/arm/plat-imx/sm_platform_handler.c
658c3b177340e2efe74ac7cfe5a0c688aeadf90d - optee/optee_os/core/arch/arm/plat-imx/imx_pl310.h
19f7be18a342945b17601d7b48c613ea1468eaa2 - optee/optee_os/core/arch/arm/plat-imx/a9_plat_init.S
13e40fd4f55de4dc5467690339cf670d76621be0 - optee/optee_os/core/arch/arm/plat-imx/imx-common.c
584afcf20fad8029781743589f1d8b888d4d7edf - optee/optee_os/core/arch/arm/plat-imx/platform_config.h
29532130fde10f9c8426ef28f98f4c500de5e004 - optee/optee_os/core/arch/arm/plat-imx/imx-regs.h
130bb1cd7a5b0a7a3b471a004449a211455bdd4e - optee/optee_os/core/arch/arm/plat-imx/main.c
be59b37f3baf5d18ad949415e77e4c09a1a2ebb3 - optee/optee_os/core/arch/arm/plat-imx/config/imx6sl.h
93a6155f6f294fddb38ac1947f5dce49d68f71d5 - optee/optee_os/core/arch/arm/plat-imx/config/imx6sx.h
2d95ab53312d29b23061b747e96c695708612d8d - optee/optee_os/core/arch/arm/plat-imx/config/imx6qdlsolo.h
6c0a9e819b3e4b156c47a4761eef280bcfd0ab2f - optee/optee_os/core/arch/arm/plat-imx/config/imx6sll.h
7df27071dbcbeb1f977a02e17445136fa22a3749 - optee/optee_os/core/arch/arm/plat-imx/registers/imx7-crm.h
3931a5db91c6b50993dba75c296966e3e9416994 - optee/optee_os/core/arch/arm/plat-imx/registers/imx7ulp-crm.h
f44811ad0707fbcbcb20271e209f14481ae12b31 - optee/optee_os/core/arch/arm/plat-imx/registers/imx6.h
9976e7cbeeb2ff5f852c838ecc82e62f85555b72 - optee/optee_os/core/arch/arm/plat-imx/registers/imx8m.h
46dc26d459e4a5adb2a904c7f6b4c5ef4546ab75 - optee/optee_os/core/arch/arm/plat-imx/registers/imx8m-crm.h
1a557c230d0c95aeb775b8f02c4a5294b829132e - optee/optee_os/core/arch/arm/plat-imx/registers/imx7ulp.h
b355b4bb04068d735c1faa8039e1ade0d88d60d2 - optee/optee_os/core/arch/arm/plat-imx/registers/imx6-crm.h
0ab3222c89bd29af45b6838cb1126597ea378f7f - optee/optee_os/core/arch/arm/plat-imx/registers/imx8ulp.h
e8e364071825472444c0223168929efe4a9385d2 - optee/optee_os/core/arch/arm/plat-imx/registers/imx93.h
f93579c365bf08fb597488903040c0b92041517d - optee/optee_os/core/arch/arm/plat-imx/registers/imx8q.h
55f6aaaf23e460dbfd791e81c80dd5de5d3bfbfa - optee/optee_os/core/arch/arm/plat-imx/registers/imx8ulp-crm.h
845f9ec3fb38a2456492626af9b5dfe8f583bfec - optee/optee_os/core/arch/arm/plat-imx/registers/imx7.h
443dd0395348c2b831b9ea34e1d0df567e22dfa4 - optee/optee_os/core/arch/arm/plat-imx/registers/imx6-dcp.h
e0bd5cc425555563f9b9428c5ab4088ab77dca2d - optee/optee_os/core/arch/arm/plat-nuvoton/platform_config.h
b5eab9ec78f6d28b2c8c130ef28fb357b65f5235 - optee/optee_os/core/arch/arm/plat-nuvoton/main.c
b3d21a1017a2f66d52d2f6da7f671715aba08021 - optee/optee_os/core/arch/arm/plat-rpi3/platform_config.h
ec372362de1d4e3528e6ba2db82b0c9a6949239b - optee/optee_os/core/arch/arm/plat-rpi3/main.c
ca3077b3f16c93f5d5350d4b21c08770138bc3af - optee/optee_os/core/arch/arm/plat-d06/core_pos_a64.S
ef651043e13845e8c87166c7f7c63c304bad4336 - optee/optee_os/core/arch/arm/plat-d06/platform_config.h
f3bb0c06c205574018197b20b6b28b4b4d95e9bb - optee/optee_os/core/arch/arm/plat-d06/main.c
fa6b95e58563f8332731f989e0d1bca1fffbbac4 - optee/optee_os/core/include/optee_rpc_cmd.h
88da2be579e9631f960e2e446fde123208299e46 - optee/optee_os/core/include/gen-asm-defines.h
6cd050c7ddd4d5c1022f00bf74e621a0a04818df - optee/optee_os/core/include/scattered_array.h
230b6235c3972d7ad25e31b52d8dd6e446d170b7 - optee/optee_os/core/include/optee_msg.h
fe35bcb23450f547f7b098c1dc83a86e94884a96 - optee/optee_os/core/include/rng_support.h
5f4af7ab7f5e65ed9a75fdef46311017a029b9b8 - optee/optee_os/core/include/initcall.h
d507db96fbda840a8a7615c35c15fa3cd392b7ad - optee/optee_os/core/include/console.h
129133eb0ba4e4b73eaf1d84710e580b22e10009 - optee/optee_os/core/include/spi.h
5c27242ef89ad221fbf7dc967d4227bb1210f3c5 - optee/optee_os/core/include/ta_pub_key.h
17854fd3bc11a0554f93349178a5ebde2df45a21 - optee/optee_os/core/include/io.h
1cdb9baa31ff97e081376c5efb6ab5476a90fd9e - optee/optee_os/core/include/keep.h
804d76c5793756bf65288f5d87b37716fc8a2a27 - optee/optee_os/core/include/signed_hdr.h
dcd9135e8790bfdbf7e925e8e5c9d421b5e89041 - optee/optee_os/core/include/dt-bindings/pinctrl/stm32-pinfunc.h
19bb520476cff77efd84b0106f690c4dd972bd63 - optee/optee_os/core/include/dt-bindings/regulator/active-semi,8945a-regulator.h
51c769451ca1c189b2b01b45473d6fb93157a4f2 - optee/optee_os/core/include/dt-bindings/regulator/st,stm32mp15-regulator.h
4c0440a1ff7d6b4704a914a7c2ad8192fa6e3c63 - optee/optee_os/core/include/dt-bindings/regulator/st,stm32mp13-regulator.h
6f7d303afc4981c5aaf8ae4eedae611976aa5b7e - optee/optee_os/core/include/dt-bindings/reset/stm32mp1-resets.h
75e3b85cfb7663af28a4aeabd71f5d9171713d1b - optee/optee_os/core/include/dt-bindings/reset/stm32mp13-resets.h
c09a35772e7498a4ece6515946754488ec651860 - optee/optee_os/core/include/dt-bindings/interrupt-controller/irq.h
8bbae85d2c9ec2416cc28a15f3d8e79d19c9847c - optee/optee_os/core/include/dt-bindings/interrupt-controller/arm-gic.h
2d0e795df5e3ef26343c50b0371d892d062942b6 - optee/optee_os/core/include/dt-bindings/clock/at91.h
11cb6c3b8996e757f9d20becbf83d65d9da3497e - optee/optee_os/core/include/dt-bindings/clock/stm32mp13-clks.h
700be76cdd56cf4beca99964e8bef7679ca119a4 - optee/optee_os/core/include/dt-bindings/clock/stm32mp13-clksrc.h
c82fd3d48caa51f67f6bb71f5637c491c8869afb - optee/optee_os/core/include/dt-bindings/clock/stm32mp1-clks.h
a70bccff932cfe66485a89fd2fa7a4365f265e12 - optee/optee_os/core/include/dt-bindings/firewall/stm32mp25-rif.h
f79b5f2ced860b24f63fd994d127216b28a39fd8 - optee/optee_os/core/include/dt-bindings/firewall/stm32mp25-rifsc.h
3d11a04568b27618db9569d34ed229c92f24f7cc - optee/optee_os/core/include/dt-bindings/mfd/st,stpmic1.h
dd5621d99484ecb0900f61801adab7e10d37f0f1 - optee/optee_os/core/include/dt-bindings/mfd/atmel-flexcom.h
23149233a025ca8a0b84821b398694bbf0bfdf4e - optee/optee_os/core/include/dt-bindings/iio/adc/at91-sama5d2_adc.h
9eea9ced1442cf0f623a3e71799533baf44cd8ce - optee/optee_os/core/include/dt-bindings/gpio/stm32mp_gpio.h
736b382bd5ae6f63e95b0ec473a146ffe182294e - optee/optee_os/core/include/dt-bindings/gpio/atmel,piobu.h
f0ee73ec026d62a1125c4410ba4a0a72b924d09f - optee/optee_os/core/include/dt-bindings/gpio/gpio.h
1e7ab5294d740390ffb703e0912f612c043e1ce3 - optee/optee_os/core/include/dt-bindings/dma/at91.h
bf573306daa40e7d3a9a2d47afdb08f99e78b3a7 - optee/optee_os/core/include/dt-bindings/rtc/rtc-stm32.h
c15642cd88cddd72322e27f38fb29ca150a0b99e - optee/optee_os/core/include/mm/vm.h
152f0ce018b49d6fc2b0b320f82c1b29e25cad29 - optee/optee_os/core/include/mm/core_memprot.h
c97a01f7bba80935fcbf2dafe9e946d43c247e1b - optee/optee_os/core/include/mm/sp_mem.h
6d521abcb9da5acc5abe3d8e3bd7d39f79d32075 - optee/optee_os/core/include/mm/pgt_cache.h
7478c95b4ec03b37de3abbfa9a8a6f526c19e4c9 - optee/optee_os/core/include/mm/core_mmu.h
30b8bfeb037aa430b36a9d62a9d906834dcf8903 - optee/optee_os/core/include/mm/fobj.h
4f1bf0f7dbc04b954ec0408e786fe257c4ac6b0c - optee/optee_os/core/include/mm/mobj.h
3ab7ecf667fa906a144379998f686f44c83c2394 - optee/optee_os/core/include/mm/file.h
816a10ca244ab70efbf0059722455fd3f006211e - optee/optee_os/core/include/mm/tee_mm.h
208482cdefa0c15d6a3c7f325a33799eba7160e0 - optee/optee_os/core/include/mm/tee_pager.h
d49b92eae62339ee11a9bc33e9de868b864333ea - optee/optee_os/core/include/mm/tee_mmu_types.h
86d731fbc4dec94afb6d508b95a533f7d47c3485 - optee/optee_os/core/include/tee/tee_supp_plugin_rpc.h
1308f358a4a299c363fc1ff9d4449995132b18c1 - optee/optee_os/core/include/tee/tee_ta_enc_manager.h
59f15f82c6b72fdca29ff7d5492653a84202aa93 - optee/optee_os/core/include/tee/tee_cryp_utl.h
a99d6817471b82716d363a37e72fd6a6eadf42a9 - optee/optee_os/core/include/tee/cache.h
128881dfa00d0a1df793f816382efaa4e9d9bcce - optee/optee_os/core/include/tee/tee_fs.h
18a016ad9187e9e46b9b4758e73fadd9a375bbc3 - optee/optee_os/core/include/tee/tee_svc_cryp.h
0d89839cb1cbe5cc90c8acdb64ce5eaa35474503 - optee/optee_os/core/include/tee/tee_fs_rpc.h
053be96056cb04167009eb9368f7a8afc6dfaa5c - optee/optee_os/core/include/tee/tee_ree_state.h
6d690cb2041bea9138c24294d54a4d77aad41aff - optee/optee_os/core/include/tee/tee_cryp_hkdf.h
abea67617b2ab0ac70350ff3fe67b738eaa3645d - optee/optee_os/core/include/tee/uuid.h
b1c5d8f39981550bb0c40e7175bce5057378e3d0 - optee/optee_os/core/include/tee/entry_std.h
cf47b8057c9b037363f5a4bc50e424c35f2e3f92 - optee/optee_os/core/include/tee/tadb.h
6950b4690d1bf6ed1c32bc5bb06c44fbe39a29c7 - optee/optee_os/core/include/tee/tee_svc_storage.h
a90a966755ea02bf958fe6e492dda2d298e80403 - optee/optee_os/core/include/tee/tee_pobj.h
310b549683246f2258017d58572e9ab296981ec9 - optee/optee_os/core/include/tee/tee_fs_key_manager.h
0ac5827ea6d593ab3ff7382f2ee79d2be03fd2ae - optee/optee_os/core/include/tee/tee_cryp_concat_kdf.h
d7019362eb2c68e0692df4fa18c0cea06919e3f1 - optee/optee_os/core/include/tee/tee_cryp_pbkdf2.h
d517b1e0bd1ffceea1229d891891f62fa512b539 - optee/optee_os/core/include/tee/tee_svc.h
1c154159486140e838e057c58caf72c4a3b7d1b4 - optee/optee_os/core/include/tee/svc_cache.h
e825068e0bf9924af7215f4327bef758ff1f815f - optee/optee_os/core/include/tee/fs_dirfile.h
01a38ef0fc64d28f2ea1e65966093196abe543f5 - optee/optee_os/core/include/tee/tee_obj.h
97cfacaf0101f86f6d7edc4a3a3ff67110792801 - optee/optee_os/core/include/tee/fs_htree.h
ee6cb7826fbd60a90595fcc4962e428c46610b5b - optee/optee_os/core/include/drivers/stm32mp_dt_bindings.h
40c07075659d9321c0d0bf90cc0c2a567e4f070c - optee/optee_os/core/include/drivers/stm32_etzpc.h
d9e6e80aa5d27c1fcf9c1edc4895e62394b0d4d4 - optee/optee_os/core/include/drivers/versal_nvm.h
58ddebbef8bd6c594d871fb476d88a5f9831153d - optee/optee_os/core/include/drivers/ls_sec_mon.h
91b6d3c752a3d89e785356b8589c47726ff68d98 - optee/optee_os/core/include/drivers/zynqmp_csudma.h
511feb397f8a383b92c4d238c9639c0ff2f6b5e1 - optee/optee_os/core/include/drivers/stm32_uart.h
cca1719ab46702da66faa45ee2e674cbf56e0936 - optee/optee_os/core/include/drivers/zynqmp_csu_puf.h
996e4e71228a955032f4422f1857fc86adeef560 - optee/optee_os/core/include/drivers/mvebu_uart.h
c8ca68f41b1afee076215f931ae25f18f2ffdf32 - optee/optee_os/core/include/drivers/serial8250_uart.h
b1d5544ff4f3ab0503a7b7403cafc67a0893bc29 - optee/optee_os/core/include/drivers/tzc400.h
ba6f897176895794b2c32406a85d56460b869a02 - optee/optee_os/core/include/drivers/bcm_sotp.h
d6e344ad9b81930944052a2aa7439fea4f98e7a3 - optee/optee_os/core/include/drivers/imx_sc_api.h
2ddfccba77effaf40a1b9a0ccc978bdfd8162d7b - optee/optee_os/core/include/drivers/atmel_rstc.h
5a5250f891c8e3fd01fe97da71d746ab170d70f8 - optee/optee_os/core/include/drivers/zynqmp_efuse.h
2862b25eeafb9f6e676ed83d48581638899573d9 - optee/optee_os/core/include/drivers/caam_extension.h
7cd32050e290fd4a576185a57e4ee3deac99984a - optee/optee_os/core/include/drivers/versal_gpio.h
631cc4ec89ffe0c7e2eb61ef0c441a265c1cff11 - optee/optee_os/core/include/drivers/versal_pm.h
e134f758ab7ac37003823e6518be9ab1ec171e88 - optee/optee_os/core/include/drivers/lpc_uart.h
ee4402299d8587fe8e625421815d09e610917439 - optee/optee_os/core/include/drivers/stm32_remoteproc.h
e82a2ed50b41b1008781a3fc944bc32366f9eb02 - optee/optee_os/core/include/drivers/imx_wdog.h
04f9993ffd5c2f798953978835626f7d91793c27 - optee/optee_os/core/include/drivers/zynqmp_pm.h
345ebf6d5dc2948c7a760d3cdf168f3461f36cf4 - optee/optee_os/core/include/drivers/imx_ocotp.h
ed0702ba8e49ca5d2b8fde5b754911bdd2120b71 - optee/optee_os/core/include/drivers/imx_i2c.h
7861330159692f9f887f6ab44a547cbe1f3f24dd - optee/optee_os/core/include/drivers/sp805_wdt.h
abea729d88bd897be58ed6c9534b6d37cf914d57 - optee/optee_os/core/include/drivers/zynqmp_csu.h
e5f12caa0c11061b91eac6b6165657e68158cc84 - optee/optee_os/core/include/drivers/ls_gpio.h
72846a719bd42c01c0f3fba621809252fa7e6aca - optee/optee_os/core/include/drivers/imx_uart.h
f7944ca30772475a66c4f8ff168470477e282d19 - optee/optee_os/core/include/drivers/i2c.h
0957985db83d64a10b0b4d453a89e517f1162217 - optee/optee_os/core/include/drivers/wdt.h
5a4750980a258bf284a226cd8646a4d9a4f20486 - optee/optee_os/core/include/drivers/imx_mu.h
f4951939c2d41480ee8077883f4e3f9634c9ddd8 - optee/optee_os/core/include/drivers/regulator.h
acdcb0f0430baed3d90047cd49aec102e6dffc4e - optee/optee_os/core/include/drivers/cdns_uart.h
e5581364847f5fd4af18e00895e96feae66c2dc8 - optee/optee_os/core/include/drivers/rtc.h
adc8eb02c13ad66bb1e3be9c024aed644b40d9f5 - optee/optee_os/core/include/drivers/bcm_hwrng.h
54f6572933ae458e1115bd8d43337c0955900239 - optee/optee_os/core/include/drivers/atmel_shdwc.h
2ee9ec2b7a82e5db03c61a7ebdaccf200365ef19 - optee/optee_os/core/include/drivers/scmi.h
bf5353223f3ff261e30e843cf6810e7da7985b3a - optee/optee_os/core/include/drivers/semihosting_console.h
bbd9f402bd751cfe638fb2585b52d940de3cd704 - optee/optee_os/core/include/drivers/stm32_tamp.h
9faff0556c12ea1887a80ebbfb60c2634048a51d - optee/optee_os/core/include/drivers/serial.h
a2a83ef6478b6f51f852629efe31b59304ed79ce - optee/optee_os/core/include/drivers/imx_snvs.h
c74b30cd58a799ad95ea9d8bb96bc87c362f4912 - optee/optee_os/core/include/drivers/stm32_rif.h
793f688738ed5e21251d77bdb463baae3fbf9d0a - optee/optee_os/core/include/drivers/hi16xx_uart.h
4dccf4b5a3f384b716473dd5f22fe88e62e69454 - optee/optee_os/core/include/drivers/pl011.h
044cf7b8b0ceb07ad4609f53ced52b569babfad3 - optee/optee_os/core/include/drivers/stih_asc.h
d2608b476c0a3e6772cbc28ea1b2b555091784fc - optee/optee_os/core/include/drivers/atmel_rtc.h
209a9de5a95c149ed87d06209a00416aca6bdf59 - optee/optee_os/core/include/drivers/versal_puf.h
c52233fb46f4ad3050a806e473cfd2f936f6b53f - optee/optee_os/core/include/drivers/scif.h
f53a2a41bd93c15bcdbd21f59b7580157c370051 - optee/optee_os/core/include/drivers/ls_dspi.h
9f095079d511b5d789cac4b93714a3f09b75f4b7 - optee/optee_os/core/include/drivers/scmi-msg.h
daff84d47d1e712ea0390efbdef06fcd3fadaebc - optee/optee_os/core/include/drivers/stm32_i2c.h
988feb107f388f0e02ddd78e2887e84a221e0839 - optee/optee_os/core/include/drivers/ns16550.h
6110fa3ecbd1bb7185abcee753303ad1090d1aca - optee/optee_os/core/include/drivers/ls_i2c.h
0ae76ea5b86bea63251e635eee1a0eb79682d8b5 - optee/optee_os/core/include/drivers/amlogic_uart.h
e6927231b7845a9e7e71687a8b104775b431807c - optee/optee_os/core/include/drivers/bcm_gpio.h
121789edb4cf9b2797d850a0cb4a0ab1059814ed - optee/optee_os/core/include/drivers/nvmem.h
90f5cecf44f1353954b9f509e72380c23dae5481 - optee/optee_os/core/include/drivers/zynqmp_csu_aes.h
8f00fe24571b769a4046de9ec9733504c4f9aa4a - optee/optee_os/core/include/drivers/hfic.h
95ea00a994106d233112cdafcbbdecbf43efe8b1 - optee/optee_os/core/include/drivers/stpmic1.h
a74eeaca5f6fc6a32f24486af30eb3bed2a377a5 - optee/optee_os/core/include/drivers/stm32_vrefbuf.h
1a127ceb7473cce35868a0e3b6fb6c0fe09f67a0 - optee/optee_os/core/include/drivers/atmel_saic.h
62c0202bb311d341e9df9d92d2a63e249d112b97 - optee/optee_os/core/include/drivers/clk_dt.h
01e3e3b8a4910f25dfdfdd865b70e885b8eb5151 - optee/optee_os/core/include/drivers/versal_mbox.h
58d82325f216b80a9bf970807e4c42339bb5b193 - optee/optee_os/core/include/drivers/pl061_gpio.h
5a47d280fbbdebc8b4b8220b9c0be960a7e80966 - optee/optee_os/core/include/drivers/stm32_iwdg.h
0858c735ecd0b0f69511c80da83b88cb428ae108 - optee/optee_os/core/include/drivers/versal_sha3_384.h
406ff8e0cfe26a1e6e63621ffa9ac1176426c376 - optee/optee_os/core/include/drivers/tegra_combined_uart.h
f0a3ee94f6f4b5e982ec8cee6d771f396e5aa1ee - optee/optee_os/core/include/drivers/clk.h
a33c92d997da4b5500e761f99997e9ae7747e0dc - optee/optee_os/core/include/drivers/sprd_uart.h
6c1691ca8fd41135a8d571021414095918e1ddae - optee/optee_os/core/include/drivers/stpmic1_regulator.h
e0b56498b27d3bd08d540168b77b98051f90ed82 - optee/optee_os/core/include/drivers/stm32mp13_regulator_iod.h
be006782da2caa19f262b37496195eb6654f9576 - optee/optee_os/core/include/drivers/stm32_gpio.h
7f3ef46e25244f20b8ad05b4953dc9bdc01db532 - optee/optee_os/core/include/drivers/stm32mp13_rcc.h
1e350e5217c7c9547170036a21103a9c8bd25c69 - optee/optee_os/core/include/drivers/cbmem_console.h
f6c06a7e3d38d67183bbde4814b1b4fc68226fda - optee/optee_os/core/include/drivers/stm32_shared_io.h
a534a04c75f7b25a685f14b9a9c4ad5bc1ce215a - optee/optee_os/core/include/drivers/pl022_spi.h
c35d53480ece3d50dbd7ebc42aaaec3952ce010a - optee/optee_os/core/include/drivers/rstctrl.h
08d26cdf94c5c5ac4238ecbe1fe7920162d98c63 - optee/optee_os/core/include/drivers/stm32_bsec.h
ef27ccc40f8a3475cc86c8746c95720ec0b5a9ee - optee/optee_os/core/include/drivers/stm32mp1_rcc.h
a4463c93ac3eedb1207d208b410182b2aa7be43d - optee/optee_os/core/include/drivers/atmel_uart.h
f79ce31669141d007d3d46c0510c83271a074888 - optee/optee_os/core/include/drivers/zynqmp_huk.h
5b966c643d05fffd950b8cc2875b441e6bc9938f - optee/optee_os/core/include/drivers/gic.h
f0ed3b98bd6633f74dab58757059ac11933671ea - optee/optee_os/core/include/drivers/pinctrl.h
17e4e2d1b983087461bfcc4bbfbd70e8b3ae1dac - optee/optee_os/core/include/drivers/ls_sfp.h
573aef790439e7f8668bf6d5be663c9504f9273a - optee/optee_os/core/include/drivers/tzc380.h
2a38bd2d5a0cebf403be03fa37429bd62e7a05cb - optee/optee_os/core/include/drivers/plic.h
a244838f90d18ae96bf58df83a82d4723e5e109c - optee/optee_os/core/include/drivers/gpio.h
33ea27d3d7b5742a187f56005a3c9ef39258ca2a - optee/optee_os/core/include/drivers/pm/sam/atmel_pm.h
e00827b01eb60bbc2838dc0177a8fba77754c4a3 - optee/optee_os/core/include/drivers/tegra/tegra_se_keyslot.h
2ceae52c37cb480b625927a556e6deb4689ced3a - optee/optee_os/core/include/drivers/tegra/tegra_fuse.h
85b2be535e1d7a67ad7dcc13cbef547e8a1fdc22 - optee/optee_os/core/include/drivers/tegra/tegra_se_aes.h
c43a36c90b5dc3d59157a90b64bc67387c6eeb80 - optee/optee_os/core/include/drivers/tegra/tegra_se_rng.h
4fc3e6c0473a8f822f3bcaaa66f3f668625884d2 - optee/optee_os/core/include/drivers/tegra/tegra_se_kdf.h
129d940801fe4b67f12bbd828bc01928ccd0b626 - optee/optee_os/core/include/drivers/sam/at91_ddr.h
c1ef23d7109f9ca715be1cbe858cd914f69a163f - optee/optee_os/core/include/drivers/imx/dcp.h
01ae4874fa40f1573c4604c8bc580b524346c9e7 - optee/optee_os/core/include/drivers/bcm/bnxt.h
9580dfe1f16580758041e227e65811d04ca384b6 - optee/optee_os/core/include/kernel/lockdep.h
47bae777ab0439c6c5f650a64c7eda7938bc750e - optee/optee_os/core/include/kernel/trace_ta.h
f4f803096be84380cf2c48dce52aaf855b3ab2d0 - optee/optee_os/core/include/kernel/mutex.h
7c41d260656d83bc3cb2f1504f1ab5305e787c72 - optee/optee_os/core/include/kernel/virtualization.h
c1f5708a89345bd1d1e59c0998656cb1b410984d - optee/optee_os/core/include/kernel/cache_helpers.h
08718b75d19035055180740c78363d96b950f76f - optee/optee_os/core/include/kernel/scall.h
ff1ad215df335bbc1bf5a8365c96c64746e4388d - optee/optee_os/core/include/kernel/refcount.h
7454568aad694133ddcefc1c65ffc1a6b8f06f0f - optee/optee_os/core/include/kernel/ldelf_loader.h
00b49554c88edc39e0bea14f007188c859e0b7fb - optee/optee_os/core/include/kernel/thread.h
2d5870c0a7b942b4325b6c466fee777e6d9663df - optee/optee_os/core/include/kernel/mutex_pm_aware.h
828549ba13cdf97222d005e03793bddd388afb02 - optee/optee_os/core/include/kernel/tee_common.h
de2778b5ee55508a8a54df96e419cb482f563b30 - optee/optee_os/core/include/kernel/semihosting.h
e813ebd4165bad56ac4e83aa96bfb64404ff86cf - optee/optee_os/core/include/kernel/nv_counter.h
1836e525384f0bcf97d7ccf701668c6c0c4f43df - optee/optee_os/core/include/kernel/ldelf_syscalls.h
4d33576f2922c7d3f23cca65c93c8069cc665e38 - optee/optee_os/core/include/kernel/tee_misc.h
72ac22282aa32da2fc27ec02fac1ec0e5e4b433f - optee/optee_os/core/include/kernel/huk_subkey.h
641871b38417b1213428160e9c0d378ac082b3ab - optee/optee_os/core/include/kernel/dt_driver.h
854c7104502755ee6babaf7af37ea75618f7c6f9 - optee/optee_os/core/include/kernel/boot.h
a614bf9bad94e38d4c27aad6b7cb71b21f02be3f - optee/optee_os/core/include/kernel/tee_time.h
c5127403e01dde874dd5af239caa97296d0e8695 - optee/optee_os/core/include/kernel/user_mode_ctx_struct.h
a7d6eb26cc4a919d59beb0de50ca14f3bdaeba81 - optee/optee_os/core/include/kernel/tee_common_otp.h
e4719588b0cc670eee34fbf59d8d50f39cdbdc45 - optee/optee_os/core/include/kernel/thread_private.h
2071ef11bd6c92008e3267688dcec4614ce898c2 - optee/optee_os/core/include/kernel/abort.h
482af27dd67588f4f1d2d4a5cd17c50bd645df49 - optee/optee_os/core/include/kernel/chip_services.h
cd624668c9f76defe8e05e3cc7547bd27128a5b2 - optee/optee_os/core/include/kernel/user_ta.h
625040376d7bc280e4dffbe23e77e046dbf40e2d - optee/optee_os/core/include/kernel/asan.h
abaea6379087b38a14691b6be5fe6356a055a37c - optee/optee_os/core/include/kernel/dt.h
c39885dc2548b8d6723071bcc766bb513e3ef78b - optee/optee_os/core/include/kernel/user_mode_ctx.h
2c04a3ad84fb1354bc98a83a02b34baaa2aeeb85 - optee/optee_os/core/include/kernel/transfer_list.h
f16062ce2b71d0032aafbbca0b6622522111e156 - optee/optee_os/core/include/kernel/delay.h
f79653070916157aa62f38869870204765305d74 - optee/optee_os/core/include/kernel/rpc_io_i2c.h
ed3147f55cf57484f6b235d33d44b7ac008321e7 - optee/optee_os/core/include/kernel/panic.h
f2ab69b044d5bcce9b58ca8ccb79b83d50b5fb70 - optee/optee_os/core/include/kernel/notif.h
2aaa4829d6e477b28a49aa4b15858e4d58528c38 - optee/optee_os/core/include/kernel/wait_queue.h
b9ebf51c4e2cb9b094423a70588cbd6eda7efbba - optee/optee_os/core/include/kernel/pseudo_ta.h
55b39e185d6756ef7e18929f99a9c6f0e15332ae - optee/optee_os/core/include/kernel/ts_store.h
736c236f73c04985ca81ea10c2f261fd06c44707 - optee/optee_os/core/include/kernel/pm.h
590c3ba3b3785bd1b70f32788080caa459b55454 - optee/optee_os/core/include/kernel/tpm.h
fdc42f8632716f2e930ccadebc2ba52fc85242a2 - optee/optee_os/core/include/kernel/user_access.h
8b22ed423b1b8e85f58048dd7072053fa9f0af4c - optee/optee_os/core/include/kernel/callout.h
5bb3a8cd5160f07a93fd9293957242604e679291 - optee/optee_os/core/include/kernel/misc.h
812a74ab18019aba6f14d3f06de6ceb0f03686f7 - optee/optee_os/core/include/kernel/early_ta.h
2233249756e47fc006e8a04186fa12757b84dba7 - optee/optee_os/core/include/kernel/embedded_ts.h
f809853f7dafcd931003f4f03ec346a85a86d1a3 - optee/optee_os/core/include/kernel/handle.h
06984aa4db6e47ec48c82a3fe7b24147ffa3ca19 - optee/optee_os/core/include/kernel/spinlock.h
f508df7c418ee1d26a9ac0b7bb9c02efaa95109f - optee/optee_os/core/include/kernel/unwind.h
23cec14e03085b7156a4095bb04eb95c3a096653 - optee/optee_os/core/include/kernel/timer.h
446e9f32d38a7ba8ba794474ba9d448c9c711994 - optee/optee_os/core/include/kernel/linker.h
92070cefa4d439c716c037e108416492f5d11ee0 - optee/optee_os/core/include/kernel/tee_ta_manager.h
92febe612c6bcab059b9309fc4c2d7d2c2c18e01 - optee/optee_os/core/include/kernel/interrupt.h
6633a78968c544109666de89e07ebbbb7624c4cd - optee/optee_os/core/include/kernel/msg_param.h
21af0145ee2a642abfe64f32b0618a6acb283781 - optee/optee_os/core/include/kernel/ts_manager.h
1b397670d3a135238d76ac0e6dd9cbe5095e6ecc - optee/optee_os/core/include/crypto/sm2-kdf.h
951fb0d4a44684edd5dea57f9af4dc3bfe63d7b7 - optee/optee_os/core/include/crypto/crypto_se.h
3c37642b6f4bfefdcae5a1697faef8aa2b82b756 - optee/optee_os/core/include/crypto/crypto_accel.h
eef0ead7045789d8587d0a0a470491a3138a9c3b - optee/optee_os/core/include/crypto/internal_aes-gcm.h
66960122dabaed2d352fcd0a703454038d12f387 - optee/optee_os/core/include/crypto/crypto_impl.h
302739e8b28cdc82ad0a5c9b26de42e9dd0e73f0 - optee/optee_os/core/include/crypto/crypto.h
89ce33aaddb1581c98d889695b695d3f91d1abac - optee/optee_os/core/drivers/stm32_shared_io.c
5b608ade5b6d8d262288fdc49165d0e0fb72f72b - optee/optee_os/core/drivers/imx_lpuart.c
f2395342fb43346befc286959fa01114b0ff28e2 - optee/optee_os/core/drivers/versal_mbox.c
1f8114767f04f10575e9d516120b9e8004560045 - optee/optee_os/core/drivers/zynqmp_csudma.c
6c4db16c8b3b5b7946f42531edaed3c24d4d07b0 - optee/optee_os/core/drivers/atmel_trng.c
a9e721b1faeb4865248d3c188b56278116a3185f - optee/optee_os/core/drivers/pl061_gpio.c
9629633ef9a1ec9606d960053dd7705e7179d502 - optee/optee_os/core/drivers/pl011.c
060e285588ec6082bcbf7f3b3c1907b0a98eb75c - optee/optee_os/core/drivers/semihosting_console.c
b195778e8106f48ecbe971f404a484cf3cb43d6c - optee/optee_os/core/drivers/widevine_huk.c
576097eeaf883a6a69e86b88a2364c3cd06450eb - optee/optee_os/core/drivers/stm32_uart.c
9203d1e334c03870efbb1296fc2b9151c8971267 - optee/optee_os/core/drivers/imx_sc_api.c
23020b20bb1b040dadd8e1d454b4d5a5b6229b09 - optee/optee_os/core/drivers/atmel_rstc.c
033052ada215ccb3f67e6643ef12c4b5665f0448 - optee/optee_os/core/drivers/atmel_shdwc_a32.S
1a2ee2977ed079a1526806d298af2550d23ec1c3 - optee/optee_os/core/drivers/stm32mp15_huk.c
fb0a553d5a6fdc9f6c00930976fae0be73b27535 - optee/optee_os/core/drivers/ls_i2c.c
22d95a3e938617774e29f89760c65f77f932f148 - optee/optee_os/core/drivers/ls_gpio.c
1427572daefd0b1d7949a5bf943320c3ce4b9733 - optee/optee_os/core/drivers/imx_ocotp.c
09898d9b6b3ce2ff6bfaca61a6b13f0b9cd4efab - optee/optee_os/core/drivers/tzc400.c
707867f2731e424b641a7ec3409ee954fb610f37 - optee/optee_os/core/drivers/tzc380.c
ba938d917edc42fd1e53f93a707cc9ff5ff45686 - optee/optee_os/core/drivers/scif.c
59a9c4ca5b114eddb0dbe6e37771eb8d04954d41 - optee/optee_os/core/drivers/atmel_wdt.c
2897acd81f2d1a3996adb59bd9dec1f0000f919c - optee/optee_os/core/drivers/versal_puf.c
f6e601063c224f648486bed923c509cb27a5d5cc - optee/optee_os/core/drivers/sp805_wdt.c
9f608bd36d7697b68b44c50cf8070bcfa4c872c0 - optee/optee_os/core/drivers/imx_rngb.c
514313602dfb100842f336c91efef495a658b3a9 - optee/optee_os/core/drivers/stih_asc.c
e14a90f2bcf9018fa5a0467d3681cb66d3f43369 - optee/optee_os/core/drivers/atmel_piobu.c
b234794403be1c10b3977fc742799919f7b5d16e - optee/optee_os/core/drivers/ls_sfp.c
23eed3a3d72852b8eda78fe73dfa5b7f7e5cb44d - optee/optee_os/core/drivers/zynqmp_huk.c
9fbe74cf959bf2b80b39c4cf5ff6d4cc0ed64759 - optee/optee_os/core/drivers/tegra_combined_uart.c
740e5cd3acbeb54e5e8bc8cce81aba50e2593a5d - optee/optee_os/core/drivers/bcm_hwrng.c
d727565a02416f45a77d93a9d363380f5f38ad79 - optee/optee_os/core/drivers/imx_scu.c
7ca34a8edb3c18eb51fa80927c8cf4f9ec8cca24 - optee/optee_os/core/drivers/plic.c
52c9fd38c2174bf6f84138c477cbee17c48cbded - optee/optee_os/core/drivers/bcm_sotp.c
c96f731961fc579a4966cae12e597d72c1ed06f3 - optee/optee_os/core/drivers/atmel_uart.c
7f6538800a647267da6f019328e5814cc7c1cbf5 - optee/optee_os/core/drivers/imx_csu.c
47509d9c897d567527308698b101326d495b6f43 - optee/optee_os/core/drivers/versal_pm.c
9c0fffe583ce8197aac49fa87c158bec166776ec - optee/optee_os/core/drivers/stm32_tamp.c
0c949972e03559a0168bc9e5b75be1c0fc00320f - optee/optee_os/core/drivers/atmel_shdwc.c
52d39e5794d051ab27898621b9ad9ad78caca1bc - optee/optee_os/core/drivers/ns16550.c
42b41e7d6dba7a7d9a97f8a296aa72adc0a42be5 - optee/optee_os/core/drivers/lpc_uart.c
29302475f05ea928763d589f7149ac31fb251bc6 - optee/optee_os/core/drivers/zynqmp_csu_puf.c
63f40f459d11f83bfa729e6bcaa98cd8d785d176 - optee/optee_os/core/drivers/stm32_rng.c
285a03d5b9f6657a5a74f219b40e639aac379b41 - optee/optee_os/core/drivers/zynqmp_csu_aes.c
e60b8921f76cb3ed026a112e561330bac6d39693 - optee/optee_os/core/drivers/stm32_i2c.c
9a6399d3b9a2944a5cfebf5b6c67e29dc97474e5 - optee/optee_os/core/drivers/pl022_spi.c
8c9bd89348d37d78be7efd291fc5f9279a62093d - optee/optee_os/core/drivers/cbmem_console.c
04ff6a848f0dd5e16fb7fd76e95ce39785601df1 - optee/optee_os/core/drivers/mvebu_uart.c
ddf2c0a622b6f91a81ac09e02fbca99d48e19dca - optee/optee_os/core/drivers/atmel_saic.c
2127927945e603116f83b2815f785f5b3daa9cd0 - optee/optee_os/core/drivers/imx_ele.c
45fe58e31faea84f641347c7bd70e426567d781b - optee/optee_os/core/drivers/serial8250_uart.c
1320b4d29ffd0a7d76b3bca9ca5b46c18addcc96 - optee/optee_os/core/drivers/ls_dspi.c
360698584af5e09cf3bab225cf66053d658552b6 - optee/optee_os/core/drivers/imx_wdog.c
90ef3f7cef8ca0b5ea51d6514433067919d92331 - optee/optee_os/core/drivers/versal_trng.c
453275821dbd497ee05f6e25f01e69a4a0e96732 - optee/optee_os/core/drivers/xiphera_trng.c
488329789386ed718c577ec619a4315c61bfad80 - optee/optee_os/core/drivers/imx_i2c.c
5ab383a1f35751f76041e860257e0e0a3c2589d9 - optee/optee_os/core/drivers/versal_gpio.c
37dd20ab884cd41cc9d03a23df71144b0b97a765 - optee/optee_os/core/drivers/stpmic1.c
336c2f714f6f3c8267473f821b95e998a63e3cd1 - optee/optee_os/core/drivers/versal_sha3_384.c
54a609280735c84a28f8d94cc34c03b2316634fe - optee/optee_os/core/drivers/versal_huk.c
0cdb9912f3a35cdd9d52951d5f489087f96d327b - optee/optee_os/core/drivers/amlogic_uart.c
5e0cb642d735a12ab5988ae85b3a92aa9ffef6f3 - optee/optee_os/core/drivers/hi16xx_rng.c
236e360ae321cce536a289ebec4b6424211b595d - optee/optee_os/core/drivers/gic.c
72c106642fd5baba523177b44cceb0e2dd268bb5 - optee/optee_os/core/drivers/zynqmp_pm.c
e26dcea60a7bdcf95acd06bb25f806e8b4d3d9ff - optee/optee_os/core/drivers/bcm_gpio.c
15006081e89bc8300728779c6253899a10614a9b - optee/optee_os/core/drivers/imx_caam.c
8d04ceb536a6bf4d80820154070d8c7c642edb42 - optee/optee_os/core/drivers/sprd_uart.c
c6562bca735f2354108d76425eb80d1786bc60f4 - optee/optee_os/core/drivers/atmel_tcb.c
0a0c075afc9d78481d4d5e31b27ffeb5b2268fd3 - optee/optee_os/core/drivers/stm32_gpio.c
095d526f4c1187395f09dc20e28b5250754c1797 - optee/optee_os/core/drivers/atmel_rtc.c
8294666cb76a8dde2dc2f1155586de082381312b - optee/optee_os/core/drivers/hi16xx_uart.c
f8a2cf16ad82a5a58a932430f4155678097f4ef4 - optee/optee_os/core/drivers/ls_sec_mon.c
a5bf3dc83db9f97617b33e477a531942b3e75d81 - optee/optee_os/core/drivers/stm32_etzpc.c
58426138a9216b6f14a2fe1b3d3cd6250525b28b - optee/optee_os/core/drivers/hisi_trng.c
c22ba5f5ef7f6a34235ad0d658510c6825b62d2e - optee/optee_os/core/drivers/stm32_iwdg.c
99907094047bf316222d7f0af9b7b043693a92fd - optee/optee_os/core/drivers/imx_uart.c
5aeb71fa00b57da2074319687b417f8cfce19043 - optee/optee_os/core/drivers/hfic.c
5f7af6748259588f30732bd198cada68ea449968 - optee/optee_os/core/drivers/versal_nvm.c
2ace80614760dbbe872200c0405c3e28fe6a5880 - optee/optee_os/core/drivers/cdns_uart.c
530fee444603ac95a1d3b87bca6a175a250b92f8 - optee/optee_os/core/drivers/stm32_bsec.c
4c9d2cdbfc272ae7e69a1bea5dd20c454eb958e2 - optee/optee_os/core/drivers/smccc_trng.c
fed0f01a801201479250f34692013a5bdd4225ca - optee/optee_os/core/drivers/dra7_rng.c
138292dd3d320deb98c7243cfdb71918c02e2afe - optee/optee_os/core/drivers/imx_snvs.c
b8c4ff65271508ceb0b46a94201aa3f0315e3558 - optee/optee_os/core/drivers/pinctrl/pinctrl.c
2cb2f913ef3999b884c98aef82fd8307f3d69169 - optee/optee_os/core/drivers/pinctrl/atmel_pio.c
d0a8fc04ba4bcf51aebf34a8ac8691193668dd78 - optee/optee_os/core/drivers/wdt/watchdog_sm.c
11ae5906c65655bea1e0310e78fe9a2cd6f87709 - optee/optee_os/core/drivers/wdt/watchdog.c
dec5d60dc6ea7b921fa5ed12484476228a08c0d4 - optee/optee_os/core/drivers/regulator/regulator_dt.c
8787994f69f69e02e156488324426826b16a27ed - optee/optee_os/core/drivers/regulator/regulator.c
04332d5beb8ff3dc39195861bc9ccb54f641b015 - optee/optee_os/core/drivers/regulator/stm32_vrefbuf.c
12f730c1d7f9187a40d66c3b90615e9c0e971d19 - optee/optee_os/core/drivers/regulator/stm32mp13_regulator_iod.c
1e600f477768bc97699dab081ae2d93d11d7ea47 - optee/optee_os/core/drivers/regulator/regulator_fixed.c
525682464b93345fd90c046fdce25d6f677a4f4a - optee/optee_os/core/drivers/regulator/regulator_gpio.c
92ac150fcb4f3fbb4d74e1307ae620bf0202b800 - optee/optee_os/core/drivers/pm/sam/pm_suspend.S
2932a82f88cd223444a2033a5f5062b6ebdfaaf6 - optee/optee_os/core/drivers/pm/sam/pm-defines.c
2e32e7c1e67c58880615aa62d62335f62174b937 - optee/optee_os/core/drivers/pm/sam/at91_pm.h
399fa3fd4b68a0c3ca446add566a9e832be98b0a - optee/optee_os/core/drivers/pm/sam/at91_pm.c
4af2105f9cb20e8151aae7f9f5b9343f9c80cc2e - optee/optee_os/core/drivers/pm/sam/pm_resume.S
7cae1c15dfe3d06ef928dd5eefa14a4aec1f9d6a - optee/optee_os/core/drivers/pm/imx/gpcv2.c
676549817f71135f3b0178c78c523c84b12e5082 - optee/optee_os/core/drivers/pm/imx/local.h
2b8c1f4839c1e5b0efe66bec52afdc1f63c37726 - optee/optee_os/core/drivers/pm/imx/src.c
e675276b10ee4b5f7b2b67729fbb657d4c4c9522 - optee/optee_os/core/drivers/pm/imx/psci.c
aef7b491a53e52047bf7dd3c9150eae717ecc458 - optee/optee_os/core/drivers/tegra/t234/tegra_fuse.c
6dde88cf82c01c28a6eb27bbb5520cd326e117a6 - optee/optee_os/core/drivers/tegra/t234/tegra_se_map_device.c
01aeb814d645694dbb3a7b6cba73a8dbdb00b2c5 - optee/optee_os/core/drivers/tegra/t234/tegra_rpmb.c
2fe53582494ad0c999f05bc6bb867f0515c2fe87 - optee/optee_os/core/drivers/tegra/t234/tegra_se_aes_rng.c
657b7a4a56f717718f15b36f8e647d6aa3c85e81 - optee/optee_os/core/drivers/tegra/t234/include/tegra_se_ccc.h
d0c05c35bf7b3a14be8f22ef4a1aadbe280144bb - optee/optee_os/core/drivers/tegra/t234/include/tegra_se_ccc_errno.h
bb5f09ed357b48f6a968eb465e43988280e2a5a2 - optee/optee_os/core/drivers/tegra/t234/crypto/tegra_driver_hash.c
2aec9a4db595681f9bd4907d81cf0244c992b8a8 - optee/optee_os/core/drivers/tegra/t194/tegra_fuse.c
c67e3cfb2ca9a5fa42769943cc7e64cd190651af - optee/optee_os/core/drivers/tegra/t194/tegra_se_aes.c
e09c85691a66c623638973ebd587a1986680786d - optee/optee_os/core/drivers/tegra/t194/tegra_se_rng1.c
3b96618ecaf4ddecb14a6af70d8f80d32724299d - optee/optee_os/core/drivers/tegra/t194/tegra_se_mgnt.c
59b8fddcab1c4118b35c29a98d2e68efe471715a - optee/optee_os/core/drivers/tegra/t194/tegra_rpmb.c
88ee29ff327c35524c79fd85e9c71ffff90df695 - optee/optee_os/core/drivers/tegra/t194/include/tegra_se_mgnt.h
17ddfcb103fb3b6272fb935b6ffcf6c9277d809e - optee/optee_os/core/drivers/tegra/common/tegra_driver_se.c
174f41f9f1e928f7ec63d51501a4cec4655cdba2 - optee/optee_os/core/drivers/tegra/common/tegra_driver_fuse.c
7f9f2a7e263e7cf21f1f3f2a249d984671a196c0 - optee/optee_os/core/drivers/tegra/common/tegra_driver_srv_intf.c
32ad38d98650ec84007d8cdb4403018429dc15d6 - optee/optee_os/core/drivers/tegra/common/tegra_driver_clear_keyslots.c
d4654766a46d1186e241c2e252b6d38ac9f71355 - optee/optee_os/core/drivers/tegra/common/tegra_driver_common.c
db6b2d8179fcbc42da79480d5ee5d0ee046b8459 - optee/optee_os/core/drivers/tegra/common/tegra_driver_rng1.c
542a320020446e6712e8518616780ed091faf0de - optee/optee_os/core/drivers/tegra/common/include/tegra_driver_rng1.h
3a4cc745a837a9ffdf0c17d7ae2bea7f54161d79 - optee/optee_os/core/drivers/tegra/common/include/tegra_driver_fuse.h
1ed70b78a41a680b9fd609b2756145e19af309e6 - optee/optee_os/core/drivers/tegra/common/include/tegra_driver_srv_intf.h
352d6c58d195d5c44b8e06c006e713fe506dc77e - optee/optee_os/core/drivers/tegra/common/include/tegra_driver_common.h
4ee2de7e913868ad183b6f5459e97292199bac93 - optee/optee_os/core/drivers/tegra/common/include/tegra_driver_se.h
0f8548c5da8a36282a4683b4cbe749a21cd08cb9 - optee/optee_os/core/drivers/remoteproc/stm32_remoteproc.c
758385879c9afaea1eb9f1b85e07def0dadde420 - optee/optee_os/core/drivers/nvmem/nvmem_huk.c
00216a3e7662c8e93065826fcc5b9d1a08a3a0d4 - optee/optee_os/core/drivers/nvmem/nvmem.c
5c85e3f66b00f377246a021e0206af4ca134af19 - optee/optee_os/core/drivers/nvmem/atmel_sfc.c
f7988928ec7527a764000f09149daab97a93ae98 - optee/optee_os/core/drivers/nvmem/nvmem_die_id.c
ad920986e4bc0e99a570d96563a8fd651d98e5c6 - optee/optee_os/core/drivers/firewall/stm32_rif.c
1fe13991952d6bbc693b33615e294315900f9522 - optee/optee_os/core/drivers/firewall/stm32_rifsc.c
9c919e1b7826c8bad2ba459cc8cd4ce0035a8c45 - optee/optee_os/core/drivers/clk/clk_dt.c
497491c5aa9f4b7533a2de992b9c5ae414f45cb3 - optee/optee_os/core/drivers/clk/clk.c
2f5ae6ad224c7a1ce0808c19972c7e819292c0dd - optee/optee_os/core/drivers/clk/clk-stm32mp13.c
df9d03048fb6affa7b0eb30f116f370f8194db93 - optee/optee_os/core/drivers/clk/clk-stm32mp15.c
1432346fe6a161fe80162595b76f60e63689f1d2 - optee/optee_os/core/drivers/clk/clk-stm32-core.c
98169c49a2b31260fbbbbe0a0394251d9b62cc4f - optee/optee_os/core/drivers/clk/fixed_clk.c
c8f48d30481a1983d8c5991574a486ed83ebef49 - optee/optee_os/core/drivers/clk/clk-stm32-core.h
6e8872e62a9bcb7b22bd63c492045b8e3610c851 - optee/optee_os/core/drivers/clk/sam/sama5d2_clk.c
48f146dde6d5ca943dbc1c3d3e909da6c816cb42 - optee/optee_os/core/drivers/clk/sam/at91_peripheral.c
b101367d257bc9abab7f6653946a5290c6beb2f0 - optee/optee_os/core/drivers/clk/sam/at91_pmc.h
18acdc71569e2a780d0476642f03bc85218be532 - optee/optee_os/core/drivers/clk/sam/at91_plldiv.c
530a8ac463371dd1e9b7fa1c1ca9e30c7958808b - optee/optee_os/core/drivers/clk/sam/at91_system.c
fe1488b5f2e77d0468227c7cfc2a30712d2b529c - optee/optee_os/core/drivers/clk/sam/sama7g5_clk.c
7b04bf02eb44efee1878613f81656fd5acf46b86 - optee/optee_os/core/drivers/clk/sam/at91_generated.c
c99eceb036f865d8c6c2df48b7dd402af247fd34 - optee/optee_os/core/drivers/clk/sam/at91_programmable.c
c1c10c6ffec3be99f161ce8c6e467efd939ff7d4 - optee/optee_os/core/drivers/clk/sam/at91_utmi.c
13078eaf7868f4a2a4dcd703d8eadc76630f1b3d - optee/optee_os/core/drivers/clk/sam/at91_usb.c
e90a1c0ffe8e8d869859768ddc4f978630f52990 - optee/optee_os/core/drivers/clk/sam/at91_pll.c
3cc6160c3ae52400111c85d3c4ce08d787630856 - optee/optee_os/core/drivers/clk/sam/at91_i2s_mux.c
1cf0a55892076fb8587178bf570a91ba7a2ba82a - optee/optee_os/core/drivers/clk/sam/at91_main.c
12cb9cf9414303b0fe7c636c24a94b413fcbbf24 - optee/optee_os/core/drivers/clk/sam/at91_master.c
3e57a61dcae8fc7e3b0a9ef6fa21b454f0a6ab99 - optee/optee_os/core/drivers/clk/sam/at91_sckc.c
1050ecd58ec5f9140571e29544df45407324d89c - optee/optee_os/core/drivers/clk/sam/at91_audio_pll.c
8771db99eec65c3ff322515b835e8bda8f4ebe4d - optee/optee_os/core/drivers/clk/sam/phy-sama7-utmi-clk.c
92fb0755687c8983cedc51f140de48967a4f16a6 - optee/optee_os/core/drivers/clk/sam/clk-sam9x60-pll.c
2b9eb96b9e23c5b50710c6cb81e630ded5600812 - optee/optee_os/core/drivers/clk/sam/at91_clk.h
8cd3321b319b3e9c1131a8ccb02eaa043ff64f3d - optee/optee_os/core/drivers/clk/sam/at91_pmc.c
152f3551f54e3ee176d8a09bd21b8692d3d34ae0 - optee/optee_os/core/drivers/clk/sam/at91_h32mx.c
67bb3144d0d145d7b6f806fe9f77c21ee007c9c0 - optee/optee_os/core/drivers/rstctrl/stm32_rstctrl.c
6ea97a6c89fdbbb425562f878dd045fd6f626046 - optee/optee_os/core/drivers/rstctrl/rstctrl.c
15a98472af569d660b8ba57d3e4515f74ad49743 - optee/optee_os/core/drivers/scmi-msg/clock.c
a5fb58a50b0ccc0dde34d6fa91b0b03c5e0ca554 - optee/optee_os/core/drivers/scmi-msg/voltage_domain.c
13ed9520d3f452a3b5919a38066b702cc2f31c5b - optee/optee_os/core/drivers/scmi-msg/reset_domain.c
33be09787080f4627f5fdc10d7378880994ded05 - optee/optee_os/core/drivers/scmi-msg/entry.c
93be063666a6a98dd1fa8f45bba0c3ca91136171 - optee/optee_os/core/drivers/scmi-msg/voltage_domain.h
c85de6ce4c133bc5d968be70c2b068b613042d31 - optee/optee_os/core/drivers/scmi-msg/clock_generic.c
b6dc570c20e25ebbb69c815e65c4e3a77f6cf00d - optee/optee_os/core/drivers/scmi-msg/reset_domain.h
cf9d967498746a73d9d033a11d89d20a95631dc6 - optee/optee_os/core/drivers/scmi-msg/base.c
0faefd362396637c831c3c6823053228443f5778 - optee/optee_os/core/drivers/scmi-msg/smt.c
1420d3d8ef64053f5b6cbf009539fd6ddddf6e95 - optee/optee_os/core/drivers/scmi-msg/common.h
fbee23ad24545aea0bd9fd6ae6b67e9acc2ef16f - optee/optee_os/core/drivers/scmi-msg/base.h
189d1a32fdc699c67e4da64ae26380a2b3facd66 - optee/optee_os/core/drivers/scmi-msg/clock.h
ac6217df4e25acd1b996d379ee7dc022ea03e8a8 - optee/optee_os/core/drivers/scmi-msg/shm_msg.c
d103d5da1feea200154f02a82697d86c6294c0f4 - optee/optee_os/core/drivers/i2c/atmel_i2c.c
7da841080f45a989a835a1fec30f6aa50d847b10 - optee/optee_os/core/drivers/i2c/i2c.c
34825682d3731dc9ea51680257ae795e76a288f2 - optee/optee_os/core/drivers/imx/dcp/dcp_huk.c
590ea022b10a9c7283c5ffc2433de61c90148fb2 - optee/optee_os/core/drivers/imx/dcp/dcp_utils.c
0d6b0a14fd3b05ba3c8c21eb1a895e8e3ba465e4 - optee/optee_os/core/drivers/imx/dcp/dcp.c
2b2febd277aeda9813289b22b87000c559b8e4d8 - optee/optee_os/core/drivers/imx/dcp/include/local.h
2086f64aaa2a6e6c7903ab74de13c177b978297d - optee/optee_os/core/drivers/imx/dcp/include/dcp_utils.h
536893e1752c9cfee18bc1228f09fa04c0971db1 - optee/optee_os/core/drivers/imx/mu/imx_mu_8ulp.c
975a25a6b342dfc2b466f157acaf11910eb0c3b3 - optee/optee_os/core/drivers/imx/mu/imx_mu_platform.h
1ba75e71228b378cb3c43d6ba87f3d11140b855b - optee/optee_os/core/drivers/imx/mu/imx_mu.c
555963669dcfbb957e415c040be083676f914c2e - optee/optee_os/core/drivers/imx/mu/imx_mu_8q.c
a7009131f76447718645c703ed1373bd329a4528 - optee/optee_os/core/drivers/bnxt/bnxt_fw.c
49865544561297dc1688131470c0baaa35112a86 - optee/optee_os/core/drivers/bnxt/bnxt.c
7651789fc830ed002efb38c51f34bda32a3e8e46 - optee/optee_os/core/drivers/bnxt/bnxt_images.c
289d35c3f71ddb7a5f121fb6723e63538130bb47 - optee/optee_os/core/drivers/gpio/gpio.c
0167f0613b4286349c7403ea6c9a7dfe0a322533 - optee/optee_os/core/drivers/crypto/aspeed/hace_ast2600.c
ecc8a0a2fa12870fc85783fb7f60d717f6bf40d5 - optee/optee_os/core/drivers/crypto/aspeed/hace_ast2600.h
2702c09d55cbed00cd7326d5d6e35b12126fbe96 - optee/optee_os/core/drivers/crypto/aspeed/crypto_ast2600.c
828360f1fe0d8cb9892dd9b467df8cf52e119eea - optee/optee_os/core/drivers/crypto/versal/ipi.c
098e2cd056d7c0109c48e1c0fe7fa13577cdd79e - optee/optee_os/core/drivers/crypto/versal/authenc.c
af9a8f5b582e42214ef925abde8ba38ad8bf8763 - optee/optee_os/core/drivers/crypto/versal/ecc.c
0c3d0695339eaa6535604758e28d42e1177c52cd - optee/optee_os/core/drivers/crypto/versal/rsa.c
a7d7f00d8287e6bad7ec81709ec0463d5f483dcb - optee/optee_os/core/drivers/crypto/versal/include/ipi.h
e2ede389a1c5a24403439cd397bc8a69fc16ac0d - optee/optee_os/core/drivers/crypto/se050/session.c
374c26b225f2311ce209fecac1317c2566d76f5b - optee/optee_os/core/drivers/crypto/se050/adaptors/include/se050.h
215eeb31aae8342063f2c7eeded5fcb3979691da - optee/optee_os/core/drivers/crypto/se050/adaptors/include/se050_apdu_apis.h
ceb2e995fdceecea2d1bb9a5610a21f958a520e2 - optee/optee_os/core/drivers/crypto/se050/adaptors/include/se050_sss_apis.h
4732906bb4ca33cb409bd901b0c94c24a26055a4 - optee/optee_os/core/drivers/crypto/se050/adaptors/include/se050_user_apis.h
08160ebfd7c03896165877326736450c0d5524ae - optee/optee_os/core/drivers/crypto/se050/adaptors/include/se050_utils.h
fe046635d5ea4979e83d3bab636fa885d6ea42b8 - optee/optee_os/core/drivers/crypto/se050/adaptors/apis/user.c
938beed49b7219bc5de5f01b93c9a51b0fdb40f3 - optee/optee_os/core/drivers/crypto/se050/adaptors/apis/apdu.c
95e8665d3b38e2efdd05f50abd94fe9c48a3d2d7 - optee/optee_os/core/drivers/crypto/se050/adaptors/apis/sss.c
3238acd7dd2e169621bbe8ab9e9f93372f6b111b - optee/optee_os/core/drivers/crypto/se050/adaptors/utils/scp_config.c
ad754aaaf0b0850065a9e68027ee82642a44e817 - optee/optee_os/core/drivers/crypto/se050/adaptors/utils/info.c
6e42bccb8cc7140adefd2baee2a8f2b2c9757348 - optee/optee_os/core/drivers/crypto/se050/adaptors/utils/utils.c
05b8cb927ce8c6dc6b2c3391b71366cf1b9dfc89 - optee/optee_os/core/drivers/crypto/se050/glue/user.c
75e0506e1992b38a38a83d6805b15b095924a783 - optee/optee_os/core/drivers/crypto/se050/glue/i2c.c
64681be01124b403991ca09721e4e6c6e023b72e - optee/optee_os/core/drivers/crypto/se050/glue/i2c_imx.c
c0ffc8ba7635af755f6bc8dabf96b142cd473202 - optee/optee_os/core/drivers/crypto/se050/glue/i2c_stm32.c
bc9e0c1bff88a8c8a8b844d676d9ac9d76658357 - optee/optee_os/core/drivers/crypto/se050/glue/include/i2c_native.h
a9660506e78ca0a2ec416668e5f142dc5b0198c8 - optee/optee_os/core/drivers/crypto/se050/core/die_id.c
ee63e46c72d0cdd406a4eff3afc3de61bfc5867e - optee/optee_os/core/drivers/crypto/se050/core/scp03.c
683291b35269db2584defc67cad6d2006d59b805 - optee/optee_os/core/drivers/crypto/se050/core/rng.c
ddc645a154efbbe06890e01fc9d2e8456eba3849 - optee/optee_os/core/drivers/crypto/se050/core/apdu.c
2bfc19e0e0e85d9305249130e474588e60b28f37 - optee/optee_os/core/drivers/crypto/se050/core/cipher.c
432313af00fe913874dd57175755d4c140cc0f23 - optee/optee_os/core/drivers/crypto/se050/core/ecc.c
acd04d6ec81f1e8fcd19581e8e7d194f372b861d - optee/optee_os/core/drivers/crypto/se050/core/ctr.c
07804a4e636cd6a530a1ed8a87a523615ece79b7 - optee/optee_os/core/drivers/crypto/se050/core/storage.c
cde6ea6e53f00b5a9bd70d2d430f7380e0136efd - optee/optee_os/core/drivers/crypto/se050/core/rsa.c
77ac6992ffdbc505fd3b8113c9335ea835c5f6c1 - optee/optee_os/core/drivers/crypto/se050/core/include/se050_cipher_algorithms.h
1a9e16344dbc4eb636d939a82a556a5d286c7dd9 - optee/optee_os/core/drivers/crypto/hisilicon/hisi_qm.c
5385e76fe8f2e229eb77cffd4ae238c21c482293 - optee/optee_os/core/drivers/crypto/hisilicon/hpre_main.c
e06579463785ebd66688b38bd65af92ef788947f - optee/optee_os/core/drivers/crypto/hisilicon/include/hpre_main.h
757cdaf6c60a48e7779b7da7052b35ccf8c09382 - optee/optee_os/core/drivers/crypto/hisilicon/include/hisi_qm.h
601b922f3c15a1c4d5abb05d995f5735c1e356b9 - optee/optee_os/core/drivers/crypto/stm32/stm32_cryp.h
2f3ab4f2cb6b5d01d0b5e7842bed6baf91e5d182 - optee/optee_os/core/drivers/crypto/stm32/stm32_saes.h
8199d52c7baf643957c32674f889260cf2341dbb - optee/optee_os/core/drivers/crypto/stm32/authenc.c
b5f0d8262b85306d730358c44941245a067cb25a - optee/optee_os/core/drivers/crypto/stm32/stm32_saes.c
fcbed8594a9eb90a38465eb15df80cdbf4a1deb5 - optee/optee_os/core/drivers/crypto/stm32/cipher.c
fb67584aabc078f87f6267ea7306f830e0e46064 - optee/optee_os/core/drivers/crypto/stm32/stm32_cryp.c
b179d07b90bf70b2ed08a34fbf03c9294d1a205b - optee/optee_os/core/drivers/crypto/stm32/common.h
efb3950cfa10b5ba1a647d083e5aa06e6a5378e8 - optee/optee_os/core/drivers/crypto/caam/caam_ctrl.c
3961eb920e409de78ae8d214ce44f802b27a379c - optee/optee_os/core/drivers/crypto/caam/caam_jr.c
e50b088ae52c3e7016bce9511e39b1adfa3f0b4a - optee/optee_os/core/drivers/crypto/caam/caam_desc.c
699a8346a6775299a19d00eda00fa748fe04892d - optee/optee_os/core/drivers/crypto/caam/caam_rng.c
5abf9725310659d557245e78b391f46a589f065a - optee/optee_os/core/drivers/crypto/caam/caam_pwr.c
df4f77213b909b92241663307cddf6ab6f950c8c - optee/optee_os/core/drivers/crypto/caam/caam_key.c
f3959046a0ae29e21707eb07d7635232d3412a6e - optee/optee_os/core/drivers/crypto/caam/caam_sm.c
fdb4775e9056e6c476ffae9721aee7a2c72a56ce - optee/optee_os/core/drivers/crypto/caam/hal/imx_8m/hal_jr.c
b438abbdc31d4fba647e29cb04348c3fe1a2bc5c - optee/optee_os/core/drivers/crypto/caam/hal/imx_8m/hal_ctrl.c
ae43fe99412d31c2f21f732a6798cda49fa12d3d - optee/optee_os/core/drivers/crypto/caam/hal/imx_8m/hal_clk.c
e2251ce08c70bf59c08a56cd48659683536708df - optee/optee_os/core/drivers/crypto/caam/hal/imx_8m/registers/ctrl_regs.h
fdb4bbc22ae4a6acae04a6b7205f78f74e7847ba - optee/optee_os/core/drivers/crypto/caam/hal/imx_6_7/hal_clk_mx7ulp.c
08fa37b12c023eb7169ed6b3c069ecde04fb9ed1 - optee/optee_os/core/drivers/crypto/caam/hal/imx_6_7/hal_jr.c
08ea1bfa1f790800d596ee9616bae2ec31390970 - optee/optee_os/core/drivers/crypto/caam/hal/imx_6_7/hal_ctrl.c
dc2680e783f647bce21513453573f8f426d9ae8d - optee/optee_os/core/drivers/crypto/caam/hal/imx_6_7/hal_clk_mx6.c
a8796a5f28445049f810dd2b2cf6bd4700d39090 - optee/optee_os/core/drivers/crypto/caam/hal/imx_6_7/hal_clk_mx7.c
fee09baaa8fd82c62ecca9d059220329bb51e466 - optee/optee_os/core/drivers/crypto/caam/hal/imx_6_7/registers/ctrl_regs.h
75e141d842a44be2fc54fc9aa3d6233d43786cf8 - optee/optee_os/core/drivers/crypto/caam/hal/common/hal_cfg_dt.c
aad80d84aafe3253f980f8e72ad014fa860f51ac - optee/optee_os/core/drivers/crypto/caam/hal/common/hal_jr.c
bbed4e39b9bcd1f945beda876fda141a02a74f4b - optee/optee_os/core/drivers/crypto/caam/hal/common/hal_ctrl.c
8db1294f384bce6384f85139c546c8efbb4fe62c - optee/optee_os/core/drivers/crypto/caam/hal/common/hal_rng.c
b16e31abdbe671ee4a824e1bb701902be03edb0d - optee/optee_os/core/drivers/crypto/caam/hal/common/hal_sm.c
62b95ec89eb5763cd260f23face8cdb73f51bc9e - optee/optee_os/core/drivers/crypto/caam/hal/common/hal_cfg.c
e7c18e488182d4bf3c8c821885db52c980fb5f7a - optee/optee_os/core/drivers/crypto/caam/hal/common/registers/version_regs.h
1061deddc2311407d8fa66dfe6df6e9c74ffda39 - optee/optee_os/core/drivers/crypto/caam/hal/common/registers/rng_regs.h
5d8a12ee896ae3c8e60ef64f2bc85b31aef2d9c7 - optee/optee_os/core/drivers/crypto/caam/hal/common/registers/jr_regs.h
79bf2c681239bff0327007e0823aa9bc43f46ae5 - optee/optee_os/core/drivers/crypto/caam/hal/common/registers/sm_regs.h
a70a4c8d70b51affd3d9132d1923186a531b7f4b - optee/optee_os/core/drivers/crypto/caam/hal/imx_8ulp/hal_jr.c
72df54a7f3d911d758cad690990fec5962c2ceb4 - optee/optee_os/core/drivers/crypto/caam/hal/imx_8ulp/hal_ctrl.c
7bbd78ddb18f062b0ee9521f445979c6acb2ee1e - optee/optee_os/core/drivers/crypto/caam/hal/imx_8ulp/hal_clk.c
dc66e73bb6be55941cae77b073fdaab8d4badfc5 - optee/optee_os/core/drivers/crypto/caam/hal/imx_8ulp/registers/ctrl_regs.h
37d6f6801f8b77cfaa1e789b65d9bc5e1b44bdbe - optee/optee_os/core/drivers/crypto/caam/hal/imx_8q/hal_jr.c
b2e468ca406a0ecd02357d0d17e4018a6c68bd49 - optee/optee_os/core/drivers/crypto/caam/hal/imx_8q/hal_ctrl.c
05f90a24f3fbacc399604028453c4885f1e107f0 - optee/optee_os/core/drivers/crypto/caam/hal/imx_8q/hal_rng.c
59ec0c7059f65e67d8cde311155d4f1e67a49718 - optee/optee_os/core/drivers/crypto/caam/hal/imx_8q/hal_cfg.c
d375b61195f07cb019b6c1c76272b00409fd8626 - optee/optee_os/core/drivers/crypto/caam/hal/imx_8q/hal_clk.c
aa940d1d85879826ef54d8a93ceac16d8134c9f9 - optee/optee_os/core/drivers/crypto/caam/hal/imx_8q/registers/ctrl_regs.h
13a69ec0385f79f1b8ad1c9de90b79c0a2c82365 - optee/optee_os/core/drivers/crypto/caam/hal/ls/hal_jr.c
63e5eb66976364a49eabd3680df526f36f7c51cc - optee/optee_os/core/drivers/crypto/caam/hal/ls/hal_ctrl.c
ad05613f64dba65f1576f358f3d0ad0182e393f3 - optee/optee_os/core/drivers/crypto/caam/hal/ls/hal_clk.c
db232940b3c2f122c53b11e6dec5e70c5ec347d8 - optee/optee_os/core/drivers/crypto/caam/hal/ls/registers/ctrl_regs.h
1c222211eb56c4447e53ae06851aeb468c7423c1 - optee/optee_os/core/drivers/crypto/caam/acipher/caam_ecc.c
b344e97a5a51b3bc2f8cb52dcc2fe9adbdaa3e02 - optee/optee_os/core/drivers/crypto/caam/acipher/caam_dh.c
f677ba67d639efb7e1d7aebdc1a4b96eca37fa2f - optee/optee_os/core/drivers/crypto/caam/acipher/local.h
809e7d9d1c8018be4c447fa948a3954dbd7738ab - optee/optee_os/core/drivers/crypto/caam/acipher/caam_prime_rsa.c
7b9390d54de54fa7f6778b6a73a75799cb97fe1f - optee/optee_os/core/drivers/crypto/caam/acipher/caam_math.c
eca8db4225df0c60977968141451b3500fd30eda - optee/optee_os/core/drivers/crypto/caam/acipher/caam_dsa.c
91c843a382b813a556a3192e3b89d4f6e2330afe - optee/optee_os/core/drivers/crypto/caam/acipher/caam_prime_dsa.c
3be0a9dac0a7d29db56b054f58f8483795177eb6 - optee/optee_os/core/drivers/crypto/caam/acipher/caam_rsa.c
981c3652730c78df0fa0ab1841ce939ae699d9f9 - optee/optee_os/core/drivers/crypto/caam/cipher/caam_cipher.c
b1050722e24889ba59c987cb274897949dcd39a7 - optee/optee_os/core/drivers/crypto/caam/cipher/local.h
7c67490b6b2e00a9435c568bac2bbee4069ccc38 - optee/optee_os/core/drivers/crypto/caam/cipher/caam_cipher_mac.c
149c2203a9171fda3be98cdeace47e7be4d8c8aa - optee/optee_os/core/drivers/crypto/caam/cipher/caam_cipher_xts.c
240eae18f54b7ba6f442845afea7c4b916b911f8 - optee/optee_os/core/drivers/crypto/caam/hash/caam_hash_mac.c
d8824580f4b1889d9a23ddd2047c3b102b9e7a17 - optee/optee_os/core/drivers/crypto/caam/hash/local.h
731f10c0a7fe34860f0d1d21271b01a8a378b1a9 - optee/optee_os/core/drivers/crypto/caam/hash/caam_hash.c
0a5a24f76cbb0ec22c85016a7db24bb4694e66cc - optee/optee_os/core/drivers/crypto/caam/mp/caam_mp.c
2f780d7215aa1c23b998dfe17edabba1d0f4b1f9 - optee/optee_os/core/drivers/crypto/caam/include/caam_acipher.h
eb20c569c7f68eb8f8a1eb16eb82c24a8ac4cd9b - optee/optee_os/core/drivers/crypto/caam/include/caam_jr.h
912d6553b392b20581d016f9eba91479662d6062 - optee/optee_os/core/drivers/crypto/caam/include/caam_blob.h
1f43c71456b997c24eb44cfb6ce30f4558931b42 - optee/optee_os/core/drivers/crypto/caam/include/caam_utils_status.h
d43f75ad0f55131ccce9ec1aa4ca58872a8fc8b7 - optee/optee_os/core/drivers/crypto/caam/include/caam_desc_defines.h
3cefd9acd10d65bb6c61f2e0aec31f43e48f6abb - optee/optee_os/core/drivers/crypto/caam/include/caam_utils_mem.h
f782be2c739055bbdf95842d912e891293d0c1fb - optee/optee_os/core/drivers/crypto/caam/include/caam_hal_rng.h
bc18f3fc396e705bd01c6d443fa911800700bb8d - optee/optee_os/core/drivers/crypto/caam/include/caam_hal_ctrl.h
631d3ce5a38c82b07ae1a14ee6b6cb5ef95d32ba - optee/optee_os/core/drivers/crypto/caam/include/caam_status.h
2ffbbb6180a3ba5fcc49f2958836e6391a2c7375 - optee/optee_os/core/drivers/crypto/caam/include/caam_hash.h
3831fd7967d2e9a71b3b958e87a4dc3f1eb38261 - optee/optee_os/core/drivers/crypto/caam/include/caam_hal_sm.h
898dd496c1a8f25b592f261d9d13a74d3873ff7e - optee/optee_os/core/drivers/crypto/caam/include/caam_pwr.h
a1083a9ff0bc9f8b3c8fbd60ea263a88488951a3 - optee/optee_os/core/drivers/crypto/caam/include/caam_desc_helper.h
7c8acb595959705bbf481d1ffcdda173637dccbf - optee/optee_os/core/drivers/crypto/caam/include/caam_mp.h
f60708cc4c84df857fc20cdef0710a388ecd56f8 - optee/optee_os/core/drivers/crypto/caam/include/caam_io.h
74a055714e2db637adc0291d19cea1c02974e030 - optee/optee_os/core/drivers/crypto/caam/include/caam_hal_clk.h
ee68dcf290038d3ebad07beabb3517b5860bc3f5 - optee/optee_os/core/drivers/crypto/caam/include/caam_utils_delay.h
7be3b8463755df707782bdaee0ed26c692c0f32b - optee/optee_os/core/drivers/crypto/caam/include/caam_jr_status.h
aedd672ed034e8265f35ebab812a5af4135e94d2 - optee/optee_os/core/drivers/crypto/caam/include/caam_rng.h
7e8b656ec0076e7092003e5db98cbed4ea9a458b - optee/optee_os/core/drivers/crypto/caam/include/caam_trace.h
dcc86d041d08d62d6fe7acb03e2380804af1118b - optee/optee_os/core/drivers/crypto/caam/include/caam_cipher.h
21e39b796944181921ccaee48afdda1cf8ce8f83 - optee/optee_os/core/drivers/crypto/caam/include/caam_hal_jr.h
b6481ab7a2c7318250e4e38c57291ffa69016129 - optee/optee_os/core/drivers/crypto/caam/include/caam_sm.h
d23a06ce5206f043b33f8ee8d4e6bfd62d8bb981 - optee/optee_os/core/drivers/crypto/caam/include/caam_types.h
8266a0db8e50af51f61dbe0ad34e4c4f30dbfc1a - optee/optee_os/core/drivers/crypto/caam/include/caam_key.h
0d6de8f72472e2554ab7666852ac52a37175465f - optee/optee_os/core/drivers/crypto/caam/include/caam_utils_sgt.h
547857b357f6594d407d46fcab2f93fa7074d3cd - optee/optee_os/core/drivers/crypto/caam/include/caam_common.h
42cc84af73a8980ed1e51aac57b7ac2bfe8ea567 - optee/optee_os/core/drivers/crypto/caam/include/caam_hal_cfg.h
3a804ad72278dc57b300a9df498d00db63fcefb6 - optee/optee_os/core/drivers/crypto/caam/include/caam_utils_dmaobj.h
cfa13823918f625810c9958b6499358d179c8960 - optee/optee_os/core/drivers/crypto/caam/include/caam_desc_ccb_defines.h
eb43fbde76dd94674bb94f9d314b9c0246403ac0 - optee/optee_os/core/drivers/crypto/caam/blob/caam_blob.c
5d2441d5350d00687dd8e35d19f42faedbb632ee - optee/optee_os/core/drivers/crypto/caam/blob/caam_dek.c
0f4455a2b7723d3cc63f4f0d0623d29b0363b39a - optee/optee_os/core/drivers/crypto/caam/utils/utils_status.c
a5f84b35d9776908441db01241d508dfe83a3347 - optee/optee_os/core/drivers/crypto/caam/utils/utils_dmaobj.c
06d77bc7f344869783912b109cd485ef4e8590ad - optee/optee_os/core/drivers/crypto/caam/utils/utils_mem.c
a34c25f439fb74912fddf47fac4b0295ba1effa6 - optee/optee_os/core/drivers/crypto/caam/utils/utils_sgt_v1.c
130800ee65979019cc2117d690340aaa75cd92a9 - optee/optee_os/core/drivers/crypto/caam/utils/utils_sgt.c
dc70d7f20e3b0430b6dd2fe0dd0261c929d3db6a - optee/optee_os/core/drivers/crypto/caam/utils/utils_delay.c
7c483d7465e733ab3503e26d161daafaa25755be - optee/optee_os/core/drivers/crypto/caam/utils/utils_sgt_v2.c
bb297b79a3f0cc6cb59b1a18f8d19242c9fc12b7 - optee/optee_os/core/drivers/crypto/crypto_api/drvcrypt.c
a6e4483d1fd80f6f7f23a89a9e1ead0fbfcf65d9 - optee/optee_os/core/drivers/crypto/crypto_api/mac/mac.c
d235d21c1de200d48e91b12063eb2f8f1caf0881 - optee/optee_os/core/drivers/crypto/crypto_api/acipher/local.h
38819ea8744620f296d47e0b1cab78567242c9fc - optee/optee_os/core/drivers/crypto/crypto_api/acipher/rsassa.c
46947c70982d23fe999c5a70666a676833b13725 - optee/optee_os/core/drivers/crypto/crypto_api/acipher/ecc.c
013e32cb9018761e86ee0b8b5d19b5c2089902db - optee/optee_os/core/drivers/crypto/crypto_api/acipher/rsamgf.c
979dd11c468df335b342654f7263949e51d1535a - optee/optee_os/core/drivers/crypto/crypto_api/acipher/dsa.c
7ac822e6fdd1cdb08537631b7e8a3a823a0af57e - optee/optee_os/core/drivers/crypto/crypto_api/acipher/rsa.c
1e295f6ab5c32f104ea23abb3978af44f64547bf - optee/optee_os/core/drivers/crypto/crypto_api/acipher/dh.c
8ddc0db04f5251ffd3c0beb7d3947298685d5cf4 - optee/optee_os/core/drivers/crypto/crypto_api/cipher/cipher.c
5104681db824caa455d34ffcb91e6bad1b8afad7 - optee/optee_os/core/drivers/crypto/crypto_api/oid/hash_oid.c
e867ba1d32e367e1e498b6fd909c71127118cb1b - optee/optee_os/core/drivers/crypto/crypto_api/hash/hash.c
5e52cbf60af910c8238cdc945b75c611ab59ad08 - optee/optee_os/core/drivers/crypto/crypto_api/include/drvcrypt_mac.h
622acb83b02d0d5e1f8cc107df2871c1d99220b5 - optee/optee_os/core/drivers/crypto/crypto_api/include/drvcrypt_math.h
f8f01711239d5a9fc6ece9f19e40d2f805b04c3a - optee/optee_os/core/drivers/crypto/crypto_api/include/drvcrypt_authenc.h
b70e470e5e716917b0983224109234da6d526139 - optee/optee_os/core/drivers/crypto/crypto_api/include/drvcrypt_asn1_oid.h
208419d7c303ed2af4a123d73612ffc734f88acb - optee/optee_os/core/drivers/crypto/crypto_api/include/drvcrypt_cipher.h
ccc63fa2a34f969b16948eb42489b17fba61d352 - optee/optee_os/core/drivers/crypto/crypto_api/include/drvcrypt_hash.h
8a2b361dc6d53a49514314969ea94af861314241 - optee/optee_os/core/drivers/crypto/crypto_api/include/drvcrypt.h
bd9d68e0b833479e5a83ac90bbb55776791434c0 - optee/optee_os/core/drivers/crypto/crypto_api/include/drvcrypt_acipher.h
30d67ef67cd36d0794f2055d1705d14905f3ab0b - optee/optee_os/core/drivers/crypto/crypto_api/authenc/authenc.c
3502395b082081a4c3f6e68c5f0774a90715d7bd - optee/optee_os/core/drivers/crypto/crypto_api/math/modulus.c
b1b96d68d4bf3e82a538f91afea8b87b5c0f43f6 - optee/optee_os/core/drivers/rtc/rtc.c
843216e2097db39b59f4ed88b5f4422475008878 - optee/optee_os/core/tests/notif_test_wd.c
22edc57cadee3b6787489b0d44956d4bbeec2ab6 - optee/optee_os/core/tests/ftmn_boot_tests.c
95db84ed2db1edad93dd163e910a57e8a493e1af - optee/optee_os/core/kernel/ubsan.c
a81400384a7af050ce6655fe6cbce6764c11336c - optee/optee_os/core/kernel/tee_misc.c
3eab63aa13442a732d757c7b98dcbf84c5ca5782 - optee/optee_os/core/kernel/notif.c
1beba0db1ff1f826641fd640ce1927e68758f838 - optee/optee_os/core/kernel/early_ta.c
0a4f43b4d4ae6202abe451e4d5b89b295b6c69ab - optee/optee_os/core/kernel/nv_counter.c
c150b4e1f0b0906ce608d1354af8d0a722da86e7 - optee/optee_os/core/kernel/dt_driver.c
3f6a42889e84d4b674901b0cc5d83f5146e84506 - optee/optee_os/core/kernel/trace_ext.c
816e78200c8dc67e4942dc7453e0b3244e3b2aea - optee/optee_os/core/kernel/dt.c
9ac56717aa2a733944a03a9646b90bc16d817535 - optee/optee_os/core/kernel/mutex.c
aeea2000adf22742f11bf2f37577da2d641ba9ff - optee/optee_os/core/kernel/ldelf_syscalls.c
2434b4d3b027cbf76b22f7245fd1764390bfe3a1 - optee/optee_os/core/kernel/user_access.c
309c59c03e9e9577dff0819b23e420d73280278b - optee/optee_os/core/kernel/refcount.c
7be1928ee7e34f7f47f52b99bce43e0024f06a44 - optee/optee_os/core/kernel/assert.c
417bc2dbf92f6a481e18233c7237d492361f4106 - optee/optee_os/core/kernel/panic.c
44103fc460d59f0a919bb3c07cf1944aa91ae2f4 - optee/optee_os/core/kernel/tee_time.c
8b3381928033ddd7c37a99aad2e60a229fbcdbd6 - optee/optee_os/core/kernel/embedded_ts.c
9975d02cd73795987cd451389809dfce9a902e9b - optee/optee_os/core/kernel/user_mode_ctx.c
d259aa482d7c511f3d52cfeaa64953ad08d56223 - optee/optee_os/core/kernel/ree_fs_ta.c
28790afb155662f972fbd11f4d06c6baf1c54260 - optee/optee_os/core/kernel/pseudo_ta.c
cabaa99807cb88c99fde2bd61eeb6768e35983e3 - optee/optee_os/core/kernel/console.c
fd81d6b6ad33c46f7627aeb1afb49530b9c36898 - optee/optee_os/core/kernel/ldelf_loader.c
221e610e4adbc3cd9e97867d9d1ae548a818fdfd - optee/optee_os/core/kernel/ts_manager.c
93124514b7ec652f01b26753e0fbe172e526412c - optee/optee_os/core/kernel/tpm.c
55966f5406e5879e4b98143e47868368d9247225 - optee/optee_os/core/kernel/callout.c
f31d663584038d598520283f7cea7ff093871a2d - optee/optee_os/core/kernel/tee_time_ree.c
94e2c0c379ce289434664a0320006df2fbae034b - optee/optee_os/core/kernel/msg_param.c
892e55c191245007f2bf20567c307871cd426060 - optee/optee_os/core/kernel/interrupt.c
e0f7be46eb2d862733bba0c834997c6d4203d425 - optee/optee_os/core/kernel/pm.c
a26e6665b04355864f7f98807e57d6d4d568fc63 - optee/optee_os/core/kernel/notif_default.c
bf3cb1de7bd749b2628925f3a1b32fa1b6085826 - optee/optee_os/core/kernel/transfer_list.c
98fd2892161b2b537e6e91e8e7c6f6a59c55de82 - optee/optee_os/core/kernel/semihosting.c
76b1d45323c31ed6bd5987d7d7400d15d4832eee - optee/optee_os/core/kernel/delay.c
ed43b747e9e9f2732be9fde2e036575eb84fbae0 - optee/optee_os/core/kernel/scall.c
9323261c4542f4f78ce0668852a81df361a9953e - optee/optee_os/core/kernel/initcall.c
de1675480ef4043349e0bc3875749598f8092a54 - optee/optee_os/core/kernel/show_conf.c
693a3b47871398f69679ce69211649fcf704261b - optee/optee_os/core/kernel/asan.c
1392391e0dc7cfbd68e9b5738cb0b747ed13ab29 - optee/optee_os/core/kernel/wait_queue.c
bccabf562ac6d81f8c7d94841b23d160fb1a48ac - optee/optee_os/core/kernel/tee_ta_manager.c
7aeef825f355d2436dc4fd47d92ca857decaa195 - optee/optee_os/core/kernel/spin_lock_debug.c
21449d26573f5cefed595f37780b901b7b937304 - optee/optee_os/core/kernel/mutex_lockdep.h
813e8ed14c578b5b735b29cae3bbb42af9f03a58 - optee/optee_os/core/kernel/handle.c
1b0bede72d10c96c528f188c6afdecf4306b97bf - optee/optee_os/core/kernel/secstor_ta.c
8abe5fcfb8a632e1c77c0e0f92bbc0414f1e2857 - optee/optee_os/core/kernel/mutex_lockdep.c
1962b8040874d00636c9541f532f3ee5b2ef4f16 - optee/optee_os/core/kernel/scattered_array.c
2a1975e7689ec6a1b519c0301e47924240440878 - optee/optee_os/core/kernel/thread.c
6e6b6a100da1286e715cf135ad873d4bf9063715 - optee/optee_os/core/kernel/user_ta.c
02448f355229caa2a32a4411c3198eb084395320 - optee/optee_os/core/kernel/lockdep.c
f4b199a80f0476f43f34060f72493f81a289748e - optee/optee_os/core/kernel/otp_stubs.c
f7c65c67d04a7829967fe1b8c657314f645a5ab9 - optee/optee_os/core/kernel/huk_subkey.c
2bfc17f9e38fa5fd9c637a5cd1ddcce6300ced48 - optee/optee_os/core/crypto/rng_fortuna.c
6ee664faf892cf6eb54780694431dbc599714a4c - optee/optee_os/core/crypto/aes-gcm-sw.c
5e7555e339aca88d6573eef4844fe96171e073ef - optee/optee_os/core/crypto/sm4.c
e73ae6d522f149d7ffc117d3f026bd44fcd262c0 - optee/optee_os/core/crypto/aes-cts.c
057545a9e027cdd9daa7be1500acbb767b134a5a - optee/optee_os/core/crypto/rng_hw.c
d5a046c4f72b832688b7ba9a347dc8aaa9da47cf - optee/optee_os/core/crypto/sm3.c
8136a818dce4a27b5d4375a2ed743707222337cd - optee/optee_os/core/crypto/crypto.c
135fa97faba70e8a9e76d02ac418349f734e5971 - optee/optee_os/core/crypto/sm3-hmac.c
5e36787d311129f8c3649eed00a7bc54de3dc471 - optee/optee_os/core/crypto/sm4-xts.c
7b6658854eec61d103f730922493a99440ca594d - optee/optee_os/core/crypto/sm4-cbc.c
be1aa6aee3798fdc77ebc0a6b37bf5a80fc3baee - optee/optee_os/core/crypto/sm4-ctr.c
e68ca1aeee7c839ed6427892eba453b827fe73a5 - optee/optee_os/core/crypto/sm4-ecb.c
ed4f8a199dfc091202a84e729efc08be8166e573 - optee/optee_os/core/crypto/sm3.h
a730ddd73aac7bf7e2f4530cb84b4139920cc30e - optee/optee_os/core/crypto/sm4_accel.c
8f248f23b28edaaa10678438d9965c0cb94c6a48 - optee/optee_os/core/crypto/aes-gcm-ghash-tbl.c
35204fa717049aa26af2abef06d5466dd22b09a0 - optee/optee_os/core/crypto/sm3-hash.c
7c5fada22f5c639a3b8aef284822d484e1a0c7ae - optee/optee_os/core/crypto/cbc-mac.c
82c796645d5446d81b6013ad6338920da67f8ee6 - optee/optee_os/core/crypto/sm4.h
8616cfea725a82c1c4544264382e782985f9d153 - optee/optee_os/core/crypto/aes-gcm.c
3c8f23a338eea10aca5682c64d8a12902fc433f5 - optee/optee_os/core/crypto/sm2-kdf.c
4a9aec205bda6db9f341b00e62940610c4e3e728 - optee/optee_os/core/crypto/signed_hdr.c
91c83678702ef358777559205b8c2c775789c87a - optee/optee_os/ta/user_ta_header.c
32f326f4c0f102b4ee4c9ba88d7d1760b803237c - optee/optee_os/ta/pkcs11/Makefile
a6e947a9f3f7337320b8940c40d8441cb477073a - optee/optee_os/ta/pkcs11/scripts/verify-helpers.sh
e766a0c478f5e52ce2ea56f842f8e012f68427af - optee/optee_os/ta/pkcs11/scripts/dump_ec_curve_params.sh
048e947aac490abffbce35e24ad1bfc69bc5ac83 - optee/optee_os/ta/pkcs11/include/pkcs11_ta.h
9f912a950243969c9bd8bcd1a3f8a7672a7c8ef4 - optee/optee_os/ta/pkcs11/src/pkcs11_token.h
9bf2174cd5400ba8a556261a46c0aea1a5f0504e - optee/optee_os/ta/pkcs11/src/processing.h
8a63bd474856b01d14303d306048e3981ddf19c4 - optee/optee_os/ta/pkcs11/src/entry.c
0f72c03b0ed1543181e76fad7ef7b4fc1b5c5219 - optee/optee_os/ta/pkcs11/src/object.c
f6be4d7e2f874ba52219afaf071f4367deb9836e - optee/optee_os/ta/pkcs11/src/processing_ec.c
5d4af2af14cf8c06a09e6cd0d5d40a28c60b9fa7 - optee/optee_os/ta/pkcs11/src/processing_symm.c
aee16d7bf1c5d2a0c39c6a5112cec71f528421b3 - optee/optee_os/ta/pkcs11/src/user_ta_header_defines.h
ae9d768bd9244e2db1ccbd555c05eb4b9e3eac14 - optee/optee_os/ta/pkcs11/src/processing.c
0e3dca0597af48781c952400ea4ecad857110eef - optee/optee_os/ta/pkcs11/src/serializer.h
e1a1a97f5050d21eae952c8db75322333235309a - optee/optee_os/ta/pkcs11/src/sanitize_object.c
aaff008a064e973b8f57ec40853d5935a7fd36cd - optee/optee_os/ta/pkcs11/src/pkcs11_helpers.h
9d7de06484bf080c9fb9d2922ea6a4d808edce81 - optee/optee_os/ta/pkcs11/src/sanitize_object.h
03548923ad53ebeb43856bb7cee45d24b899dbce - optee/optee_os/ta/pkcs11/src/pkcs11_attributes.c
114f7df1ed43dd70f8b8de1604d73c0be609664c - optee/optee_os/ta/pkcs11/src/processing_asymm.c
84f772fd6ba20b3e261cde79ea54a10da7f542dc - optee/optee_os/ta/pkcs11/src/pkcs11_token.c
894d688c805cbbca2bde46ae5dfcf38092d7e8dd - optee/optee_os/ta/pkcs11/src/attributes.h
ed1904bbe93d945ae27a1c8a5fceb6eeeb5e9135 - optee/optee_os/ta/pkcs11/src/token_capabilities.c
26dc92427964930f69b616be7c77b90da4bcb8df - optee/optee_os/ta/pkcs11/src/object.h
2cdc8362b15bac1a4efd183cdb7f8eb495875a65 - optee/optee_os/ta/pkcs11/src/pkcs11_helpers.c
dd669facb02254f0bc7ea46368aa8a0b4a91b373 - optee/optee_os/ta/pkcs11/src/handle.c
8c9b1335779fc8cc85d4a9057276dc5b237c3c41 - optee/optee_os/ta/pkcs11/src/attributes.c
5f8de729864d1ad926d2f9ec4ef37e8ff38ceb70 - optee/optee_os/ta/pkcs11/src/serializer.c
4b7dbda490ed1c5ac55d3357b440a8f012c647d5 - optee/optee_os/ta/pkcs11/src/persistent_token.c
a199684d2e257ba2568ad8c8d6788b9e4e8abcab - optee/optee_os/ta/pkcs11/src/token_capabilities.h
9740a8f2cd4228a931861239615d6f0565541730 - optee/optee_os/ta/pkcs11/src/handle.h
9e799d40bc5157fad91180105d091bf81c2695ab - optee/optee_os/ta/pkcs11/src/processing_digest.c
8b6c55e93d111035599141cb97c51bd50631817c - optee/optee_os/ta/pkcs11/src/processing_aes.c
1db1e2fc44c7afd4cfa93f2b32750e814aeff77b - optee/optee_os/ta/pkcs11/src/pkcs11_attributes.h
0aa2868227123053da7d9368bc3640a839d4e682 - optee/optee_os/ta/pkcs11/src/processing_rsa.c
6ce862868db1d139be88ffc2fa433b9f85a089dd - optee/optee_os/ta/remoteproc/Makefile
e9c8b0e7823787c4fa84725f41a45595f8ad8309 - optee/optee_os/ta/remoteproc/include/ta_remoteproc.h
c6760c67a37a18f9055ec466b20753434d64e9f0 - optee/optee_os/ta/remoteproc/src/remoteproc_core.c
c1f49c2292f12b9f1ec2111a6cdae3e2e1834afd - optee/optee_os/ta/remoteproc/src/elf_parser.h
e9b100254cc04ff146b7b63d2b5481f702007507 - optee/optee_os/ta/remoteproc/src/elf_parser.c
e492697cf2d2e97abde9c2175b8d72f598868312 - optee/optee_os/ta/remoteproc/src/user_ta_header_defines.h
cc0a07d6f59b29a9ec0e01f5ca6a378b3d445248 - optee/optee_os/ta/avb/Makefile
db8e85c91fed835a1d918c50afc26d97eccc131e - optee/optee_os/ta/avb/entry.c
78100b9031d82bc62fe38e0650f780d2c18f2f5b - optee/optee_os/ta/avb/user_ta_header_defines.h
04d61d12d0b618ec98f1f36f7aac7e7f6a0bada7 - optee/optee_os/ta/avb/include/ta_avb.h
f4be3da6e57a11e1c68fa2328f442963bf259f0c - optee/optee_os/ta/arch/riscv/ta.ld.S
47eac8b54f94d5d5a52a43ad5554f4e4c3f7ae62 - optee/optee_os/ta/arch/arm/ta.ld.S
44f007aca97998b425d27b7af67779c039d4d8d7 - optee/optee_os/ta/arch/arm/ta_entry_a32.S
50fac4ba9aede25524155ad8cd8cdd905f195a87 - optee/optee_os/ta/trusted_keys/entry.c
b28af208dabadef396024e4007f36154699e975b - optee/optee_os/ta/trusted_keys/user_ta_header_defines.h
8ff25744520aea7259967d34911798667d2cf6fd - optee/optee_os/ta/trusted_keys/include/trusted_keys.h
857d0e9eef00f7eecbb7f9eecedfae0ab2cd3366 - optee/optee_os/prebuilt/t234/libcommon_crypto.a
1764bfc2b32f604e3b3b7d735ce13aebfbd84d74 - optee/optee_test/Makefile
30a64b524a40d63d6e6f97698875a98100706c59 - optee/optee_test/LICENSE.md
1677c508f843daf45fcf3a1e8c23dacf24f2f222 - optee/optee_test/README.md
9f9d1e370fe395412ffa6a5bc7d21a13586d1551 - optee/optee_test/typedefs.checkpatch
72d26f74f4c2afb8675278b599c37c055eeeee59 - optee/optee_test/scripts/file_to_c.py
d178f675a81f53b7e725d270b25fadc6b064d6f8 - optee/optee_test/scripts/checkpatch.sh
3bef832a16e054c84c76c9efc89b3948ce5b0589 - optee/optee_test/scripts/rsp_to_gcm_test.py
0545607f4b3fd8f7d31fa40ceddfabc907bfb06b - optee/optee_test/scripts/aes_gcm_test.py
c6f2d858387614cd7e1ba883db5977638bbcfd55 - optee/optee_test/host/supp_plugin/Makefile
c035f30f1e5286ab496634f87b76fca573244cec - optee/optee_test/host/supp_plugin/test_supp_plugin.c
fa35e416cf42119ff66e1a064a4d5db8c785118e - optee/optee_test/host/supp_plugin/include/test_supp_plugin.h
1c0d518167dbd004a55feb971308505c53869a40 - optee/optee_test/host/xtest/sock_server.h
9af5cc1bb69f89b1501ceba2daea681936af8889 - optee/optee_test/host/xtest/ffa_spmc_1000.c
99e8b9a2f56ea25f5ff71ba126a28d51208cb2f6 - optee/optee_test/host/xtest/clear_storage.c
0e4e675b01c2f3a1bf1ed7ff6630b17fd4f0861b - optee/optee_test/host/xtest/Makefile
c546d1c8398ea1f2a5718cc966c2abeca418dad3 - optee/optee_test/host/xtest/xtest_main.c
24ba696e706583a4a4a94d7c43e8c31d986c47d0 - optee/optee_test/host/xtest/symm_cipher_perf.c
97f93f7703f25e42f830363a054f94fa70106e3f - optee/optee_test/host/xtest/xtest_test.h
3203c2511c56b80cf0757ce40aff2627e1589f54 - optee/optee_test/host/xtest/regression_5000.c
b8ec54c51ef808cf8e681d82cc13d6c180380a2c - optee/optee_test/host/xtest/xtest_uuid_helpers.c
d9f2461c2a9d755472e666b2c5b60fe21ae7f431 - optee/optee_test/host/xtest/regression_8100.c
27d3681d1dde596e9363305f28906b4b8e53e1f3 - optee/optee_test/host/xtest/crypto_common.h
d4e67633393e1eafbf02639e218f430a71cb978d - optee/optee_test/host/xtest/xtest_helpers.c
12ca0aa8361d1e3bdbf54e11e288ca087745ce14 - optee/optee_test/host/xtest/benchmark_1000.c
1049f2d88d1a17c10c65e55629e4d86b0f182367 - optee/optee_test/host/xtest/regression_1000.c
66930a95666bc4c78d83c2cb4c087aa37a4d42b0 - optee/optee_test/host/xtest/regression_4000_data.h
aeb9e6f5f8382411a15b0321473fd05148890a09 - optee/optee_test/host/xtest/pkcs11_1000.h
a611cff7cdaf3b04d87eef15c299048990ec3ea1 - optee/optee_test/host/xtest/xtest_helpers.h
9e020836d511e6e309f374901ad228d82443e779 - optee/optee_test/host/xtest/hash_perf.c
4e533d0531c352071ee236302dab1c2fed2068d6 - optee/optee_test/host/xtest/install_ta.h
6074430df45012584a40484c4ed72373bcbbe599 - optee/optee_test/host/xtest/benchmark_2000.c
52b11c0af213c40771048607e3da5eb5943e0d98 - optee/optee_test/host/xtest/regression_2000.c
f3517bebcb21463533c4004d029833eaf5cde12f - optee/optee_test/host/xtest/xtest_uuid_helpers.h
e1fb4f35907beabaf3b0dbe646b45d64d4aa5d03 - optee/optee_test/host/xtest/stats.h
01ce700dbb77213e51c372e4e6dc61082d7da4fe - optee/optee_test/host/xtest/regression_8000.c
79632869b30c8dc171f607ff89baa306b89fdc11 - optee/optee_test/host/xtest/aes_gcm_counter_overflow_test_decrypt.h
0edc9005d19339ab2a94dd1fa3749336bfe9b774 - optee/optee_test/host/xtest/asym_perf.c
bdea22513e96e2e87438e6fedf846a8fa6b3cf98 - optee/optee_test/host/xtest/clear_storage.h
16276b9d01ba73bf3bb21cb41ff264f3d0126d20 - optee/optee_test/host/xtest/sock_server.c
d5fc61a73a10975c5945aa67296797824b64b8b4 - optee/optee_test/host/xtest/rand_stream.c
4cc77b90af91e615a64ae04893fdffa7939db84c - optee/optee_test/host/xtest/LICENSE
4b76e6786bed1ae8da806d21ac567198a5bebdd8 - optee/optee_test/host/xtest/rand_stream.h
1f18023df5bcdb1bd566f84860dff7f4c5fa0bb1 - optee/optee_test/host/xtest/regression_6000.c
3b971536fd7cabeefba193938f8e1fd76ca56831 - optee/optee_test/host/xtest/pkcs11_1000.c
80a9b9f4795682feb072795a92f15c630eefa57d - optee/optee_test/host/xtest/sdp_basic.h
89d308baa51ac6c6fdc1128a98ebcaf98652b24f - optee/optee_test/host/xtest/sdp_basic.c
4ed1b27140db56a58e598a1d47e2eee729363f6c - optee/optee_test/host/xtest/xtest_test.c
55594d7bf611c68c77fc65b917fe860c4cc0654e - optee/optee_test/host/xtest/regression_4000.c
14686c51c1e1fc99b03e351c11aed2874aee799d - optee/optee_test/host/xtest/install_ta.c
da6d39a1f11c2a83cb0e37cccd9ef44979bd3d8c - optee/optee_test/host/xtest/stats.c
68d3a5e5deb31ba074b1848cf8e1ab7b3ee6606a - optee/optee_test/host/xtest/regression_4100.c
cf936c5da248d096b5c90cc9c6c3b4b278794e84 - optee/optee_test/host/xtest/aes_gcm_counter_overflow_test_encrypt.h
aa6291df45558c38403e3272c86920d0441aace1 - optee/optee_test/host/xtest/include/uapi/linux/arm_ffa_user.h
dd01f2d86e9e0e0a15aab712c3828f76e4c6e2fc - optee/optee_test/host/xtest/adbg/include/adbg.h
877fc553d7b1b08364cb1189bf4cdc3b6cf3c0e6 - optee/optee_test/host/xtest/adbg/src/security_utils_hex.c
e62cdf03f6bf82c09ca10f285a951c1018bbe70d - optee/optee_test/host/xtest/adbg/src/adbg_log.c
825ea0288d353fbf26dd5cb0e56be8db4e7bf245 - optee/optee_test/host/xtest/adbg/src/adbg_enum.c
bef73e2c136bf2a04bc8cf33b2052afac83535c1 - optee/optee_test/host/xtest/adbg/src/adbg_case.c
cf415448a59978f2a427eddeb129a7080f5b5dbf - optee/optee_test/host/xtest/adbg/src/adbg_expect.c
f465eee2e09e054182205ae7c53f7253604401b9 - optee/optee_test/host/xtest/adbg/src/adbg_run.c
fd1a3702bdc602b4b70535b00d38b9443e275607 - optee/optee_test/host/xtest/adbg/src/adbg_int.h
4f57fda84526a6b64ecc3eccc008e18b97fc3523 - optee/optee_test/host/xtest/adbg/src/security_utils_hex.h
e6ac80b711f1a44d2eb77e1c618fe7f3270205be - optee/optee_test/host/xtest/nist/186-2ecdsatestvectors.h
99f104f79f66a659ea913d475077f7503b8a1c51 - optee/optee_test/host/xtest/nist/186-3dsatestvectors.h
a8012c439058a9ab645990d2efcd10447bc34324 - optee/optee_test/host/xtest/nist/ecccdhtestvectors.h
baf0c6e02b9300a37bd4409628cea730d71faa5f - optee/optee_test/host/xtest/gp/TEE_DataStorage_API.xsl
35ce411007e4e624913b8da87f51325be763d65d - optee/optee_test/host/xtest/gp/prepare_suite.sh
d00562756b00f6607632030c58bbd3576f7c13aa - optee/optee_test/host/xtest/gp/TEE_Internal_API.xsl
78e225e2b8581d7bd917bf1c007f4fee5b1d088b - optee/optee_test/host/xtest/gp/TEE_Crypto_API.xsl
488980fe7c4d8999c8466da403ef5b2811727e7d - optee/optee_test/host/xtest/gp/TEE_TimeArithm_API.xsl
39dbed853b87d4a916b95de14d5e23a8f434bfb2 - optee/optee_test/host/xtest/gp/TEE.xsl
be52e9104f2b38176beb182c8e36ecc119bb5eb1 - optee/optee_test/host/xtest/gp/include/xml_datastorage_api.h
53fb592b76fe82621b4c212f07b0555b4d40992a - optee/optee_test/host/xtest/gp/include/xml_internal_api.h
7b0cf45da16221e265fbd01221f541b851cb9e21 - optee/optee_test/host/xtest/gp/include/xml_client_api.h
45865ac02ab8782763d078613beaf33dce452445 - optee/optee_test/host/xtest/gp/include/xml_timearithm_api.h
392440db195c83fb488b7829e6ec09d994c95319 - optee/optee_test/host/xtest/gp/include/xml_crypto_api.h
01305480c8ecffffa5e19202e81c3611f714ff21 - optee/optee_test/host/xtest/gp/include/xml_common_api.h
705d65243c1e46af9f9642bb84f45b2daeff957f - optee/optee_test/host/xtest/gp/patches/0008-TEE.xml.patch
496f8635c2c0110849cb7e095423e036dae754ec - optee/optee_test/host/xtest/gp/patches/0014-Pass-upper-32-bits-of-TEE_PropSetHandle-in-value.b.patch
4f9aca322840391a171d320f3e9d5976b257fa41 - optee/optee_test/host/xtest/gp/patches/0006-TTA_TCF-fix-CmdTEEGetPropertyA-_withoutEnum.patch
cc1ccad0b05569188be42a4e6fad9069b9b44d05 - optee/optee_test/host/xtest/gp/patches/0011-TEE_Crypto_API.xml.patch
c85d2439e6af14cf1845341a721831d294e94e35 - optee/optee_test/host/xtest/gp/patches/0016-TEE_Crypto_API.xml.patch
34223b3e49b6b18b8bf88abf784fac10a0648a10 - optee/optee_test/host/xtest/gp/patches/0015-Enable-compatibility-with-TEE-Internal-Core-API-v1.1.patch
163d266dd45cad8536da0f2e1f5c625fc45e2e52 - optee/optee_test/host/xtest/gp/patches/0005-GP_defs.h-enable-debug-prints.patch
f0098e4814dc81f9ecae74036f354210e6c33a50 - optee/optee_test/host/xtest/gp/patches/0003-TTA_TCF-patch.patch
c834f47f97dd115566b874fa7e4a6d40d064d939 - optee/optee_test/host/xtest/gp/patches/0013-Disable-Invoke_GetTAPersistentTimeNotSet_and_SetTAPe.patch
4436ae2a8726be665c4adbc30899d7dbcf721afd - optee/optee_test/host/xtest/gp/patches/0002-TTAs-add-files-needed-to-compile.patch
0c86f63bc803a23617fb13ba1479108edaf5dac5 - optee/optee_test/host/xtest/gp/patches/0009-TEE_Internal_API.xml.patch
93fe519236e63a82aec4fa2e267aa9c10a9cf3e2 - optee/optee_test/host/xtest/gp/patches/0007-TTAs-revert-to-v1.1-types.patch
146a6228e298272ab7e73778962df356d9198311 - optee/optee_test/host/xtest/gp/patches/0010-TEE_DataStorage_API.xml.patch
cbc872e82c403faa84376db8efc78150338e2693 - optee/optee_test/host/xtest/gp/patches/0004-TTA_Arithmetical-patch.patch
5bdbfb7c09b73b8ee3f012bb4c05c5655a2e426c - optee/optee_test/host/xtest/gp/patches/0012-TTA_TCF-remove-TEE_MemMove-from-CmdTEEGetPropertyAsX.patch
89bb7582daae987e60e094aebfd5b2b073e9ac62 - optee/optee_test/cert/my.conf
1f75eacaea5baa5f8ecd35d3c8df7e746c3f73a9 - optee/optee_test/cert/mid.srl
6b932b1ab7b3565ddb4557b31b13ff823577f997 - optee/optee_test/cert/my.csr
6f108292e83a3a3555b56add6fba6bfc75bb1d03 - optee/optee_test/cert/my.key
ca513a618e76b7425f4f1350e90c7b74d4778eac - optee/optee_test/cert/my.crt
5870a0a431a6e7fd1fb251ada8f25d58c79a762a - optee/optee_test/cert/mid.csr
c858311b53e86391299c5bc0c30a39801b3893a3 - optee/optee_test/cert/mid.ext
4c8bd2753f58de91b618d71902216b93834e1b18 - optee/optee_test/cert/ca.key
c1c1370410a6251da1f2a65d4bb6799b6695ae46 - optee/optee_test/cert/mid.crt
f11ba7468488761597018fef555faaa8dcf0049f - optee/optee_test/cert/ca.crt
cf7626a2e6fdd3e5cd2455117e6ff59e38cc3a99 - optee/optee_test/cert/mid.key
93503a34df30013f6f47e50cde65662d3e5d3a8c - optee/optee_test/cert/mid.conf
9162a5682d5d26b3df6021cc646498709aadc3e9 - optee/optee_test/cert/ca.srl
eaa886f698fec46167f30ea7abbd0c72881e3e9c - optee/optee_test/ta/Makefile
494d296fe7e6b7bc0f500a343c6a33cf9f0b05a3 - optee/optee_test/ta/top_level_subkey.bin
525fc4d0105b2261ed118a2d96d2cbf71cba2432 - optee/optee_test/ta/top_level_subkey.pem
d9a4193c1df764fc72c7e49efeeb550f84c6dcb0 - optee/optee_test/ta/identity_subkey2.bin
2f0deec19c000366d2fd6d627f9b4363213eef7a - optee/optee_test/ta/mid_level_subkey.bin
8890459880f4ef0eb20f8a28b727540e789f07a3 - optee/optee_test/ta/identity_subkey2.pem
5d45a78f116ff6a6a5ce6227b1dd705d86a1a640 - optee/optee_test/ta/mid_level_subkey.pem
192ebe9f6d76a6b9d3938a69c72663ef7b627fff - optee/optee_test/ta/os_test_lib/Makefile
b0992bc9d242a926b54b8162b36f7f219c278624 - optee/optee_test/ta/os_test_lib/os_test_lib.c
e0089857c48d5c57869ad4d411a71a2a3ba33f80 - optee/optee_test/ta/os_test_lib/os_test_lib_cxx.cpp
e868bceb0a3e38d9c81f3fece9efc1ced6e9b1b9 - optee/optee_test/ta/os_test_lib/include/os_test_lib.h
5558acac0905fc8f55ec7451c6cafff4654c532c - optee/optee_test/ta/large/Makefile
3231e66bc961e72de9759c2d801cf7e081611183 - optee/optee_test/ta/large/ta_entry.c
04b692b46b7c145c2fe975bb20250626d9e5680e - optee/optee_test/ta/large/include/user_ta_header_defines.h
78c0f90194587f8ec4696ed9937eab82bd2d6102 - optee/optee_test/ta/large/include/ta_large.h
6902d41cad5e1a7fdd792070ee6fe09543fd0a36 - optee/optee_test/ta/miss/Makefile
63727dbe77411a56de4384f2647ac604df1bb77e - optee/optee_test/ta/miss/ta_entry.c
17584ab846d09d2e11a0c62ee9c12f7eb00a89f2 - optee/optee_test/ta/miss/ta_miss.c
e8cc80687d4a1d454c124c0288798e280142a723 - optee/optee_test/ta/miss/include/ta_miss_test.h
7577f16d52d892d26d2aba97100c391696f1b4e0 - optee/optee_test/ta/miss/include/user_ta_header_defines.h
dfc1e1eb35732695271ed55f42d20a4f3d65dd85 - optee/optee_test/ta/socket/Makefile
e1b35b65fffd182965ab59d513da17f3bc2cb637 - optee/optee_test/ta/socket/ta_entry.c
7caf8e51e601aad92bfa2080fd1d462af34a690f - optee/optee_test/ta/socket/include/user_ta_header_defines.h
60c71c4fd9746b52eff3180768cadfb42246ad63 - optee/optee_test/ta/socket/include/ta_socket.h
159ab9161f614e0e78c7ed8ad589b1da7dc49313 - optee/optee_test/ta/tpm_log_test/Makefile
f041af378514b0adb83e13683c439bdfda633a38 - optee/optee_test/ta/tpm_log_test/ta_entry.c
071de3ab826aea3082b54036a436e42d20e5e829 - optee/optee_test/ta/tpm_log_test/include/ta_tpm_log_test.h
15979122b263375291e30ed248816c707e51aa9d - optee/optee_test/ta/tpm_log_test/include/user_ta_header_defines.h
05d9586c179dfa463023108f57186c397f67b168 - optee/optee_test/ta/tpm_log_test/include/ta_tpm_log.h
3762c8d8188b6fd5c0e0216aa0dfbc1a81c33bd4 - optee/optee_test/ta/sdp_basic/Makefile
3e89b728bfdb79e36b4831135f52d8907cc6b6ba - optee/optee_test/ta/sdp_basic/ta_sdp_basic.c
a0178fe3ab1e1cd9204c5868dfb36eed00a7d800 - optee/optee_test/ta/sdp_basic/include/ta_sdp_basic.h
9123b67fb31c5aa32dc2d54b9a1d2dcff27b3996 - optee/optee_test/ta/sdp_basic/include/user_ta_header_defines.h
3e93b929b783566f5933da6daf3bf178b60f0ac9 - optee/optee_test/ta/sims_keepalive/Makefile
63727dbe77411a56de4384f2647ac604df1bb77e - optee/optee_test/ta/sims_keepalive/ta_entry.c
17584ab846d09d2e11a0c62ee9c12f7eb00a89f2 - optee/optee_test/ta/sims_keepalive/ta_sims_keepalive.c
8b0caca8445e731ff595dca61af1768b26fc70df - optee/optee_test/ta/sims_keepalive/include/user_ta_header_defines.h
1b55cdb55165cb46dd80757553d9aab34a61dcd3 - optee/optee_test/ta/sims_keepalive/include/ta_sims_keepalive_test.h
e3deb7bd3c13099679c0218b2daabc17547fb2aa - optee/optee_test/ta/supp_plugin/Makefile
615513981a90fabad2bd36d67b4ece7b3e63bfe6 - optee/optee_test/ta/supp_plugin/ta_entry.c
a6d7b87593d95249d1adf41e1ed2855be8557092 - optee/optee_test/ta/supp_plugin/include/ta_supp_plugin.h
97d8481ac3b8dd32d148d69acc3da07308fb759a - optee/optee_test/ta/supp_plugin/include/user_ta_header_defines.h
62093428f73279ad6337e6b83de79cdc9638aa07 - optee/optee_test/ta/sims/Makefile
a2d1207a964e7c839176e0c9beb333de1aa5114d - optee/optee_test/ta/sims/ta_entry.c
b27b844ff53c4ce9ea4b37becfc73759661121c9 - optee/optee_test/ta/sims/ta_sims.c
d89af8095b36e083626767c864548995a05f5be0 - optee/optee_test/ta/sims/include/user_ta_header_defines.h
11789923a6ea66b45d579f62db7b637f475896b5 - optee/optee_test/ta/sims/include/ta_sims_test.h
3c47004c9fc79085a49889e5e0a2f74eb9672619 - optee/optee_test/ta/sims/include/ta_sims.h
56e682b335cbdbb4b053f31838a28d596ea0dbf5 - optee/optee_test/ta/subkey2/Makefile
3484bf8a9bd48d0fd2c66b682574dcbd80ae59e7 - optee/optee_test/ta/subkey2/ta_entry.c
d1217850bdabdc5c5f402556a4dd76a32af19d03 - optee/optee_test/ta/subkey2/include/user_ta_header_defines.h
786d2761de772f9af4885b058126e8596a16e194 - optee/optee_test/ta/subkey2/include/ta_subkey2.h
f22bc5e3e7d42fae8b515ed89e6d52e14853097d - optee/optee_test/ta/crypt/arith_taf.c
707f95e800674bd769a22f4b05b0f86bde9bdda0 - optee/optee_test/ta/crypt/Makefile
0205269ec12a07945fa15e1f01beacd396129c02 - optee/optee_test/ta/crypt/ta_entry.c
89299c5c290be38d0509309892bd9bf67946a552 - optee/optee_test/ta/crypt/sha2_impl.c
0f5728bb87da64faea76a4d60859ffc6ee7cfb0e - optee/optee_test/ta/crypt/seed_rng_taf.c
6d536756fbdc5623379b5c8c68b3383c6c3c7535 - optee/optee_test/ta/crypt/aes_impl.c
2f8d16642c23418d96eae0799cdbb319adae9bd2 - optee/optee_test/ta/crypt/aes_taf.c
cda695cd368148125b67d4b5049b4b5e44f19d4d - optee/optee_test/ta/crypt/sha2_taf.c
71541fecba370d8d5d888ff889cc55a649e0f6e3 - optee/optee_test/ta/crypt/handle.c
59232c5714af3b17dab86effad8c4adcdc6193ec - optee/optee_test/ta/crypt/mbedtls_taf.c
62f575dd691dc4df07cd85b6aaf381bb1fa129df - optee/optee_test/ta/crypt/handle.h
ae237aa24606ab8442252be914264ebc32acb3f1 - optee/optee_test/ta/crypt/derive_key_taf.c
08792d69cd8404668362c47a42015e3ed15a03e2 - optee/optee_test/ta/crypt/cryp_taf.c
bece95c11da1deff583de5cccb73aeb047b13bb3 - optee/optee_test/ta/crypt/include/seed_rng_taf.h
65726ede28ff3980980f0786f73da00bf00f7adf - optee/optee_test/ta/crypt/include/aes_impl.h
f922975017d8e69cf55d924ad3475f48207c778c - optee/optee_test/ta/crypt/include/sha2_taf.h
e39b6697e3f099db9e9210630f403279d821b01d - optee/optee_test/ta/crypt/include/user_ta_header_defines.h
751a9eda488bdee96dd4666819f86792eb94e63c - optee/optee_test/ta/crypt/include/mbedtls_taf.h
d6094f43aff3a5e99b1b4916e6f0616f4b506c4e - optee/optee_test/ta/crypt/include/ta_crypt.h
dedb18c14d2c13ecb2666beff2d43a1c6f2b1f4c - optee/optee_test/ta/crypt/include/derive_key_taf.h
971b7e4384dfd449056d2d98600938baaa13b45c - optee/optee_test/ta/crypt/include/arith_taf.h
81c28b5d39b57c60583003aa3b19d4e9355be3e8 - optee/optee_test/ta/crypt/include/aes_taf.h
59bb92661052957ededa8bf444418db0f792e5df - optee/optee_test/ta/crypt/include/sha2_impl.h
98b131e0650e8848c202b367de6afd9713234b23 - optee/optee_test/ta/crypt/include/cryp_taf.h
0b8f95e1cc815a73f1913f8b1cd1199b86afd777 - optee/optee_test/ta/os_test_lib_dl/Makefile
34655a75cdbf9b1cf1a0f475a835630aa77d76ad - optee/optee_test/ta/os_test_lib_dl/os_test_lib_dl.c
9d8c78ff226d9cd3e8f8be315142adc0bdc791d5 - optee/optee_test/ta/os_test_lib_dl/os_test_lib_dl_cxx.cpp
36e93c9c976420202d3962d3af744a06481e4bda - optee/optee_test/ta/os_test_lib_dl/include/os_test_lib_dl.h
403faf3efbd2a187981acd30a58067dcb43d4d2f - optee/optee_test/ta/concurrent/Makefile
b33588442f2691e00ae34677fee3503279ec4251 - optee/optee_test/ta/concurrent/ta_entry.c
81d9fc2603da64f6aca629d4c1f6152ce40f4299 - optee/optee_test/ta/concurrent/include/ta_concurrent.h
b203b24b6fb092d32555949aece3d104a945d314 - optee/optee_test/ta/concurrent/include/user_ta_header_defines.h
545a9527a5a59df10e9fc50f958bf567149bb8b6 - optee/optee_test/ta/include/ta_storage.h
3777dde2c0aee5f993ddf5f6e2899d578554736d - optee/optee_test/ta/storage2/Makefile
fd20f8c7b48682f3cb154209d193c38ef5fa8afa - optee/optee_test/ta/storage2/ta_entry.c
b5ccb3b112baffad3e3afb89d72d7cc8a922ce1c - optee/optee_test/ta/storage2/storage.c
1c8f590037f4f9235325a760a6e10589ac820492 - optee/optee_test/ta/storage2/include/user_ta_header_defines.h
8ace73b1298eb7b4679a5f6a93533d147c6165f0 - optee/optee_test/ta/storage2/include/storage.h
969daad84d451c2beaaeb0205d361045b135c899 - optee/optee_test/ta/create_fail_test/Makefile
327bcd861d17179ed6eec837ae40d93f6d4d5171 - optee/optee_test/ta/create_fail_test/ta_entry.c
f8ff5608bd441c5bb14ba4e0d1ac825036c0be26 - optee/optee_test/ta/create_fail_test/include/ta_create_fail_test.h
28f22d74fc72b507d9530a7788812714f4ccd2be - optee/optee_test/ta/create_fail_test/include/user_ta_header_defines.h
a7891e77ba72a13303bee70e3469d5b66c4dd0ff - optee/optee_test/ta/storage_benchmark/Makefile
126f0a0f43f2045ed64ac151420ff2750039cae6 - optee/optee_test/ta/storage_benchmark/ta_entry.c
1c896a32ab658f67fe2c2469efab67c781d40d17 - optee/optee_test/ta/storage_benchmark/benchmark.c
e69f771764df6d0ccfead0a6b563545f3f43b159 - optee/optee_test/ta/storage_benchmark/include/user_ta_header_defines.h
44317f3ee1e0f27bc5889d02e634bcddc250334a - optee/optee_test/ta/storage_benchmark/include/ta_storage_benchmark.h
350b57d8d13e85db59890347995fb8b25902941d - optee/optee_test/ta/storage_benchmark/include/storage_benchmark.h
49c2d5872d9a41ded424776ddde01ab79ca78988 - optee/optee_test/ta/crypto_perf/Makefile
12f72f4f686c7e5c42580ed7eae7c3687d07bfa6 - optee/optee_test/ta/crypto_perf/ta_entry.c
76173f317d8ec7c0d93c8e416222325635b95a68 - optee/optee_test/ta/crypto_perf/ta_crypto_perf.c
cbdc030bb470e5a4955e3e9156033676053db836 - optee/optee_test/ta/crypto_perf/include/user_ta_header_defines.h
080c319338a6832c33fc4980075e44db13d22020 - optee/optee_test/ta/crypto_perf/include/ta_crypto_perf.h
bef96027f5481438c3532aa395fb391799d91bfb - optee/optee_test/ta/crypto_perf/include/ta_crypto_perf_priv.h
305e7a10ae0489f83dfe773f06b47ad314bb9771 - optee/optee_test/ta/concurrent_large/Makefile
c5741796e6b99090e6fd99dc03a6bbcfe6871028 - optee/optee_test/ta/concurrent_large/ta_entry.c
6fc98a616100591a9ba17fe01d8cd7f30c449420 - optee/optee_test/ta/concurrent_large/include/user_ta_header_defines.h
51f374f9df753de95e0ee8a082c29395bed8625a - optee/optee_test/ta/concurrent_large/include/ta_concurrent_large.h
19e490a77411c75a67b54eb0684edc9dc35f7192 - optee/optee_test/ta/bti_test/Makefile
9752d870fbaca8ae7c1554096be6f228b5a0efaf - optee/optee_test/ta/bti_test/ta_entry.c
02a75c4818fde432ee44ba7d161b5c27851a796b - optee/optee_test/ta/bti_test/bti_stubs_a64.S
a59733e35df2f166b33f45d74ffcad1404144624 - optee/optee_test/ta/bti_test/ta_arm_bti.c
7f829607eda29dcb8ef45bfba360ed98db860871 - optee/optee_test/ta/bti_test/include/ta_arm_bti_priv.h
3d48258f0e002fce82e638e430b603a76c11d113 - optee/optee_test/ta/bti_test/include/user_ta_header_defines.h
a6569f27e231e4466e5b7f08f63a13626cf26810 - optee/optee_test/ta/bti_test/include/ta_arm_bti.h
e00637d3dc4e177f4693a591711c655a84f82c6e - optee/optee_test/ta/os_test/Makefile
f99e6541faaf5c1e883528d5a9a247c9a404ad5b - optee/optee_test/ta/os_test/ta_entry.c
c845f1bef062d33dd7e59d0647155b05ef5ed6ac - optee/optee_test/ta/os_test/attestation.c
f99ecd7a7d1466b6ae095553f19b144a3b5e05a6 - optee/optee_test/ta/os_test/cxx_tests_c.c
a4ae385c460bad98c3f1bb74e4cd6d78a3d1c569 - optee/optee_test/ta/os_test/cxx_tests.cpp
0821f97bb6d0e672f229f163d91a44db3b3cfc21 - optee/optee_test/ta/os_test/pauth_a64.S
30c95077d893a72f6dd6f25698b9e3c4c90c7173 - optee/optee_test/ta/os_test/ta_arm_pauth.c
7c34f62620b2c3cf1e435dc2f06b5bc695a0ffca - optee/optee_test/ta/os_test/init.c
81b48e32f421e3809c799370e7d5a84be82e4007 - optee/optee_test/ta/os_test/test_float_subj.c
4b24fec7bb0779f54df830b2accd4589c58ee714 - optee/optee_test/ta/os_test/test_float_subj.h
9474cf4fc4a3b252db66bceae94a0d1af55032a0 - optee/optee_test/ta/os_test/os_test.c
0455da7d426f2d9c91e8d1f0ceedcbcdc25b7e63 - optee/optee_test/ta/os_test/cxx_tests.h
8e61b08c2d218f799c0ceb8531677adaf702b81c - optee/optee_test/ta/os_test/include/os_test.h
c250edae8e50b81ddc7f2d82b74533be8ce36484 - optee/optee_test/ta/os_test/include/user_ta_header_defines.h
5925bcc4d74e66a2c9ac214c3afb53d3a2c40385 - optee/optee_test/ta/os_test/include/tb_asserts.h
f61b829b0f8774e078f535f9dcb469a402aab63f - optee/optee_test/ta/os_test/include/ta_os_test.h
ef669e3a5af86a9d7433680efe47e7475ebae840 - optee/optee_test/ta/os_test/include/testframework.h
0fc4efc474f17406466b3a01708a70604c4bf90a - optee/optee_test/ta/os_test/include/tb_macros.h
c0f2b4917d2e7e2c64767ce20c51277d030da95e - optee/optee_test/ta/os_test/include/init.h
ab190ed1cbd92987955bd1b18cf1125760e00235 - optee/optee_test/ta/subkey1/Makefile
e98d28dd7d955c5f1430b86d1f9fa9a293f2c6a5 - optee/optee_test/ta/subkey1/ta_entry.c
3ef18fee5ed3f12595bcae5cd670e9b614bddccb - optee/optee_test/ta/subkey1/include/user_ta_header_defines.h
fccce5046748bb0a2c4bf866d2ee4099789327e9 - optee/optee_test/ta/subkey1/include/ta_subkey1.h
a29dec4b78281324f1e479a7648b636feef1d163 - optee/optee_test/ta/storage/Makefile
7e3e9ed670136ea79aa56b6e986e2b795074cc8f - optee/optee_test/ta/storage/ta_entry.c
a2575f658d20bade8d2751a438a3881dec9506ba - optee/optee_test/ta/storage/storage.c
cbcf995c4fce7f48869248f9f3bf912195d4873e - optee/optee_test/ta/storage/include/user_ta_header_defines.h
470456cae0c3f509a24f5ec3678881a672b863c7 - optee/optee_test/ta/storage/include/storage.h
96b12ede29af7df11c0b54a3d3924599f9ad0de4 - optee/optee_test/ta/enc_fs/include/enc_fs_key_manager_test.h
db39d7c16208c8b18547c18b524c4d4d8d8533a6 - optee/optee_test/ta/rpc_test/Makefile
28e50e4d884a51351b0454dcf8971ea8619becb2 - optee/optee_test/ta/rpc_test/ta_entry.c
100bd8db89d7d506ba95afa1adf59c093bee623b - optee/optee_test/ta/rpc_test/ta_rpc.c
daf6f0380173f9c72cb5ab411c7e145635102403 - optee/optee_test/ta/rpc_test/include/ta_rpc.h
bb5b31def49e12cb5ca13946631064fdab7f3ce1 - optee/optee_test/ta/rpc_test/include/user_ta_header_defines.h
5a06508a48d77c9bc4d4483f2c1064bc11547f17 - optee/optee_test/ta/rpc_test/include/ta_rpc_test.h
6c873429bc677416677c5807645bf161215865df - optee/optee_client/Makefile
1d22df2514ce91279fc9fd16270cf6b0ced2e65a - optee/optee_client/Android.bp
1be3a93bb56c46ee4d4693b47ddd7c4c5487ffd3 - optee/optee_client/README.md
a7d910ff308216f427e9a4776d72cfe84e2915ad - optee/optee_client/LICENSE
c9b3bb5ab0a3d0252ed93cfc3578e3991ee2b994 - optee/optee_client/typedefs.checkpatch
d064a25e20d345a05792931a265ee41e75706c88 - optee/optee_client/tee-supplicant/Makefile
f24b5d7b4681f11f33d735e96c6193f040d61420 - optee/optee_client/tee-supplicant/src/rpmb.c
eb428488f05ca6049614557e2a89abbe531b1e24 - optee/optee_client/tee-supplicant/src/sha2.c
ea069507eb088c8be58fd316e1182d94fdcfffb6 - optee/optee_client/tee-supplicant/src/optee_msg_supplicant.h
5387e1fcf4e95d497b72ee814d729c4c90adb740 - optee/optee_client/tee-supplicant/src/plugin.h
435831cff86e23874de21d77aa2acd2e2847e629 - optee/optee_client/tee-supplicant/src/tee_supplicant.h
2eeff0bb8ad1aaf5594e87a9faa9b9bffa63ee8f - optee/optee_client/tee-supplicant/src/plugin.c
b738d8b04995c56175826db5cbaca1ed21e079ad - optee/optee_client/tee-supplicant/src/teec_ta_load.c
f5b0fdcf3343c38ff2495f438044546952d538e2 - optee/optee_client/tee-supplicant/src/tee_supp_fs.c
a5f3a0cb9e4309400c0c22dc574de3c8eef67a65 - optee/optee_client/tee-supplicant/src/nvme_rpmb.h
945a945fa92b85f4b7003123e4ef27a588bdc2bd - optee/optee_client/tee-supplicant/src/hmac_sha2.c
bed7d31fece3711cc20a9418d51d24ef7fe3391b - optee/optee_client/tee-supplicant/src/prof.c
8fbfe192d68bdb1e126598cb730e7c11f511960d - optee/optee_client/tee-supplicant/src/hmac_sha2.h
946a1750a3bd2cb7ee8a0934d7df7849d1649aee - optee/optee_client/tee-supplicant/src/__tee_ipsocket.h
721aca20ceeacd1648d0f7204c85f69b282fe101 - optee/optee_client/tee-supplicant/src/__tee_tcpsocket_defines.h
593518d07f2abcdc15942f188796aaa0bb12d4c6 - optee/optee_client/tee-supplicant/src/__tee_tcpsocket_defines_extensions.h
a80eb6caf9c8732d74f0fc4c329a4222995ec6c8 - optee/optee_client/tee-supplicant/src/__tee_isocket_defines.h
a16a80d873293f74d73baf53721eb5019ded25cf - optee/optee_client/tee-supplicant/src/tee_socket.c
d6dd587b4421a742de3144b103342789681958a4 - optee/optee_client/tee-supplicant/src/teec_ta_load.h
2b4e00ad1b9e0f3a5e7c2efbef6591de41a0e409 - optee/optee_client/tee-supplicant/src/sha2.h
df8821ae52abffd9ffd2d962078fd715185513d4 - optee/optee_client/tee-supplicant/src/tee_supplicant.c
b81a505561be6982f3eea681e266827c8236583c - optee/optee_client/tee-supplicant/src/__tee_udpsocket_defines.h
f17cf7d08bb300eb71cf0b2ca503f505c269e761 - optee/optee_client/tee-supplicant/src/tee_socket.h
f1107acfa97784e2a91a1a393dd6198fc4a4a222 - optee/optee_client/tee-supplicant/src/prof.h
1f145b8b2fe3882017290f627f46dfc328a7c144 - optee/optee_client/tee-supplicant/src/handle.c
4a38f4ea1eea116c78d27b03a2cbfb92f8ea3a97 - optee/optee_client/tee-supplicant/src/tee_supp_fs.h
9763ee4354d75e34559e80fe8dda7bb158c4c5d0 - optee/optee_client/tee-supplicant/src/handle.h
07af4053379b51e5d33dda8ac2eda2181ae23a02 - optee/optee_client/tee-supplicant/src/nvme_rpmb.c
f04b1790f669de1573516dc81fe3f4eefcb59c1f - optee/optee_client/tee-supplicant/src/rpmb.h
d6e6c51b13d0f6f61ae51ff3da8b8f51b3ac433e - optee/optee_client/scripts/checkpatch_inc.sh
5f5e044fbbcd7b4262c4d4405cac9dc8115b9bd6 - optee/optee_client/libteec/Makefile
a5fbbcfc0214db8015e94fc05998f548c339e1ab - optee/optee_client/libteec/teec.pc.in
c6e011ef6751f07449bffe9fd19006a15b8624b5 - optee/optee_client/libteec/include/tee_client_api_extensions.h
43da45835976c93e70ec5ad1ed02b891a0dbe000 - optee/optee_client/libteec/include/tee_plugin_method.h
668dfffd684890e7dd9bedbfd635db0df9af35d8 - optee/optee_client/libteec/include/teec_trace.h
a3e6eec2b0c6f60ab6995f2b082b866bda6a808c - optee/optee_client/libteec/include/tee_client_api.h
16cd3b045e35ef0e65b2c33238b2b59f62255883 - optee/optee_client/libteec/src/tee_client_api.c
d842563e16728b8e4b8e70f1fd7522598235d843 - optee/optee_client/libteec/src/teec_trace.c
15278a332dd772f0c91e486e562d10ba1b9cb6df - optee/optee_client/libteec/src/linux/tee.h
c2eeeb99eea300a1748db00f9803a548f2282c49 - optee/optee_client/libteeacl/Makefile
1cf357b019b2533237bef65ce240ef9e7d0d77b2 - optee/optee_client/libteeacl/teeacl.pc.in
ee867d9d7bddd079e18e86b614ddb0951d3a79ce - optee/optee_client/libteeacl/include/teeacl.h
3842833a20a863d971c8d33f5e101ccc77e88c62 - optee/optee_client/libteeacl/src/group.c
d44856b3c2e641d34dc08c44aa14df8111f0f2a0 - optee/optee_client/libteeacl/src/tee_uuid.c
94dc6f25362ba38974deb9290b3ea1460569ff71 - optee/optee_client/libckteec/Makefile
f25fe667d7155f39694414e63dac8d54adb5e264 - optee/optee_client/libckteec/include/pkcs11_ta.h
cbd1cf1d939303ee17050057c176ddb7498b1598 - optee/optee_client/libckteec/include/pkcs11.h
7d66a5a9955374f577b36eda3684c254841edbda - optee/optee_client/libckteec/include/ck_debug.h
e640a280681f076f112beee518ea1adff965c818 - optee/optee_client/libckteec/src/local_utils.h
3d1d16bc8a998c7382d0e5deb177e421613cbdb9 - optee/optee_client/libckteec/src/pkcs11_token.h
28f837a80c95ceb3f72437386993f46469f861e9 - optee/optee_client/libckteec/src/serialize_ck.h
48b8562a4200b00fe6382797789d8e694186c620 - optee/optee_client/libckteec/src/invoke_ta.h
a36127385f3d497598291e167cfc4147e48861ed - optee/optee_client/libckteec/src/pkcs11_processing.h
4a7c34adbc6006ef9230bb1919ca520891b9823a - optee/optee_client/libckteec/src/invoke_ta.c
04e59fc9b03985ed9c71fb751bcf60dc050aa517 - optee/optee_client/libckteec/src/ck_helpers.c
0db1379449cb2cdae53a7b480a402e8c43457431 - optee/optee_client/libckteec/src/serializer.h
53de33af06e51fb21fe2f24c2c0665a45baeb3b8 - optee/optee_client/libckteec/src/ck_helpers.h
66ad3fbe5639477f5ef0f50c0a87bb825db643aa - optee/optee_client/libckteec/src/pkcs11_token.c
27cd49c5be59123275b6d2d23f61956cd86846c0 - optee/optee_client/libckteec/src/pkcs11_processing.c
a4b2b6fc00af2b337386db3fc110f54709a248bb - optee/optee_client/libckteec/src/serializer.c
d38060ba408bececaceffc5392363c4255e064a3 - optee/optee_client/libckteec/src/serialize_ck.c
145e33a2859354e90473957df5bdd430b63f437c - optee/optee_client/libckteec/src/pkcs11_api.c
f88324eb36dec1f8579a56f5e446475ced59b52d - optee/optee_client/libckteec/src/ck_debug.c
2a0b9b82ad279a7127d4fb8fa2c4c4bb0bbfb62e - optee/optee_client/ci/Dockerfile.debian
874f552974cb3d5f17a63dd2ba50582a28e2d28e - optee/optee_client/ci/Dockerfile.ubuntu
acd8d0f397cd4e0ffdc9aed50f3f91fcf357822b - optee/optee_client/libseteec/Makefile
2219ff4dd85f1c6a0ee11024a1834c7d17124a79 - optee/optee_client/libseteec/include/se_tee.h
eb52a5aa690916e1cdb6e9d58fd746762ac03bbc - optee/optee_client/libseteec/src/se.c
f5d83909e5071e2affc98fc56ac4b941e00ef03a - optee/optee_client/libseteec/src/pta_apdu.h
dfe89d4404a213f5751887db149a30135cd07f9a - optee/optee_client/libseteec/src/pta_scp03.h
fbddcc56f1918f9c27f657f1e527b77f9a94382d - optee/optee_client/prebuilt/libuuid.a
3eb30c4c0069f3a45e46ea616d1bfaa9c81dcf95 - optee/optee_client/prebuilt/uuid.pc
f946a4e57b4901f5733debd6aec83a809534f9cd - optee/optee_client/prebuilt/include/uuid.h
bf52776d687b57bc5e886b2f4e7a0f7ece62b0b7 - optee/samples/Makefile
b2def2faca96323618fae5d302c50260bccb869e - optee/samples/LICENSE
2f700b45a00530a528bbd7086b22444f8a91ea96 - optee/samples/cpubl-payload-dec/Makefile
ea49cce3ddf319882d8e400806f6a761de306ce7 - optee/samples/cpubl-payload-dec/LICENSE
3945bd127a3cab935cd8b206bdc6bfbabd07e020 - optee/samples/cpubl-payload-dec/ta/Makefile
c37254b292d303cab4ab95c06ce5cbc3adc72b5a - optee/samples/cpubl-payload-dec/ta/entry.c
135be83f6d1ba5b8793d6127420fe3b879424531 - optee/samples/cpubl-payload-dec/ta/user_ta_header_defines.h
22e887e40458255171cfad715a9c477826fa3cfb - optee/samples/cpubl-payload-dec/ta/include/ta_cpubl_dec.h
85cb555a484a3191da2b234f4c2121addebc83a5 - optee/samples/luks-srv/Makefile
6fb1ad386475e975804bd789938f171a0e634bf9 - optee/samples/luks-srv/README
b2def2faca96323618fae5d302c50260bccb869e - optee/samples/luks-srv/LICENSE
ba0f3f4839fe17b652aa8a9e18d0f5fe602f4662 - optee/samples/luks-srv/host/Makefile
8577e960a7ba6fea952165100b467fd6b4fb1902 - optee/samples/luks-srv/host/luks_srv_ca.c
42761539497633e52d70529a0c963678c1e2b9e8 - optee/samples/luks-srv/host/tool/gen_luks_passphrase/README
ea3aeef7e946314ca0a3dc1f6b2c64099963b8e8 - optee/samples/luks-srv/host/tool/gen_luks_passphrase/gen_luks_passphrase.py
6d3ac3cebb74c4f088accfac2d48654ea788769b - optee/samples/luks-srv/host/tool/gen_luks_passphrase/example.sh
fa3f0583c33f15560475d2899643217e9b8bdedd - optee/samples/luks-srv/ta/Makefile
9198ad9d0108d1f0c5411e43cfcdbbb011dc6ddd - optee/samples/luks-srv/ta/user_ta_header_defines.h
7dcf0c69657674d5c8d84f037993856ccdabf784 - optee/samples/luks-srv/ta/luks_srv_ta.c
80db8ae67e3a08227b8feeb7c71d80c97e620988 - optee/samples/luks-srv/ta/include/luks_srv_ta.h
b534b3c1b0a9fc7ea3c6a3ecc9d4a7182a66f022 - optee/samples/ms-tpm-20-ref/.clang-format
56cea4315ced27989bf4993b5ebb6f5123222c3b - optee/samples/ms-tpm-20-ref/SECURITY.md
9fcc9b4c93fd85452b4b1a3c89afe4d598d545df - optee/samples/ms-tpm-20-ref/README.md
e12c4ff9f6d12441b1b697d24c4b8b6923b2fb08 - optee/samples/ms-tpm-20-ref/.travis.yml
bbf046fa124b7c4632ae2631e9059507a72a3d2a - optee/samples/ms-tpm-20-ref/LICENSE
13c6e4813b3e9761d334db45a93cef59b96cde02 - optee/samples/ms-tpm-20-ref/CppProperties.json
10937e6af19c7747e93a8367c3ce6953f2c09b6e - optee/samples/ms-tpm-20-ref/CONTRIBUTING.md
7cd6e55737ca672c343962a688186bc665f41898 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/README.md
df67ed7bc549a84f8ff8a5de0d3d096a6e2bbd48 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/Makefile
6d3239af75e740ae509ca8b2e0d51b584f3465a5 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/Makefile
3f229d45d7d2ce7e5d7e46e12377af9165e6c361 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/user_ta_header_defines.h
1bce5759e31235d9c5bdba21dd91adaa428fc3f0 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/fTPM.c
8a3ff6f0fbf400d5960a0b9e29100a2f0c257cce - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/lib/mbedtls_ltc/user_custom.h
53e682c13d0856ad3840af92efef4f69ce2e1d61 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/include/fTPM.h
ea9d25b54a0bfb6a2f2919629390ac2f1a7cd709 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/include/fTPM_event_log_private.h
f0e69701b65f4b4bf75a97838a5784c8b96377eb - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/include/fTPM_event_log.h
eca8429d573b1efe6aabb85e729081ecd232cd9c - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/include/fTPM_helpers.h
d265a8bc723bc221914fe71eecf809497317402b - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/include/Wolf/TpmToWolfMath.h
1abdd3758b52641bc84ab63597b351aec39dd45b - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/include/Wolf/user_settings.h
369f00bc9361a2d2471b00bbf96c1ba518e645b3 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/include/Wolf/TpmToWolfSym.h
2a43b3beb22e372a4284450764b201c24f4e7f97 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/include/Wolf/TpmToWolfHash.h
376c946270a22a79f5ae90cbbd3efeb4b6a0b5f4 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/PlatformData.c
9c1182d6fbfc09acdb617e2c6e644e7bc7add570 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/Unique.c
87d59c28e82a41130b6d7f9a8a36c75e1b750a0c - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/NVMem.c
c9349c1d5329a5100adce5dcc24d234c9bdcaa61 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/fTPM_event_log.c
b59bde7a93e1cc1855b209291ae236fbffcdedbf - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/Cancel.c
d8d1e1184b822d904eceda19ad720da371cefc24 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/PowerPlat.c
79c38e67602cae65ee67146a13518eeed36f2bf8 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/EventLogPrint.c
7c5cb20afa4a0e569b22aec797fabdb2f30552bd - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/PPPlat.c
52663f93a5790e3ca64daed728e5491847136e5e - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/AdminPPI.c
13ac1a0dcd262678d94da7a3b86856a3a3851361 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/fTPM_helpers.c
283a4b88a1e84f5ef741d4f4d4fde82d9407ca55 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/Entropy.c
d5d1030b42d4d34b5b1384aa182b441c909f4df5 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/EPS.c
411c14cd40d0d71d28c13f52c3911e5a8c411b2e - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/Clock.c
61e1c6504462645f5064ea9dc434804a824a5075 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/RunCommand.c
d7201b197b3e91e981077abb03ae2827b42a9b63 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/LocalityPlat.c
46c4a6540314c172068f6dc8fffe1f467861b7d6 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/DebugHelpers.c
963be460c3847e12f66b652610ba0bc3281f4bf4 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/PlatformACT.c
d9b2bbfdaceb0f02c468ede7e0b05fe5a8aa50f4 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/NvAdmin.c
b493c94195fe836564fb88852ba0fea97814ca6c - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/include/Platform.h
b5b9fbb93586419230ff8d1ec018285878ad46c2 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/include/Admin.h
82113c01765d59f6759fd977d625e6444fd75572 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/include/PlatformData.h
f7c1239e5dea6bb93130c66ed56ce33485985ed3 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/platform/include/Platform_fp.h
62105e5307c3636450c1864348a5d5d35b63660f - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/reference/RuntimeSupport.c
cd7e6c680ef80aab7901ba9978c4afd5a7e52a63 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/reference/include/bool.h
2706d6092917100fd8117a9d5c315e7862629748 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/reference/include/TpmProfile.h
5bc59f1069c9183079f5bfaa521e4398048fb2a4 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/reference/include/VendorString.h
e6eb4da02d48333abbca49a31090610423fa06d0 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/reference/include/TpmSal.h
468436d93e40d0fc852d4e86920fbc68718c929b - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/optee_ta/fTPM/reference/include/RuntimeSupport.h
65607068ebad388e1a689ac6e701b0b45e02c5a3 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/ta_prod_signing_scripts/generate_digest.py
14fb1121df155d6da96d7a1d6351b9fcf47a0af5 - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/ta_prod_signing_scripts/README.md
e643f090d5cbaaa3dd73f87fd32aa7bb079e776e - optee/samples/ms-tpm-20-ref/Samples/ARM32-FirmwareTPM/ta_prod_signing_scripts/stitch_ta.py
a7aeff0addca9724f945178d6857a4d5b254de77 - optee/samples/ms-tpm-20-ref/Samples/TPMCmd-DeviceID/build-tpmsimulator-deviceid
32b6f41f8cb17695fa4e40dcdb5a13bcefb7d93e - optee/samples/ms-tpm-20-ref/Samples/TPMCmd-DeviceID/Platform/src/EPS.c
e855760eaf75328c77fc714300151c27ce864ec3 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/USB_Hookup.jpg
10c3fd48393c33d4510c403bde7a91efbf05666c - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/microUSB_Hookup.jpg
3f8d0256d18033e053779e7864508daa371797a9 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/.mxproject
0206b31f994b247b4ef78e829cdc3fbfec23dd97 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/mx.scratch
8086602309481b27c6586f824f4783f514c027d0 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/.project
17bc2133944d7885da66070c51191d5c4c7a86ce - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Nucleo-L476RG.elf.launch
77f371cf9bdfbd2ee243ceb2d60dfc4f734095a6 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/STM32L476RG_FLASH.ld
e40037acef5ee9515273d568d4fa1f7d7c2dfb98 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Nucleo-L476RG.pdf
96cf2e3a3a7fe535463d74a9e77bdd6eff9e544e - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/.cproject
8f3874f3592022902246b887ff77ba3dafe8988d - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Nucleo-L476RG.ioc
20bd88d6e69c5795823fcabe4faf5f97189eab7d - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Src/usbd_desc.c
d866ccd9ea216a89eb9d539b9a9df43b83b1c7cd - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Src/system_stm32l4xx.c
efe613f6cfea1253034d36d8f9eb0a3885a72b51 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Src/stm32l4xx_it.c
e82acf04a1cad0a297e5cfc954c31a504c3c53e6 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Src/stm32l4xx_hal_msp.c
6d604522f0cef3bff34a64eb9e500cdce25b5d57 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Src/usbd_cdc_if.c
c1db06ecec983da549ee3a8ae57154b2460f8d4f - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Src/usbd_conf.c
16d1db972ccab86a0e8c0aca69dfb400853b139d - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Src/usb_device.c
55729e915ad655e9e16d0d30c7699bef97c14a99 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Src/main.c
f8423beb4a536d57e5aa0c948599c0c8feb00a9e - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c
c766b5449c964208e6c0301ca2f558902b8b9528 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h
ab94a34d9ab12695aebd8fa8466ade808f27e929 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c
3b25e71498a2311c71b3919166ecf09dc5141b1e - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c
9a2873d30abe93eeb862acfe28f3590a9a6f06b7 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c
60317c715b32cdb43f4f23b57141868055ea4589 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h
f2e11c0c40d6e621c683638444082ccb2cd1e404 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h
ae9cd8bf67b36f59b68abe1006f6e621b3097871 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h
10fec4a5fea35ec45db039d5a366c3b6a4dfdc47 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h
03bd0280d262095dfc54880a3beebc7e8d1cd238 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Inc/usbd_conf.h
75b6204210b1d2d7bc133c477e55b55ab886553d - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Inc/stm32l4xx_it.h
29fa5f1155f4b6471a344eb19184bb023e939cbf - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Inc/main.h
f2d077bd5409d6fd6fe3992c5cb64c6f4632d217 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Inc/stm32l4xx_hal_conf.h
97a7710fdcc32282cbf75739e2b1afaff643e09f - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Inc/usbd_cdc_if.h
c20ba1d07bb19091580f77d81b3ef95b0b843914 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Inc/usbd_desc.h
b1f85fda09c5bd2d09cea7044da1fe04616da066 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Inc/usb_device.h
25392a40719c25b125bb4abc1c9105228b153444 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/.settings/com.atollic.truestudio.debug.hardware_device.prefs
988b68517c27704d1f464138322cb3e7ef94c005 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/.settings/language.settings.xml
a19a363124b0fdc91c783bf67234bfd09ec1c211 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/.settings/org.eclipse.cdt.managedbuilder.core.prefs
72ad8c891c625eccc2ed488d63e73685b36bb7de - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/startup/startup_stm32l476xx.s
7b273c6190dd31db4d1f5091bb46a780eed2f065 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rtc.c
6905470e6a40b7909609c5a5e902c0efcae29c17 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c
b31f07cb494c120315b086a52a662d098943fb56 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c
4dbd5f4ac87a7b6ac1d550a567e59f1238f7d026 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c
54204b942a2710a64b6ba0c30b84e1b3b52dae74 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c
622a5ea51bdb8c062e8e889f4b71bf6482fa5264 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c
12784369e6124301623660326aeffa81593b036a - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_ll_usb.c
4dda1150337631a2d17123634e05b782a5668b04 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rtc_ex.c
25ec312cbb302ca24cf9e909df42265a12821a78 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c
2b8ea417236425866c81e285a0ab18d04783b587 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c
b167ca16a9d80ffe8bdffec69454d740bf0117bc - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c
5f07fe6dad1130b6ee4df5a184ac8b0226619cd6 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c
7e7baefb69d9a62f7684c185a9fb3ddd83500a39 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c
df06884b75649ad21d7110e12ab4de41f1e9eb4c - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c
a15fdfad695b08ee5b822074ff541cf712f2c39b - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c
da703e39e170c4cb94dfa998f3f1ffa29d80d699 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c
36599a4da2f2d80c6e6ac0220385ee433b03e54f - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rng.c
4516770dad8099473586dfb47cf5cc4cf85dbecc - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c
e926d3bdc7e3bf71bb7539ea30ea292b92d7ffe3 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pcd_ex.c
70c187cc31e577582b15c93b82183a02ae1e45c4 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c
a049a3b8f2c1bbc893531c3dec916646bc42443c - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pcd.c
b241444200a682980fe3e6bec522da4e967a170a - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c
1e88ee4f8bd2b1617b9d2523943dd1e6acb23dcc - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c
296985473134d81cdcee7e324c2d47a069390872 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c
da4c5dc66fa19f1a2dea73d7aa3e81597b676dcc - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim.h
76daccf26f1c1119f653377547eebb3aead3ae9a - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pcd.h
3f9db9098124b6d4bf658a9ff358a93525f658b0 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rng.h
eeefa20586b1afc75301a9c1a9fa51984bf8e5be - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h
85ce004e873496c1eacf6087a2b3c82652c2f87c - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h
cc2961929d2d137935b8d36ce4d073c22ecb6d0a - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim_ex.h
ef09ef096f9aea54c52b3f8643d4a2de8caefd08 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_usb.h
7d01a2e45f24933398c321ebf63ab167f6681b98 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h
2905f1d5f33236d983b4c332990276c9e1bb5521 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h
05b58c53586df1d7b41ae67ee282455482c2467d - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h
7a1f93772829c677cd79a5c7d91c49a0d414bfb8 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h
66a329dbf83da1d835ef3a2056ff37b30cc34c2a - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma_ex.h
7cae377cfa95e6bca50a18ebe16d4ecc325278df - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pcd_ex.h
cde58e7973942b2d9f6fddaa266fff01a9f39a9b - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h
d87d95f0dce5fc06196437a894acb9c5d4f02f95 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h
a737f1820b6165f725d7549f95775b4d21c6767f - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h
ee193c30ba73303f2644de840804e121c4a9a4ea - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rtc.h
c98c6c63fac3bcc2cdeac550828e9bf253b0aa5d - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h
dffe5c55f2b819f9601130a43806007a1746359b - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h
06a183a5b3a97fb5a3ccdfeae53c776cfb650a04 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h
b93c1179f456734f5977ee7fde296795f371dfaf - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h
ced33137d14e602db17d8caf629ada93528ee8a8 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h
54e67e3be92290f9e6457f2f91c04bbc7099ea48 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h
5de56cbae29e353bad3c38d9081a059eface1630 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rtc_ex.h
d79b95f004663f145e964ff6cb145e92a36e9652 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h
4e41e93110701a53f7bc809136a4ab0649de3413 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h
c23c26b4a5705dfa36703ea8b6c5f40dffd8ab7f - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h
16b99b227562ccb1354b33482c354c1812123013 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/CMSIS/Include/core_cm4.h
3fea94e10d135f6717a70f8d1e199b010baa7f08 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/CMSIS/Include/core_cm0plus.h
9f5c937feac2936c1cf0ced43722f527a1531ca2 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/CMSIS/Include/core_sc000.h
6c2c8dba3fe5460a7310efae010a5b7937025aa1 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/CMSIS/Include/cmsis_armcc_V6.h
e0a1f1bbe188023d261188754e1dc59c781fb565 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/CMSIS/Include/cmsis_gcc.h
70a7d2f8ffcfbebc2f39f3cdb5ef701e081a6e92 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/CMSIS/Include/core_cmInstr.h
e68945e0faf5ee8d1f027d7e8be3b4c321028e39 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/CMSIS/Include/core_cm3.h
0186b62597ed4f4804e7b81abd3b598e6c2bd555 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/CMSIS/Include/cmsis_armcc.h
bcb11dcd98c7ba42403d991919032dde3049b364 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/CMSIS/Include/arm_math.h
c93167da8e8344f98d9b28f27a857a1d41a10530 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/CMSIS/Include/arm_const_structs.h
3d909ef05e1c328dbc138a1b906e914b968239ed - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/CMSIS/Include/core_cmSimd.h
c6f03caabac7d0b08fed7d09ee6db8b6f2093853 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/CMSIS/Include/core_cm7.h
c87716fe24718015c2d01cf913480c92e3b0b4b3 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/CMSIS/Include/core_cmFunc.h
441239dec598474dc7ab14b7283195c7f649a3c1 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/CMSIS/Include/core_cm0.h
90061e5e149725c682eb80978b557fd388191f24 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/CMSIS/Include/core_sc300.h
0a94a9650bfc5345f574fb23a10d495f06735cd9 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/CMSIS/Include/arm_common_tables.h
bcaf73ba929b494e9c3f2993e975bb7de3fbff2e - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h
5d6591e31b6229f63fd06eb0de8724554b4b44f0 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h
8f94380a70fb6a2a723ab7278572292ae274e564 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L476RG/Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l476xx.h
dc8595af01c9444a2c541182900bf2b0fb28b819 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/.mxproject
a52f7d5678ac81e61ec37b727b6292b6369b0caa - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Nucleo-L4A6RG.ioc
3985a4fde219680c1e17e341acd59488439dcfde - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/mx.scratch
ece39ffdce43f997fdf2dd55d74017f38603c617 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/.project
cda727dead5740c98700cc1fd4ad37858a6f0320 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Nucleo-L4A6RG.pdf
4afdcaa4fef2feb33d218e6d2388e3f3b3838203 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Nucleo-L4A6RG.elf.launch
3f8bc8936a633424641eab00ba651f076d380035 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/STM32L4A6RG_FLASH.ld
44ea1cb0eee4d33fe6e691653cea4a32e74e87f0 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/.cproject
20bd88d6e69c5795823fcabe4faf5f97189eab7d - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Src/usbd_desc.c
d866ccd9ea216a89eb9d539b9a9df43b83b1c7cd - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Src/system_stm32l4xx.c
65f7e0f37508e288cec330f92d477098d2ff4c82 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Src/stm32l4xx_it.c
c28cb48bd43bb7b4c492078ab1dc6f494bfdba2a - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Src/stm32l4xx_hal_msp.c
6d604522f0cef3bff34a64eb9e500cdce25b5d57 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Src/usbd_cdc_if.c
c1db06ecec983da549ee3a8ae57154b2460f8d4f - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Src/usbd_conf.c
16d1db972ccab86a0e8c0aca69dfb400853b139d - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Src/usb_device.c
40579596ad18cd876b59233ace09918e6c93fc64 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Src/main.c
f8423beb4a536d57e5aa0c948599c0c8feb00a9e - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c
c766b5449c964208e6c0301ca2f558902b8b9528 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h
ab94a34d9ab12695aebd8fa8466ade808f27e929 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c
3b25e71498a2311c71b3919166ecf09dc5141b1e - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c
9a2873d30abe93eeb862acfe28f3590a9a6f06b7 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c
60317c715b32cdb43f4f23b57141868055ea4589 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h
f2e11c0c40d6e621c683638444082ccb2cd1e404 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h
ae9cd8bf67b36f59b68abe1006f6e621b3097871 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h
10fec4a5fea35ec45db039d5a366c3b6a4dfdc47 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h
03bd0280d262095dfc54880a3beebc7e8d1cd238 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Inc/usbd_conf.h
984804b6ff3ca103ce3abb97027764ede06f0b28 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Inc/stm32l4xx_it.h
9d1ea64fa5998b911cc7f5af6cec6ddbf4fc8f9a - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Inc/main.h
b90b9552c0a39dbb50871b7d2d0487c31ab43c23 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Inc/stm32l4xx_hal_conf.h
97a7710fdcc32282cbf75739e2b1afaff643e09f - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Inc/usbd_cdc_if.h
c20ba1d07bb19091580f77d81b3ef95b0b843914 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Inc/usbd_desc.h
715d5dee9ff492cfad346512f7d1d53801e4f445 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Inc/usb_device.h
2393e776dd333dae85dc34f806ad87b6e55aaff1 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/.settings/com.atollic.truestudio.debug.hardware_device.prefs
988b68517c27704d1f464138322cb3e7ef94c005 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/.settings/language.settings.xml
a19a363124b0fdc91c783bf67234bfd09ec1c211 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/.settings/org.eclipse.cdt.managedbuilder.core.prefs
3ae4b06f79f30f7f8aa7cb36e8911765333cf94e - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/startup/startup_stm32l4a6xx.s
7b273c6190dd31db4d1f5091bb46a780eed2f065 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rtc.c
6905470e6a40b7909609c5a5e902c0efcae29c17 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c
b31f07cb494c120315b086a52a662d098943fb56 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c
4dbd5f4ac87a7b6ac1d550a567e59f1238f7d026 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c
54204b942a2710a64b6ba0c30b84e1b3b52dae74 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c
622a5ea51bdb8c062e8e889f4b71bf6482fa5264 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c
12784369e6124301623660326aeffa81593b036a - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_ll_usb.c
4dda1150337631a2d17123634e05b782a5668b04 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rtc_ex.c
25ec312cbb302ca24cf9e909df42265a12821a78 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c
2b8ea417236425866c81e285a0ab18d04783b587 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c
b167ca16a9d80ffe8bdffec69454d740bf0117bc - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c
5f07fe6dad1130b6ee4df5a184ac8b0226619cd6 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c
7e7baefb69d9a62f7684c185a9fb3ddd83500a39 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c
df06884b75649ad21d7110e12ab4de41f1e9eb4c - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c
a15fdfad695b08ee5b822074ff541cf712f2c39b - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c
da703e39e170c4cb94dfa998f3f1ffa29d80d699 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c
36599a4da2f2d80c6e6ac0220385ee433b03e54f - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rng.c
4516770dad8099473586dfb47cf5cc4cf85dbecc - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c
e926d3bdc7e3bf71bb7539ea30ea292b92d7ffe3 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pcd_ex.c
70c187cc31e577582b15c93b82183a02ae1e45c4 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c
a049a3b8f2c1bbc893531c3dec916646bc42443c - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pcd.c
b241444200a682980fe3e6bec522da4e967a170a - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c
1e88ee4f8bd2b1617b9d2523943dd1e6acb23dcc - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c
296985473134d81cdcee7e324c2d47a069390872 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c
da4c5dc66fa19f1a2dea73d7aa3e81597b676dcc - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim.h
76daccf26f1c1119f653377547eebb3aead3ae9a - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pcd.h
3f9db9098124b6d4bf658a9ff358a93525f658b0 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rng.h
eeefa20586b1afc75301a9c1a9fa51984bf8e5be - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_def.h
85ce004e873496c1eacf6087a2b3c82652c2f87c - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ex.h
cc2961929d2d137935b8d36ce4d073c22ecb6d0a - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_tim_ex.h
ef09ef096f9aea54c52b3f8643d4a2de8caefd08 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_ll_usb.h
7d01a2e45f24933398c321ebf63ab167f6681b98 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_cortex.h
2905f1d5f33236d983b4c332990276c9e1bb5521 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash.h
05b58c53586df1d7b41ae67ee282455482c2467d - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma.h
7a1f93772829c677cd79a5c7d91c49a0d414bfb8 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio.h
66a329dbf83da1d835ef3a2056ff37b30cc34c2a - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_dma_ex.h
7cae377cfa95e6bca50a18ebe16d4ecc325278df - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pcd_ex.h
cde58e7973942b2d9f6fddaa266fff01a9f39a9b - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc.h
d87d95f0dce5fc06196437a894acb9c5d4f02f95 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rcc_ex.h
a737f1820b6165f725d7549f95775b4d21c6767f - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c_ex.h
ee193c30ba73303f2644de840804e121c4a9a4ea - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rtc.h
c98c6c63fac3bcc2cdeac550828e9bf253b0aa5d - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal.h
dffe5c55f2b819f9601130a43806007a1746359b - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_gpio_ex.h
06a183a5b3a97fb5a3ccdfeae53c776cfb650a04 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_flash_ramfunc.h
b93c1179f456734f5977ee7fde296795f371dfaf - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr_ex.h
ced33137d14e602db17d8caf629ada93528ee8a8 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart.h
54e67e3be92290f9e6457f2f91c04bbc7099ea48 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_pwr.h
5de56cbae29e353bad3c38d9081a059eface1630 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_rtc_ex.h
d79b95f004663f145e964ff6cb145e92a36e9652 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_uart_ex.h
4e41e93110701a53f7bc809136a4ab0649de3413 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/stm32l4xx_hal_i2c.h
c23c26b4a5705dfa36703ea8b6c5f40dffd8ab7f - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/STM32L4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h
16b99b227562ccb1354b33482c354c1812123013 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/CMSIS/Include/core_cm4.h
3fea94e10d135f6717a70f8d1e199b010baa7f08 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/CMSIS/Include/core_cm0plus.h
9f5c937feac2936c1cf0ced43722f527a1531ca2 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/CMSIS/Include/core_sc000.h
6c2c8dba3fe5460a7310efae010a5b7937025aa1 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/CMSIS/Include/cmsis_armcc_V6.h
e0a1f1bbe188023d261188754e1dc59c781fb565 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/CMSIS/Include/cmsis_gcc.h
70a7d2f8ffcfbebc2f39f3cdb5ef701e081a6e92 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/CMSIS/Include/core_cmInstr.h
e68945e0faf5ee8d1f027d7e8be3b4c321028e39 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/CMSIS/Include/core_cm3.h
0186b62597ed4f4804e7b81abd3b598e6c2bd555 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/CMSIS/Include/cmsis_armcc.h
bcb11dcd98c7ba42403d991919032dde3049b364 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/CMSIS/Include/arm_math.h
c93167da8e8344f98d9b28f27a857a1d41a10530 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/CMSIS/Include/arm_const_structs.h
3d909ef05e1c328dbc138a1b906e914b968239ed - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/CMSIS/Include/core_cmSimd.h
c6f03caabac7d0b08fed7d09ee6db8b6f2093853 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/CMSIS/Include/core_cm7.h
c87716fe24718015c2d01cf913480c92e3b0b4b3 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/CMSIS/Include/core_cmFunc.h
441239dec598474dc7ab14b7283195c7f649a3c1 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/CMSIS/Include/core_cm0.h
90061e5e149725c682eb80978b557fd388191f24 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/CMSIS/Include/core_sc300.h
0a94a9650bfc5345f574fb23a10d495f06735cd9 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/CMSIS/Include/arm_common_tables.h
bcaf73ba929b494e9c3f2993e975bb7de3fbff2e - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4xx.h
0f852853d184800034247a5d0050de2038777c65 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/CMSIS/Device/ST/STM32L4xx/Include/stm32l4a6xx.h
5d6591e31b6229f63fd06eb0de8724554b4b44f0 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/L4A6RG/Drivers/CMSIS/Device/ST/STM32L4xx/Include/system_stm32l4xx.h
85e7e51a25b2016e19b43a83b81346b96db2098c - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/Shared/syscalls.c
9d4edc03b07fb9a306f35477b2a45b832a0b66ba - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/Shared/Platform/include/PlatformData.h
fe5b2785e65fcf188d1d792ffd7c6fc9c70e9e7f - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/Shared/Platform/include/prototypes/Platform_fp.h
af14794f057b0fe6e08f9ff6dff3f0984e2cc237 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/Shared/Platform/src/PlatformData.c
2ed430e9572654a9f6a7d1c1de12420cc48fcbe4 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/Shared/Platform/src/Unique.c
7f88737cf8bf4c13e5bf0e728c99ecd1ec2eac82 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/Shared/Platform/src/NVMem.c
c1fce976f4e44378a135909f67cc1ef149b461c1 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/Shared/Platform/src/Cancel.c
6cc02291ef841cd08ee3118ea5c136fb69c5ee46 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/Shared/Platform/src/PowerPlat.c
b9b1622090e7b69eda0c3f496ef773e397a0e0f5 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/Shared/Platform/src/PPPlat.c
a1acb654a01f63360985c13e32deb69a3606c39e - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/Shared/Platform/src/Entropy.c
c063491490aa3f9157ea6d4880a3bb5648095413 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/Shared/Platform/src/Clock.c
3d94e64861a183a21778f017d310208436cb95a2 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/Shared/Platform/src/RunCommand.c
7dabb6c802903adc4edfa6e0ba4b894cf0ffd4de - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/Shared/Platform/src/LocalityPlat.c
bb9a6b6f33159fa31c2e47ad133c70f5e77d3d39 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/Shared/TPMDevice/include/TpmDevice.h
a2564dc3ec0abc5d2445670de944311b40bfb514 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/Shared/TPMDevice/include/StmUtil.h
d7040d40a32ff98b1198bae412d846d457bd6a4b - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/Shared/TPMDevice/include/user_settings.h
bce98e24be98537929f371316db2f2801c152ed8 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/Shared/TPMDevice/src/StmUtil.c
ddf299e517d5b6ad1395c4106f50d0261d7a26c5 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/Shared/TPMDevice/src/TpmDevice.c
1afb5b61a4b2c034a07aad4f5e11c78d9b1f0412 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/VCOM/VCOM-TPM.sln
507bf667be23c5916dad43a004b8cc0f97f4ed50 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/VCOM/VCOM-TPM/VCOM-TPM.cpp
6b81e4587698e6857f4814dce4b4d0391a2e8766 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/VCOM/VCOM-TPM/VCOM-TPM.vcxproj
57c8c0f47d2168b6955706ef677c467b7368a98b - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/VCOM/VCOM-TPM/targetver.h
6a0dc513f9c01293d6cdbe167f765c5b5f4d5e83 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/VCOM/VCOM-TPM/VCOM-TPM.vcxproj.filters
74f86a73a25ac67fc34a014747a6efeb3d44e1fa - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/VCOM/VCOM-TPM/stdafx.h
5310225c6b795c683cf6f10a15abceae11332937 - optee/samples/ms-tpm-20-ref/Samples/Nucleo-TPM/VCOM/VCOM-TPM/stdafx.cpp
f9b4aae1684da7aaee3611a970f76f38a46d52a2 - optee/samples/ms-tpm-20-ref/TPMCmd/flags.m4
0204b212240ca16f5e60f43b0a30b2697f77d183 - optee/samples/ms-tpm-20-ref/TPMCmd/simulator.sln
1cd01c0cf4c4a66ec725a1f0fccca2350024844d - optee/samples/ms-tpm-20-ref/TPMCmd/Makefile.am
194cc98738c13d785c82704c6fc8e0ed0bcc99e2 - optee/samples/ms-tpm-20-ref/TPMCmd/bootstrap
90c98d16825e38e3e8c730857334eb3678940874 - optee/samples/ms-tpm-20-ref/TPMCmd/configure.ac
dabc6f784df969fbda726a380436cc15b3ae3a54 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/Tpm.vcxproj.filters
1767e2e5744eb1166945e42a8b4c345bf876c401 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/Tpm.vcxproj
6134fd9595a0db3004b3200ab2754e6060a9e613 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/X509.h
731ef0324c0883b40649fa1ce81f85f6c6f64e7b - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/swap.h
d80e69a62cc5bc30321acc8ba40916ae6c11bac9 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/KdfTestData.h
09c046895d104e84270b38f51a580a571d067e37 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/TableMarshalTypes.h
f03b22a486395fb8481df3912c4beb5814cbd117 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/Tpm.h
cfb478e72c88b38989a79c857ca529c96cb05a26 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/CommandAttributeData.h
0bee8bdd2a0e7cec942ab1ffe4f5a5a0819f3204 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/Commands.h
58e518b99239ed12b3b9d18225645004fc7416d0 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/HandleProcess.h
0b3bdd77473b5c674385a4de1fb1ba806385ffa2 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/ACT.h
3cdb1b7e18bf92a0a11db7ba7bd87f76f7c62157 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/CryptHash.h
5ee1c6c70f36b1a98a1c09e82db86bdfb94d6bd6 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/SelfTest.h
5c7992298c480a370df9665518ec6dbae0de0602 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/CryptSym.h
6690e48f59d84a65cb431aedc4ff04060ce0390d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/NV.h
48323efd0b877a90ca646e264addeeed14adc169 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/TpmProfile.h
04a11a40106e32d1a2c327ed2ee76d52f1fac338 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/TpmAlgorithmDefines.h
040719da4c629d01698b06072537878d1ea7d2b9 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/Marshal.h
6a410f835b221a8130b8be5650395d9faba6072a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/CommandAttributes.h
7cbe82bc9668a6dba6a469b42f3d0b942f0520f4 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/TableMarshal.h
a11f6a872439861a933474fe412a0427c0730fe1 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/TpmBuildSwitches.h
5d1d9bf90c4bd7e98673e597da72ba2f3b9bca93 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/BnValues.h
ed8716500b6fa3680567484cef4705f9a874e365 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/TpmASN1.h
94aa65d7ce788d652472e56c424a45e7769dbcc2 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/GpMacros.h
c5f4ed58f4082b8a06c2dea39618e8fb10454877 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/PRNG_TestVectors.h
bdb13a835cd51676ea457d951ca7433dbc57eab5 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/CompilerDependencies.h
58c4efd7565cb517e7ab2c25a966cab710d92663 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/VendorString.h
144f3bb0c333db82f37ff9d5fccf48dc4fab0f41 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/SupportLibraryFunctionPrototypes_fp.h
bafcf4a000318fac0009b809ac2bf9a70cf9c791 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/LibSupport.h
f69660e465a1480bd79a1f8cf16f80352a60a7ef - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/Global.h
d2108a7734eec6c0e66394d3c12a50150c04ac3d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/Capabilities.h
f249cb73e1800699c831824f77261a2ec96eae6e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/EccTestData.h
09d85312988cbf36c3dd26e95988b816d1873095 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/TableMarshalDefines.h
b38f19b0bed0f5f71f2da37145d05356d0dc94d6 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/CryptRand.h
5adbbfd2ff8e8dee66469ce1ce6f2d285589c6d0 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/CryptRsa.h
efc8b2228515d82aea4ea093d4cab20a7d249f7f - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/TpmError.h
18af239d7a28f416247aa8dd6e9ecf28141a0c89 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/SymmetricTestData.h
6d0f1fb0d0f3b2a8d19f1ce046869d30150fce09 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/CommandDispatchData.h
c3b8d078373237d8e7f138c67b4f382b40517192 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/TpmTypes.h
7e6987419dcd3d08639dfd3e91a8c57fd9872b5a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/BaseTypes.h
cc0a6421806e68997e500be631aa81828521ec2d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/CommandDispatcher.h
70fda7df3afa9fd65627182e71265908467556af - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/CryptTest.h
29a46309c3fb01be084d8e8951eb7901dde603a0 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/SymmetricTest.h
23b7e6271c380c8e85532c40b58f8224ffbb6d82 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/MinMax.h
3b05494bbc0dc8e939e8026e84571fff9e472617 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/TPMB.h
bae04f0ac0d19fc1461941fea785027bcb9dad6e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/OIDs.h
b18d3976f439634cb05a45561819d0b9b4d73098 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/CryptEcc.h
11b48254afade03ed20f8c729f3892f435436345 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/InternalRoutines.h
fd18d2b01b63b618061ff8f370e2033b8c4dea10 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/HashTestData.h
ca5a553f1de3616fbf5052b6c38342e00959ff12 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/RsaTestData.h
dc6d2d41f9734e7709dfc69708fc6287a3622925 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/Ossl/TpmToOsslHash.h
6e52cb65b5558ad2766ed1b90d74c6c67b8e1e73 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/Ossl/TpmToOsslSym.h
8f4370cfcc34bb136a67d12a14149d9cf9f60d13 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/Ossl/TpmToOsslMath.h
4f5f2c13cc24a386e4bbd872b04e28b04c23750f - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/StartAuthSession_fp.h
0c232e0f1f0a3ffbb6252b7dcc284e0eb5816e65 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/HierarchyChangeAuth_fp.h
a3c777b5e458806ba068d57d179e56d85752ecb0 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicyCounterTimer_fp.h
f8c1f6beaff3089603dbb43f6bfbe4bced35471b - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/MAC_fp.h
426dee6a25a2583b6247df858ff7964ef871b9a9 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/FirmwareRead_fp.h
0a390598326789930752b0a4eb4eeca9534919ac - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/TpmToOsslSupport_fp.h
87c144583176739ed4827270dbc6b9d3abd5e813 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PCR_Event_fp.h
c0addab72ad3020cfff53f078df316c064e7cc1d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/X509_RSA_fp.h
68e113f085c014c63f20b6a810267fb29992b4dd - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/EventSequenceComplete_fp.h
d4738948505e602dfd25c30c2d2127f169469349 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/TpmToOsslMath_fp.h
1e20b1d0983d33cd549b8720837621ef325c250b - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ECDH_KeyGen_fp.h
4ba84b2df817a6524144f53ad70869d329891eed - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Commit_fp.h
d81b55f0818fc590e22d0091bb1d5e39562ee877 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/_TPM_Init_fp.h
033c9057731df5494aa445d61a4886cccfd01e58 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PropertyCap_fp.h
a4fbdeaa426df1653196174226b6b48afe347c43 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PCR_Read_fp.h
d0e86324b120265b5227e7cf729d89e4c2768bf5 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ECC_Decrypt_fp.h
872ea306826581c94a3901d981a4e343c3c357f8 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicyAuthorize_fp.h
00fc2ade3a5dc5ddd4221acf56cf8d9972c88224 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ECC_Parameters_fp.h
39d4dcf44ec35f860980866e35e51cfa327029c5 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Sign_fp.h
e3e0bfa681c313b42f930b39cb3706c12188f7fb - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/IoBuffers_fp.h
9becf531f45281cd080d8ad3140178b7011db42c - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/_TPM_Hash_End_fp.h
fe5b4ced7121524a956e7e2a8779f95b254062c5 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/EncryptDecrypt_fp.h
8ef2616ae42cfc6341c39bfc7d5c9e251fa4123e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/VerifySignature_fp.h
f81667c844095ebcbde3be4b80103fb2411ccf0e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/TpmToWolfSupport_fp.h
263799522ef3ff9d6677847e2d97fdb59aa3744c - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/HashSequenceStart_fp.h
10cd33e9e84c65659b05a614fe22885bbb0b5576 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/TpmASN1_fp.h
c079447cd9518a4638372c0f5063406242518cbb - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicyAuthorizeNV_fp.h
f60fac38469c28712e358afb8d737112e7c8462e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Shutdown_fp.h
ce280d1906b146f860d0548256feb7020cd26383 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PCR_Allocate_fp.h
300bf426a8fb3f09d3f7536ed32dacb0bd9c4628 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ObjectChangeAuth_fp.h
cd7e7991d07683dfac8d62da427618dd0b1bc1e1 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/NV_SetBits_fp.h
21253e9f491e5c3aa9285fc9b5ead280258b2349 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CryptEccKeyExchange_fp.h
4568199cccb437653f262a20a4ea2790cc2ece54 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CryptPrime_fp.h
f27e1a7967e61ef8bf65bd75de47cc20c76e6109 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/X509_spt_fp.h
8fb75dbf117c7fb587355b323ad006c34e9bdf1d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CreateLoaded_fp.h
d7c909486a97798ffe4f88811bdde662f1efbb2c - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicyPassword_fp.h
06772c3dacd56547129c09c8f9f6df1379a19fdb - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Clear_fp.h
ab94632d4ded278cb4f2ea153cc8f08f9422224f - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CryptHash_fp.h
f97a3facaa3598f5623f6b88e79c27b8d291adbe - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/RsaKeyCache_fp.h
b5051ade5493dc76c56085d8dedd7ba18165b13d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PCR_Extend_fp.h
efa6e3cd6c13f77fcdd2f0324b56f4bef02a7aff - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicyTemplate_fp.h
0cc1fd2ec5abeb0f1e845c49aaa160d4e68a85a1 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/EC_Ephemeral_fp.h
7761e46cea834947efcaf77d4bd95b35090d4f8a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ContextSave_fp.h
8e49bb3ca7117e6e780bab45db67db0ead9c5ca2 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/TestParms_fp.h
300b61a4e1ef2d90038d34101216bb4f4f438d57 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicyPhysicalPresence_fp.h
356266471ea0cd56744fa25a7f491dd297962e09 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/IncrementalSelfTest_fp.h
4d86f90ac8d6bbf2bce7ad8624c1dc2b3bf5dcdc - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/TpmSizeChecks_fp.h
7b4a1bba6d26a63e4053870aefe57a5a989c9ade - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/_TPM_Hash_Data_fp.h
d04a57074c5a6696f79ce639e9c000f5afdda980 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/RSA_Encrypt_fp.h
60a578ecc4a1311da2cb2d314599e50eda98ce20 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ClockSet_fp.h
0e48f14c10cf6cce68174a223525dc0d4881c586 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicyGetDigest_fp.h
079dd0f1840e22baed846c9e02ebe113c11b5cc0 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ChangePPS_fp.h
4496b790b236610306f95697b6d469d62f55c0de - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CertifyX509_fp.h
7c4c000d51e015f75eed6d80280e1775c39f389d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/NvReserved_fp.h
46313fe32eab76dd78587ec08d8197ceecd05aeb - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CryptSelfTest_fp.h
6a189ce8aa6a78a130802b206df376563a9bef79 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/SequenceComplete_fp.h
f451b90022116d27da1d8daa055a756cfd2c7433 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ECC_Encrypt_fp.h
8137948f4115d2d4d54323a472d93d4ec6fa4d50 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/GetCapability_fp.h
f36fa0be0029ba31ccb3df0c3708912eda650857 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Import_fp.h
d31443ea45f0f2036bb833bb61864921aba958e8 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Create_fp.h
c459ecbfa01a1793393632af787ef0449d5c3409 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CryptDes_fp.h
e062efc91d99f491e381087a02b61db9dc73fdf2 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/TpmToWolfDesSupport_fp.h
74c9451a504f6cf1c95ca2d65b544d5c2fd05271 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicyNameHash_fp.h
f2718ee13d5cf19fc376ce3c4832f2b01aa99516 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/DA_fp.h
fe973ac240eb632c90e84f8da86116fbbd38d2c6 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/SelfTest_fp.h
9a38584e2a30c9b5500393ce93e9818dda8f5d72 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicyLocality_fp.h
e6492c7ec627a702d359ea6ae8794969f786c692 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/NV_spt_fp.h
070f1d957fa166d1382a794efa2a8c20d939d5f7 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicyCpHash_fp.h
fdaf877c881d86c0f02329d28429fad0f8307ff7 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/RSA_Decrypt_fp.h
44ddd229666c154957ee9376cf1e97248f1e34b8 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Manufacture_fp.h
0fdbef88eafe31c268daa16552451e6bf681fdef - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ACT_SetTimeout_fp.h
c82c8ae619c5d23244bef504b7fea485ccb9a91d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/GetTime_fp.h
9a33da54fde72510b33d0294d27b8cad4580dc27 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Session_fp.h
991c478c0252e36dd9106ee335303bc77a90966d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/SequenceUpdate_fp.h
914d7b438c78e8a7242539c0cbfe573751cd7c47 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/TpmToLtcMath_fp.h
3e5aed256a4e7a1fda0a90fcfe86ec3531bbcb43 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Quote_fp.h
a3f4d21d0c5c06d44cab05bec5bf92983bafc3fd - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CreatePrimary_fp.h
3c2afbef3c046c3160a4ea2edd1140f5d954b71f - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Hash_fp.h
f74b75d1e6ff70241553a77c88f91d61c4a26ec2 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ChangeEPS_fp.h
cb1eec55cf276e26c8975988e7a423c33ac5f10f - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Duplicate_fp.h
1fe54f80c4cb8cce2fe745633c3010c7bd74dfe7 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CryptEccMain_fp.h
245146b2f725f65a40c489a792047786a96128b3 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Policy_spt_fp.h
7bc81e20a06653013e4acbf2174985473486bac9 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Hierarchy_fp.h
06d4cfb6780878c42481e4a77c5308cfafca5837 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Load_fp.h
f74d147bc6c976470de0070c75351df3aa04b120 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/SetCommandCodeAuditStatus_fp.h
5304584889d4d650f0af1712e0a977aa2ea0f5be - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/EncryptDecrypt2_fp.h
5a4039d7f94ae60ce02866c46425571dfb8006e2 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/AC_spt_fp.h
e9a553efde26f94f58686193a7e6008b733519da - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CryptCmac_fp.h
f1ba19c3c43065642a6af8fa5895220506394517 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/TpmToLtcDesSupport_fp.h
af0ede8240131c95b2285547640960087becef7b - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Ticket_fp.h
f5b68b2634bec606fd5bd4eec855bc0ab5bd210d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Entity_fp.h
f4427b665d78cdc3834335573899fbb6350ccfd1 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/LoadExternal_fp.h
fdc545be48642a8de20e4fd3b7d30084222ea399 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/NV_Read_fp.h
225763ffa0645413e5a490914ecd7a9de8f99a50 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/GetTestResult_fp.h
3c59906bb8361d9498ea673335e88b92361d6f18 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/AC_GetCapability_fp.h
bbd8c64c38105cbd75fce5e356241e0d42b3dbc6 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PCR_SetAuthPolicy_fp.h
932e66bb1587712ac42bed734b088921f4f6f911 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicyPCR_fp.h
1a5420f04ea7e3e726390dd2ff1bff61fd988102 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicyNV_fp.h
87d27972c3bc15584593dd37d0ef50f0c73cfcfb - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ResponseCodeProcessing_fp.h
9667984e3855fc027a45cfb981949f64b2a980a2 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PCR_SetAuthValue_fp.h
765379d25d1438de22351a96a9820bf9f67c6369 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/NV_Increment_fp.h
6c1fb57a8caea7622cc7cda8dbd7418164257de4 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicySigned_fp.h
54c2a1e796afe1f9a817b5e36aee8e51edb67faa - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Policy_AC_SendSelect_fp.h
185e4f5e8e6ec8bc7c973a7e77db33409494980f - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/DictionaryAttackParameters_fp.h
f6d26035cccaae7afe8b836b2985803184981afc - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/TpmToLtcSupport_fp.h
9e0e5f492375fcc68e65dad4a397b231a504cb60 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Object_spt_fp.h
fea4b12eaff5c6e50481a9887b53037725a2b164 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/SetAlgorithmSet_fp.h
906c4e6e7787dcc7647de13894175b9b8c78c94a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Handle_fp.h
7f1299d217585c2efab081499e77f630a0080127 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/NvDynamic_fp.h
71ed6694c0ef2f14696a671067200c134221da42 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Marshal_fp.h
be6e44fe64124ec47e14bf135c7237b8480639c4 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/BnMemory_fp.h
062e68dbb60c05523086cfe239dbfeeb8fb00b47 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/TableDrivenMarshal_fp.h
ffe4657deebfe157a4a2ee653cedf9bcb8fa2aa2 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/MAC_Start_fp.h
615b75cd87214bebe2493a06d39fc014fd87a003 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicyCommandCode_fp.h
7a31af2eae74a929f10edfcc4c24a5da80259da6 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/TpmToOsslDesSupport_fp.h
ff21254543ae6a56beeb71d3af23f8ca5af1c641 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Context_spt_fp.h
1f07c1a9db3fbb122f8ea251ebdd8594b931316d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CryptEccCrypt_fp.h
4f57f936b4064fc13f7b608cb7931359c8248413 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Certify_fp.h
2530b56f366d5693bd4b9788364595dd64ef8bb1 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/StirRandom_fp.h
bd088f3ed8a49ffeb79779805d7fe8f5fe429e6d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CryptPrimeSieve_fp.h
809a441e0cd662f3edc35bb48c71b70fa4de923a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/FieldUpgradeStart_fp.h
fc5fd2f87d6c7a171ac18ad6e702315be926ff5f - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Attest_spt_fp.h
8e12dde0d8b6a4a6df5111e1cb35070963a9c1ab - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/FlushContext_fp.h
8b01720df595ad116744109fe662ac1041ef2d17 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicyAuthValue_fp.h
26d0cc4fbdb4c876f246cd35c500de0df11d004a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicyDuplicationSelect_fp.h
3b1f567f4eec7189eeb071adccba7008432b2f1d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/AlgorithmCap_fp.h
194c22bd1d2268c21271034395c6e5c7f3456317 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/HMAC_fp.h
4eb345137b18f67c6d6a92362de243a4470b189f - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicyNvWritten_fp.h
3c4776d65fe50a6b4f993be0274bfc9af6a3788f - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ClockRateAdjust_fp.h
b6d95fc4fb41098675bf252b54fd9f70e151396a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PCR_fp.h
398b220fbfcc188a24581dbdc0233f38cf46da65 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ReadPublic_fp.h
5f3c95f7f2d37e876472a869c5744b9f2836586b - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/NV_UndefineSpaceSpecial_fp.h
cd64ef63467eebced0395ccae4075ca03b9b477a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/NV_Certify_fp.h
1cb2a688416c6bbadc8f136f5cd7ba4f41e6a908 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CertifyCreation_fp.h
189603b73c164917c3ad6da3e57d43795df47e49 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/TpmFail_fp.h
181d669752be56b7d098c0e2b997e83bbf4e3463 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/TpmToMbedtlsSupport_fp.h
50d60105aeb491c363fb7fc71af8f6d184a8ddb0 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/SessionProcess_fp.h
342bfded66f61b70aeb3d6535cb587da5c084190 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Startup_fp.h
657d7a2f6be74009fd6ba71259a0ba9db9a5f9b4 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CryptRsa_fp.h
30e2baf658cea26efa3f65366091f18add1dd3e2 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/NV_ChangeAuth_fp.h
70caac4f95082012db4c203616bedd8902a33e1b - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PP_Commands_fp.h
705c42624a99f8a50f98e73d8e689dfb980e2353 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/NV_Extend_fp.h
62167537419cf517ebecbeef3a3f5a0c1022339e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ZGen_2Phase_fp.h
423a70459c7a42197b1022dc4985f46533df4f9c - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PP_fp.h
0db82ff3316ed8f8a4f35ac28136f4534cdf8ada - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PCR_Reset_fp.h
4b3379ea7110dd195658a8bea5a69f015634fa2a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/TpmToMbedtlsMath_fp.h
4014e8a2dee7e34d380f54a9f63e57eb084c7e38 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicyTicket_fp.h
33f109b5abdbba662dcfd9adba3ee83d6f5761c7 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/TpmToWolfMath_fp.h
3eaadf88924cb87a0f87197e56d730d10aa4bcea - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/AC_Send_fp.h
e2bab6b783da540ebed7c7744c2ab12f96de3a6c - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/X509_ECC_fp.h
9208541836c9bd37a1ecf8b8da894d2d06caa429 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ContextLoad_fp.h
3a2df2a3ba359f45c72afc5477feaeb04c040911 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CryptSym_fp.h
e1a70369cd10c91bfa80cabac0164abae4071c00 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CryptUtil_fp.h
bcca270ebd95b6c36bb026701c1fc6e10554269c - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/AlgorithmTests_fp.h
64aa9231cb6f99292517ddf87646f4ec58112fae - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/BnMath_fp.h
1dc8a1b1ee77cdaad11ae24d7c9e233a1aa179ad - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/GetRandom_fp.h
d91913b01b764e0449460491497eebbf88f9f916 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/SetPrimaryPolicy_fp.h
3fa7b7eff4068d80739c460f99deaaeb38dcbfbd - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/NV_Write_fp.h
1f5d61b4bc666bc9e2c7a2b2340981780b1d5621 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/GetSessionAuditDigest_fp.h
da0cc9b12038fa5755653d91b6af905656867d8c - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ACT_spt_fp.h
cb593754e54997bfec26b244337da487832a169d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Bits_fp.h
966a94c84420a6e831b2345e42c2a1b5208935ca - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicySecret_fp.h
daf655f7f9d8e642540ae12f919a65c9e3272999 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Time_fp.h
8c79c59ab5b57268d7b68edae092db9e1da1b272 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Object_fp.h
fc302c9e27b645c41806d3e0314fa5af086ba321 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CommandAudit_fp.h
d7ac37a61726d7e3b2733f8b704489a828207d79 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/EncryptDecrypt_spt_fp.h
5c6bef2af8c42ced4e3549272d93b6d9a7abbb4e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Locality_fp.h
94e53599dcb7a66ec20387e0622c76308ffa7518 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CommandCodeAttributes_fp.h
e78e7c727698052ba6fd837e2274a99ea439623f - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/HMAC_Start_fp.h
d688bd13f2834c070a6436dc0eb7a8ef69968ef1 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/DictionaryAttackLockReset_fp.h
eeda26581cdae3c60f7b85d412d6e722fa1cca1d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CryptEccSignature_fp.h
18ec7d3e9e1a2b6819d68862aa501f87cf313e57 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/NV_ReadLock_fp.h
1fee483125e847c0c6a692a5d8bcced1cfd2f968 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/GetCommandAuditDigest_fp.h
65f6077d8ce98912da5a797f9cb1a618663f987e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicyRestart_fp.h
ff4177b6562723e9391aa6c1cee96acdbd5f54e5 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ActivateCredential_fp.h
6a98f30011aab15ae4a3e2f4a5f18a678003d64f - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ReadClock_fp.h
dff750cbe8395a88e93634e511dc2c2ff71d28ae - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/MathOnByteBuffers_fp.h
b9702a44eb11019d3a4ec6675ce4e38e67221d9a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ExecCommand_fp.h
06199d37140facc7d34c4897130d896fa683bf3a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/FieldUpgradeData_fp.h
46dae84767e488ee05b03d268bf0077488f135fb - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Vendor_TCG_Test_fp.h
966015a1f338b6ce76df6dd119a899c8dd5193a0 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Unseal_fp.h
0a1f40864a1114ba7310efa53eec36ff9ff0d0c3 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/EvictControl_fp.h
6c15358e6e765bb1709933086621bc6de87c8324 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Power_fp.h
e4c92fb55cb82f8c0c8bee37aa8e6bfc27414535 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ClearControl_fp.h
a3044ccd6ff15c5f98f7e3e928bd21ece990f192 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/NV_ReadPublic_fp.h
385303ab908baf98f40aaa1773f283a2eaf47fdf - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/PolicyOR_fp.h
81fa16e20941dcace05e6e8cd07213fc49a61045 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Response_fp.h
1e6063cb8570108a24316b1d0b0a19f8d3fbfe8e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/ECDH_ZGen_fp.h
294a8c44266ef8fe51719e7f4aa2431c106efa4c - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/NV_UndefineSpace_fp.h
bda7a075bd3ac2b5484c7ab74c9a1149331b1606 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/BnConvert_fp.h
cd0104a0d1225c54870a961051303400679e6f18 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/_TPM_Hash_Start_fp.h
5bbc5c70ebc57d409d90c3429cd56b9b5ba41bc7 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Rewrap_fp.h
4614c9b4ac558792b4bca4a00db55929090dcb8a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/HierarchyControl_fp.h
c334eea2de454d94ebf0fcb31d0a0abd4478e222 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/Memory_fp.h
9df5275bee6405837a4e152739b4caab9caf9708 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/NV_GlobalWriteLock_fp.h
4cee80ce92fd1c8adb25144bd0e41b0e9cdbbec1 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/NV_WriteLock_fp.h
b432f0167cfc07f57f8eefe34ae9d371f0e65f1c - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/MakeCredential_fp.h
9e65c289c6e006611fd88114375bf5d690b38d37 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/NV_DefineSpace_fp.h
0295a03af3062947bf7f4b6b8630449aa099ab2c - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CommandDispatcher_fp.h
a306f5aa9c06af0466100491598149650dfdaaa7 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CryptRand_fp.h
ba809abff8c2bbeab31d3bf32837b04784fa1b5a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/prototypes/CryptSmac_fp.h
83f5aa1e09b5cf7f7e9c963a04924be2d387ea46 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/Ltc/TpmToLtcHash.h
9ac20ce300cd3be129fa297a4a163f3fa3f1eba0 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/Ltc/TpmToLtcMath.h
7c782bef7fc2962fd03c896be5358aac325fa276 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/Ltc/TpmToLtcSym.h
48edc2e51ce501d43db4723d8322b229fc0eda1f - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/Ltc/LtcSettings.h
18938ceb070982017d5632c8111ccec6d8717bbd - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/Mbedtls/TpmToMbedtlsSym.h
392bc93b6983659b99c8b56b15805a38ac333db2 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/Mbedtls/TpmToMbedtlsMath.h
ff17ddc4c85292ce6f01b76548e25b0a98419666 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/Mbedtls/TpmToMbedtlsHash.h
64aad5263d919aa145dffc96a4941c942d70691b - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/Wolf/TpmToWolfMath.h
21b31bbdb64ac04aa1f112c364cb48c84dec6d73 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/Wolf/user_settings.h
618c984b216712a3ed059461036bb34c4833c38e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/Wolf/TpmToWolfSym.h
11cc83c54cb1323456bd8f3b0cb56de7a5ea6952 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/include/Wolf/TpmToWolfHash.h
ce4065d5dbc369ef2260cfa2e091a9cdbad8ffc6 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/CryptDes.c
8b5eeb7ff5530df4bddc9efe348fd45d8609c6bb - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/BnMath.c
87697819416bc9f6b5f4eb7971686f0d03d6cb80 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/AlgorithmTests.c
3fdc1e98645d29e1259c89193310a10565e0c381 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/RsaKeyCache.c
4958b5f51bffdefa5547f7e727a876d9490fe9be - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/Ticket.c
3a3ddfe5fe7f68485fa4470ee618469d5d1fb33e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/CryptEccKeyExchange.c
6ed45ed0c56d83ef758a7f2c862927bdf71b156a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/CryptPrimeSieve.c
b5d37ef8c950f8a169f5a9ef1e7b4328d2899401 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/CryptSmac.c
9d5ee1ec8336ff2b940ec56b380b95b98f41a104 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/CryptRand.c
d34cd17447bc01028977a012463d65f135f96fcd - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/CryptUtil.c
b1a8ebaef50f97ee33ecae24d5edc0aa580c8ed7 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/CryptSym.c
447f5d6341ed6ada7a8f30e830eb7464046b8e5c - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/PrimeData.c
368e618850636f255e9e57c0b139dcddf82af1e3 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/CryptSelfTest.c
3a9e9a081c926caf63db37bffb80cda40c21ec2a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/CryptEccCrypt.c
1401ef177f3e3bd7de55d6e5f0f8cf2e3ee71cf0 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/BnConvert.c
e81147da24030ba21f12edaf9d1917661c163be5 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/BnMemory.c
8cc48da41f271b6527a5855300cccd7c4094b96e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/CryptEccData.c
9b79ff2b06c224c971f1e1e048045cf767db0830 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/CryptCmac.c
4b29d8a36dc33ffc4d29ebc5fa799d6d99007ba4 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/CryptHash.c
22eb0ea9add313f80a3ec949c2178c80c14bea52 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/CryptPrime.c
c68e7e9e168486bd7ee10b85712f8cbd28c8c2c9 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/CryptRsa.c
0ffb452a1717483aabfe47a9eeb7b99ac06ded4e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/CryptEccSignature.c
61b0cd7757e3673f4054a6b67be5df89fa6c78e8 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/CryptEccMain.c
54022276bfb56c330602829897c3fd1950feb456 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/ossl/TpmToOsslSupport.c
08b72177479e566714d6fef52816fe3b32322152 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/ossl/TpmToOsslMath.c
480e6f783ba16658f88981764ffe2f9218ba8f83 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/ossl/TpmToOsslDesSupport.c
aa003ed14dfbd14f15c33f8c85d2f780947c7624 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/ltc/TpmToLtcDesSupport.c
efd79a528de091dba68dffefc751a0a688423b93 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/ltc/TpmToLtcMath.c
9c1b3604bbf2860b0d80a657410e2a029adba6a1 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/ltc/TpmToLtcSupport.c
57d49fcf7d7e75f0f36db31891f577fe559dfd9a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/Mbedtls/TpmToMbedtlsMath.c
4368ae6f39b8b331277add014bbff034b940d525 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/Mbedtls/Mbedtls_mpi_Ltc_desc.c
4613687d53030af00a6b329a71087cd94acb5f11 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/Mbedtls/TpmToMbedtlsSupport.c
b0a0e725f466c5f614f8bda31e08f9a919f12fb1 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/wolf/TpmToWolfMath.c
3af0edffcca6f089325ee30b97c2fb94e3b291bb - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/wolf/TpmToWolfDesSupport.c
8eb628b011385e5d70d3cfde68069f665ad56e51 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/wolf/TpmToWolfSupport.c
f030593dac7c1db3e6e839d0e1d7d0ac8945970c - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/crypt/wolf/wolfssl.vcxproj
466691e67c12dd9a679781b63234956dcaceba1d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/X509/TpmASN1.c
04b37d6adbf120e357ccb4678e380a1802931de0 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/X509/X509_spt.c
5c354c7223a81d7915882b573c56d94861eb2696 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/X509/X509_ECC.c
77b2c67dc99cf0e49e4cbabc22dc9acadf309708 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/X509/X509_RSA.c
46bab656e2cbbcf766c84d400690e11877f8a515 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/main/ExecCommand.c
0334c584b4a788c6fa56ca81ee53716501df41b1 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/main/CommandDispatcher.c
eafaa29ba3e6f0cec01550636783df940a842bab - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/main/SessionProcess.c
82f676616d720a25d5644ecc7960b7eeff0389d5 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/TpmFail.c
ef0426dabd8f706a78db06b58f8068b38ea9168a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/MathOnByteBuffers.c
0b4b574b83e692740b0c4e5d62635fa967d01e85 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/Marshal.c
2c65acd9bd5f6337e5abd55c998395192cea06e2 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/ResponseCodeProcessing.c
38de6a36d2444e1ed0f3bee1d4fa5751c01943fc - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/TpmSizeChecks.c
58ee288becbef146b8dd5c5429f456388af332ef - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/PropertyCap.c
efb8e8833bd517b3b9385257aed75aeb07b5c4ae - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/Entity.c
20cbfa127bd4687094564ecd2ba0d71c11785b92 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/CommandCodeAttributes.c
42ba5fa4090f7900b93f25610272c5d2744f92fc - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/Bits.c
d1f11e405396fc8a356db922fe2cb0c8f654fafa - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/TableMarshalData.c
1ba30fb3845df79d51ee779b4eed9d9b7d1a3746 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/Memory.c
94ba9200336a7684a6fa85ec99615753998935fb - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/Global.c
9fce7edfb51de4c44936f9d5f46af956fd8e86ce - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/Manufacture.c
40037ba43bb2780caab6c9320b9428a9e50c179e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/AlgorithmCap.c
6e7dea780558ebfdd0b1668661ac43fd7e876dc6 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/Handle.c
b80579004bf66d76c34c31b4fe0ba65e1a34eb8a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/IoBuffers.c
36be33ce745c22699c4e2c5fe1eb19df4deac267 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/Locality.c
5d749f54ac223562addbb57a4b3ece73eb25b9c4 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/Power.c
f8b98f1215fd1f432f6e12fc63cc39e8bdd8be20 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/Response.c
f117763dee48fbe30eec672134d8f4c747362762 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/support/TableDrivenMarshal.c
ebbf99f5b71a40e2dcb3b0718428993ceb092ea7 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/subsystem/PCR.c
ec1d7790053a5109933da61c97434e47e326bd4f - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/subsystem/Object.c
74b6eb8868ae67779b9cd920d12e7566d91ee613 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/subsystem/PP.c
6f80821c4cecac735c594a05787bbed9e95b3079 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/subsystem/NvReserved.c
391883c2c03bebc1ae73eaf4532d5329e15efbeb - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/subsystem/NvDynamic.c
8f0cc6cde494e0e8e21ea01a914f39d3f98bf4ff - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/subsystem/Time.c
c8236f84f180f2a66e475945307c6aab4e482bcd - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/subsystem/CommandAudit.c
8d9c13452adc813895f72f470b65117e0e51db1d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/subsystem/Hierarchy.c
26ddeedbe4bc042989c17d41b3103a7de8ac1aa6 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/subsystem/Session.c
e04ffaaa0b2a9a182d315f2296f0f850fb06f440 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/subsystem/DA.c
956f4eb8bf2f4bf527b634e5a10d21044d4a92e7 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/DA/DictionaryAttackLockReset.c
5b5d449bdc2e71ff8057f449d9e5d1ec8e1da5c3 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/DA/DictionaryAttackParameters.c
e877361fbd9ab03f37548f2b969f26c1e5d1a986 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/CommandAudit/SetCommandCodeAuditStatus.c
49d503f437be88abb3f8fe4e3843e150d3cbae80 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Asymmetric/ECDH_ZGen.c
4c9c1d8f06b9befc1dd89a87aa787db5a447a776 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Asymmetric/ECDH_KeyGen.c
36c60811874f45b8d6a79f79937c751c30988a07 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Asymmetric/ECC_Parameters.c
0b8899ea87e95427aceea6603379cd4e0ae8dd48 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Asymmetric/EC_Ephemeral.c
49f8fe178b8e7a87b01c6859413053a68c12cda7 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Asymmetric/ECC_Decrypt.c
9711def3ae76eb059ae7e10b3cbc85227c5d666a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Asymmetric/ECC_Encrypt.c
748f01adc89b2fe04ba4a8ac53d4bf345cc57c50 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Asymmetric/RSA_Decrypt.c
c2c0552d7494c97ddf408939c954951b1dc3033e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Asymmetric/RSA_Encrypt.c
44fb9d7637a41f76fd3105365c223cca6d5bde79 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Asymmetric/ZGen_2Phase.c
f523d6e9f92f556eb67c7192a4a212dcd21cb783 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Object/Unseal.c
1270d2675a052e452604abf21ae7d1e7ce9f055b - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Object/MakeCredential.c
96d90b66981dcfa3e2a05c0cbecbf34b91a65e14 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Object/Load.c
1bca8c7f48e122b595f81ecb428b54ea1dc50742 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Object/ActivateCredential.c
f020bb04aae416aeb7c1189d6ed5c79fb0a6e345 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Object/ObjectChangeAuth.c
5d5beaf98ae2e96ed9e9c00ab6ea26a57c78204e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Object/Object_spt.c
c09f0b9df15e12662d6ad78a68444a67bbdca8eb - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Object/CreateLoaded.c
310b0898c923667f453d165e0a9926eb8d346a6f - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Object/Create.c
64d5919c672dfc44fc10b7b069c2c866cabe82ac - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Object/LoadExternal.c
c3b9c77f50fb64add3975acb54afcb9419a522c3 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Object/ReadPublic.c
cabe90d3a0189bba8f0ec6be382ecb611e56d766 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/AttachedComponent/AC_GetCapability.c
cf6f2db7011f13d73a939be1a73a566edb53c5a0 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/AttachedComponent/AC_spt.c
8a5d00c0ff144f96ffef9e3e2ca6fdf521a138cb - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/AttachedComponent/Policy_AC_SendSelect.c
fbaae98602eedfa517257f018c3ba4cb424d9315 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/AttachedComponent/AC_Send.c
973173f0edfcf6ab2d80e4380b6bb78bf08119a9 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Context/ContextSave.c
96b1b4082707dddfd7fe52922b12ec510b3fca8a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Context/FlushContext.c
551606340bbbbd796441854729786c2c94a53f9c - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Context/ContextLoad.c
4c3fc77c75e0b5742471eeb110d6e6fabcb65731 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Context/EvictControl.c
733767778ac50dbd49ae6b97c045e5b0cc37046f - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Context/Context_spt.c
09e831c6316eb9fcc1350c6072797e7c9c2aa283 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Misc/SetAlgorithmSet.c
4fe85236b0efdf18eeab5b29cc23556f0279c206 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Misc/PP_Commands.c
e7a9e652bb4ac5e85c8e1db3d4e360db21571d1c - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Session/PolicyRestart.c
5bacab95011862392ab50c7063fbd39a71e4e1f1 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Session/StartAuthSession.c
68daa6c7c87031c44832452db4f633ccfefa061a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Startup/Shutdown.c
19dadc62f6dd24fbe1617b47f8643ede9afbb6d8 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Startup/Startup.c
a85083fd1766596d284bfcda7878062e4f848d31 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Testing/IncrementalSelfTest.c
043f05cbf29aaea72976bafa119fe4c6ea52947d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Testing/SelfTest.c
a04e1f890e0dc85c03762a0f93da8933cf72eeb8 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Testing/GetTestResult.c
39cef4fdd45cfae84dfe0b10421a8d22e48040bd - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Attestation/Attest_spt.c
c5b487407768a4cc47ce3e439229365023ba38c7 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Attestation/GetSessionAuditDigest.c
06e3406314f390af840548aa1e2bffa1500d0f38 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Attestation/CertifyX509.c
39d8048f7d7f6324dede76816b9cdce1895eda8a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Attestation/GetCommandAuditDigest.c
cccb8929c774f62ace8cc0f950b76aabc02e3f0c - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Attestation/Quote.c
7c3924284378b21001f6120874f7286b08bcab70 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Attestation/GetTime.c
0581c121a0ffb4b5516cb531fe622ce94df07d53 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Attestation/CertifyCreation.c
f7ef52b7fc3e51ac574ad1711265b80fae74a4b4 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Attestation/Certify.c
60025cb0327048a1655b2293a91790ea95968b89 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/NVStorage/NV_ReadPublic.c
9b707597db32549caed72d79d4348286c2c8c84d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/NVStorage/NV_UndefineSpaceSpecial.c
9b54b8fc55f8ee130f13641cba871c467c2f6539 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/NVStorage/NV_DefineSpace.c
ff8f74e23cf6637980a1019ff15003dafaf84a91 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/NVStorage/NV_Increment.c
bb0a22e25778627d4f64d217c94007571f56ead0 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/NVStorage/NV_Read.c
b41bf18cd2dfd6937ebd33df85106bbd74c13966 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/NVStorage/NV_UndefineSpace.c
34b1f44147ff14e1982afaf5ad498c710d71c461 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/NVStorage/NV_Write.c
0f132292bc781aa375c73d7cc156d5ae2296885a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/NVStorage/NV_ChangeAuth.c
4018d34a03f1542e2e6e07fc3c885b9a7151709c - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/NVStorage/NV_Extend.c
9dce4f4ece8e8dc71a031b70d4772c43260808bf - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/NVStorage/NV_spt.c
274e0fef208e3559e364558f2505ab960c569d05 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/NVStorage/NV_GlobalWriteLock.c
7b599ffb429ad0c3f2893a1435dc227ffbdf9450 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/NVStorage/NV_WriteLock.c
d5100f5da31705c1061b5c4fe009738a90d6991d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/NVStorage/NV_ReadLock.c
328ae9a3a794b68bb003885fe34eea037f074d2e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/NVStorage/NV_Certify.c
b16f3b8589cb0d5de3ede0e38c3df9566439dfc7 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/NVStorage/NV_SetBits.c
1195dda2bfef5b2f0ebf5d9dd0c1483e693feb73 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Ecdaa/Commit.c
83b2aab8bfa4d8152b836dc79e649d2f9df8b428 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Vendor/Vendor_TCG_Test.c
ba06c2bbc967f489c0ef81a52ffd5bc61d854b10 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Hierarchy/HierarchyControl.c
f3ad6beabba99f2d302804f9e4040e30edbd168d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Hierarchy/SetPrimaryPolicy.c
3c6a9b5585e15ed5d931d520b13f18d3cf7a6427 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Hierarchy/Clear.c
2c0105db6fabf84cd5e1264af61fbcf8ca44ee4e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Hierarchy/ChangePPS.c
3b58be2b254ce73d0a09c4f40181e757b5801583 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Hierarchy/CreatePrimary.c
7c066a0b22f5047720515190002981c2bb4f8559 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Hierarchy/ChangeEPS.c
e40fdd1540746ada2ef6193fcfef5264945f440c - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Hierarchy/HierarchyChangeAuth.c
fb72b54a400108f311ba215a95647b182ec390ab - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Hierarchy/ClearControl.c
0cd97f9c3068ce2beeec5cdbe59a35195b92f647 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Symmetric/HMAC.c
ed64e70b14016b3e27d91724d8fb78a86c84492c - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Symmetric/MAC.c
bbf716723d7949b6ad949afb4c82e74f200e8c24 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Symmetric/Hash.c
a30e4e882bab65b23bad83718f0df3a86be8b240 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Symmetric/EncryptDecrypt.c
c41a91e8a169399e5c3daf950f1903d22ec91757 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Symmetric/EncryptDecrypt_spt.c
40161da967ed914f228a3aab5100d896da33824d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Symmetric/EncryptDecrypt2.c
73735fc467c6d10ff8de1c9bd2fd6048cceabb71 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/Policy_spt.c
48b353b2ebd17849912faca615aa97d50d2141b8 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicyGetDigest.c
40cf33b0b774dae8c6ccb5d65405a7e54903e4c9 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicySigned.c
1e23cd2245b273f4e2d7c559727c9b160b0477e5 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicyLocality.c
8705b3a606961e1b05c0d5dd32765309a325ed52 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicyCounterTimer.c
932ed2d5107b414d84be1be9a2a851f4e4e8b347 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicySecret.c
a05c262c1e6127b2a49b9489b60850b35762bd26 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicyCommandCode.c
753243158f166cb485c6e7a3471c6b4b028c68d3 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicyNameHash.c
aab6431ac9d4fcce238593514a9cbadf4b9215ef - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicyOR.c
88c03c37cfbed2aff36dfbcf94b95177d54762fe - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicyPCR.c
588a8d77a584bacab70eb45e8653cc26182caa9b - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicyNvWritten.c
1bfef4dab67e4efb29fa68b09e96d2627fad2be6 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicyTemplate.c
d0a42a69ce9e7024add491c99d63f917623c341d - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicyAuthValue.c
866b4da196d99d410685d625146c5262614a1057 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicyTicket.c
dcaa8cea72af93d8c5f3d8a57089f1fd72ed3e74 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicyCpHash.c
7a3b44021510f326081fdbe1076c06ab481e2a97 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicyDuplicationSelect.c
68f8914ab2417a723a81d1d2b51282e8487cd768 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicyPassword.c
ffb4fc98afe39eaf79abbe1a21e1f9cb4f142d9a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicyPhysicalPresence.c
ded5971153e324b8b4f6aa95db951d09de1b2ecd - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicyAuthorizeNV.c
f961c5947f92e32233dc32e62249202b2cd07570 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicyAuthorize.c
19218fe30830606f6ec36f65abfa5e6dc61a2d12 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/EA/PolicyNV.c
5286c36046943f4d9666a1f20f762f249903529a - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/PCR/PCR_Event.c
b85eb5bb0cb8d3c1f3f066d6592d520c64a30028 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/PCR/PCR_Read.c
1723fd5edd58d258867ce07a1e6cb192a9134684 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/PCR/PCR_Reset.c
567fcf447739ce658f12b708c9e630adac2c02a1 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/PCR/PCR_SetAuthValue.c
85b8105ca22c96106141ea7ca062c4f3b55f288b - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/PCR/PCR_Allocate.c
2f0d5d80986eab6a2f480f5a119aa292574a5c43 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/PCR/PCR_SetAuthPolicy.c
1936c8a82923b6cf455ae9a32086f8b47e9fcec5 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/PCR/PCR_Extend.c
131c53ad4309da75d2d0c0fc48b42eb85ab892a5 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/HashHMAC/SequenceComplete.c
4998afedc6c5beb0fa299bee383dfe91fbc7de4b - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/HashHMAC/MAC_Start.c
1d73e64673af7532369bdea0b79d8b3b9c2809a2 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/HashHMAC/HMAC_Start.c
182701b3fd417d0a2f45bf6e0b05851de8424950 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/HashHMAC/SequenceUpdate.c
6a557c5edff08e22d2de7967bfb737a1a26634e6 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/HashHMAC/EventSequenceComplete.c
2c67c87e19679660cdb2f8d32954da97e14f8079 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/HashHMAC/HashSequenceStart.c
2be8b39f7a4a7cf50977aa0ac7b44554f06e29df - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Duplication/Import.c
bb1c1c731518c7698413695ba8d8e16627303ea2 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Duplication/Rewrap.c
93626622fb78f36fff350c70113da9af69da76fa - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Duplication/Duplicate.c
77c7e04182e899c143665ccc8d47f7ec8205b288 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Random/GetRandom.c
fbfe1dd32c3d5e790448ead7346654838dc3e482 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Random/StirRandom.c
1d02ad4911a3717f8c16a00147f895e042001df2 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Capability/TestParms.c
705d003f4eda4e14d5adc59e0dbd61083645812b - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Capability/GetCapability.c
e9fb4d674523f5fa0950178867220d9afdc21e6e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/FieldUpgrade/FirmwareRead.c
ac9421f2de85e45f1fdacc55df00ee912f582661 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/FieldUpgrade/FieldUpgradeStart.c
c5d528a495db164b7eeba279c3408a6e5864080b - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/FieldUpgrade/FieldUpgradeData.c
fcf83214d3f3c1296dc883a93dc91e189c82b88e - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Signature/VerifySignature.c
523dab0ff81bc5d2333604b81b8c655a72fb5957 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/Signature/Sign.c
dcc4083b045cf3765b91c539f299216534cd07b3 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/ClockTimer/ACT_SetTimeout.c
b85fab62d41638b1960347ab5db0f5c04cc40b48 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/ClockTimer/ReadClock.c
36dc3efeecfa5aa7c6ea85f3634adb5d15a3be00 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/ClockTimer/ClockSet.c
fdc898681b4fb8c7223334448233c6e83fa470a6 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/ClockTimer/ClockRateAdjust.c
578761745c2b6d96650e066060a08eeedafe6de7 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/command/ClockTimer/ACT_spt.c
a68f1d79f27d6415a6946a5cad9f997591b471bf - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/events/_TPM_Init.c
c4e81a39b2206a46fdfcb4d7bbf14ee4307489c1 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/events/_TPM_Hash_Data.c
d209bee5b5913f0b761575695c8511fe6722f515 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/events/_TPM_Hash_End.c
6a0f30c4781067b8428260fe466e5d6e8d808842 - optee/samples/ms-tpm-20-ref/TPMCmd/tpm/src/events/_TPM_Hash_Start.c
29c82ba9ec61627d639ba195206aae5986b6d713 - optee/samples/ms-tpm-20-ref/TPMCmd/Platform/platform.vcxproj
7aaa3dd88ec8382f37bf795db6b66041ec21d6b6 - optee/samples/ms-tpm-20-ref/TPMCmd/Platform/platform.vcxproj.filters
28d350e18f1aef2b1a498f6a3c4d6b6fc4801e16 - optee/samples/ms-tpm-20-ref/TPMCmd/Platform/include/PlatformClock.h
e6bb9513e4249c3ac0a989c5fd7bfb903d289620 - optee/samples/ms-tpm-20-ref/TPMCmd/Platform/include/Platform.h
96a84654a7f17be4142d2be731b34f75a98ed392 - optee/samples/ms-tpm-20-ref/TPMCmd/Platform/include/PlatformACT.h
6bb582b72adaf604087fb29ed50662e4022c3ccc - optee/samples/ms-tpm-20-ref/TPMCmd/Platform/include/PlatformData.h
3981e6d6dadaa8e8d24d15a406bf689b056f0417 - optee/samples/ms-tpm-20-ref/TPMCmd/Platform/include/prototypes/Platform_fp.h
d290d3667f6beb284f0939e9bb8de8e5f791ae65 - optee/samples/ms-tpm-20-ref/TPMCmd/Platform/src/PlatformData.c
48252f45915ed083a6bac0596f3f735e790030ff - optee/samples/ms-tpm-20-ref/TPMCmd/Platform/src/Unique.c
a0db60df8165e3f3d2b061e5d016e276436ac491 - optee/samples/ms-tpm-20-ref/TPMCmd/Platform/src/NVMem.c
840342229d7c6e58ac57152754601a3bc71ba600 - optee/samples/ms-tpm-20-ref/TPMCmd/Platform/src/Cancel.c
bb85408dbeab5098eb77aa2313d4b28c1d50c029 - optee/samples/ms-tpm-20-ref/TPMCmd/Platform/src/PowerPlat.c
f3feb56e3c38c94f33efddfc87b0a0c57195b8f5 - optee/samples/ms-tpm-20-ref/TPMCmd/Platform/src/PPPlat.c
2d34f6fdc0779ace9b29380650859eb2dc9beb3b - optee/samples/ms-tpm-20-ref/TPMCmd/Platform/src/Entropy.c
d0b4a5d97e521e77f766897886f80c684d758eab - optee/samples/ms-tpm-20-ref/TPMCmd/Platform/src/Clock.c
5dd2e2afbb7b708d9bc585d6c7a1263fe5e3e6cc - optee/samples/ms-tpm-20-ref/TPMCmd/Platform/src/RunCommand.c
913caab5748d7a733058680722290dd4cbaa18a6 - optee/samples/ms-tpm-20-ref/TPMCmd/Platform/src/LocalityPlat.c
8904b7172e9c95bf5ccca723413a69488c1eb920 - optee/samples/ms-tpm-20-ref/TPMCmd/Platform/src/DebugHelpers.c
8fa7666caa7a84f328f87f9a9dbebd3c9388c8a5 - optee/samples/ms-tpm-20-ref/TPMCmd/Platform/src/PlatformACT.c
2db3c7ae60b9a166c0d001451a16c623a1182ded - optee/samples/ms-tpm-20-ref/TPMCmd/Simulator/simulator.vcxproj
97dd5b29b67f302ad063523d539990c19123b90a - optee/samples/ms-tpm-20-ref/TPMCmd/Simulator/include/TpmTcpProtocol.h
b3c67c071ec064771e077773cb203d881499a063 - optee/samples/ms-tpm-20-ref/TPMCmd/Simulator/include/prototypes/Simulator_fp.h
adbc8328158bfbac3794e5bd132d5ea0304dbcd2 - optee/samples/ms-tpm-20-ref/TPMCmd/Simulator/src/tpmsim.service
ed0d9f117bda9b562ce47f09fa526466ea647130 - optee/samples/ms-tpm-20-ref/TPMCmd/Simulator/src/TPMCmds.c
d7bd32e37a53264b6ec8ebcf3b41f087652c4d3d - optee/samples/ms-tpm-20-ref/TPMCmd/Simulator/src/TPMCmdp.c
922b6cdcf8fe2c2afbea87d499eba8234873cbb8 - optee/samples/ms-tpm-20-ref/TPMCmd/Simulator/src/TcpServer.c
5a493d9124d00ded9800ae107ba167c72c9056ad - optee/samples/ftpm-helper/Makefile
4aeaf4a8d06a121aa56dc7250ac5ebadaf6f94d9 - optee/samples/ftpm-helper/README.md
96da5d9fe175e882abdd919aa1c4bd9a2def2f06 - optee/samples/ftpm-helper/LICENSE
5dbb2cb40501d442a50453c79e55f6fe7aa642c9 - optee/samples/ftpm-helper/host/Makefile
4ebeba0c52d359825b26ffad5fd456d1c43277d8 - optee/samples/ftpm-helper/host/ftpm_helper_ca.c
05ab08f5221f05e94520ed9495423d026bcd5460 - optee/samples/ftpm-helper/host/tool/odm_ekb_gen.py
44dd5efe74224613ae3361b5288d5f4fbbffb808 - optee/samples/ftpm-helper/host/tool/ftpm_manufacturer_ca_sign_sid_csr.sh
46d7267ff5f2e40f0cb402b89ccef57708c6ce05 - optee/samples/ftpm-helper/host/tool/ftpm_manufacturer_ca_sign_sid_csr.py
ffaf17771c52fb326d9298929500e7cad003d933 - optee/samples/ftpm-helper/host/tool/ftpm_manufacturer_gen_ek_csr.sh
e3f3060340f290f4b9ac80f0bfef98636605414c - optee/samples/ftpm-helper/host/tool/ftpm_offline_provisioning_verify.sh
6040c09f6e07731353cde2f79647f9b37019012c - optee/samples/ftpm-helper/host/tool/ftpm_manufacturer_ca_simulator.py
ddb11390ea289ff539c833fcd9849d0bf81106b2 - optee/samples/ftpm-helper/host/tool/ftpm_test_local_attestation.sh
58f17af47d0dd8ec7ec3e5a0a4cfcc10da119248 - optee/samples/ftpm-helper/host/tool/ftpm_manufacturer_gen_ek_csr_tool.py
17aa9eb1d7d6989dee35a50bb30d873f45ab053f - optee/samples/ftpm-helper/host/tool/kdk_gen.py
18d61e2198cfc4965ec932ad1751e98ea619bffe - optee/samples/ftpm-helper/host/tool/oem_ekb_gen.py
fe950095be80ba8e01f91fc8db3c98d64f2ce7b3 - optee/samples/ftpm-helper/host/tool/ftpm_device_provision.sh
cce78a2db51c264b884b2e53c7605556e4651318 - optee/samples/ftpm-helper/host/tool/ftpm_manufacturer_ca_simulator.sh
22dcd0ebfce77a7abdceaa85dadfbd5151814ef4 - optee/samples/ftpm-helper/host/tool/lib/silicon_id_csr.py
68063b7cdc77b6f03971c9b479950603d395e530 - optee/samples/ftpm-helper/host/tool/lib/ftpm_ek.py
2989d9817b1d1ee76139b1bf780f937af2721fe3 - optee/samples/ftpm-helper/host/tool/lib/aes_drbg.py
79c7dece1ab210876510b24cf9a18ec129a93693 - optee/samples/ftpm-helper/host/tool/lib/ftpm_ek_csr.py
2b3f0a1315886edf3fe2969e88e4f709914c2ea1 - optee/samples/ftpm-helper/host/tool/conf/ftpm_i_ca_sim.config
ab33fbbfb23ed4c0687e915bd88cc7b568b319d1 - optee/samples/ftpm-helper/host/tool/conf/ftpm_root_ca_sim.config
174230a84516fd6fc4c6dfa553bfba136df35489 - optee/samples/ftpm-helper/ta/Makefile
6442bb99b6d3029526133a362a0838012c051149 - optee/samples/ftpm-helper/ta/user_ta_header_defines.h
a521701086a719a903d80697a572009e501ffb6b - optee/samples/ftpm-helper/ta/ftpm_helper_ta.c
680c8e7491b86f42fa79551446d38294fae5bd5e - optee/samples/ftpm-helper/ta/include/ftpm_helper_ta.h
9eebaea6c013cd863161f00430bf4b6a154813a6 - optee/samples/pkcs11-sample/Makefile
fc4fb84dcbf00b04fcc91f516aedd701350aed89 - optee/samples/pkcs11-sample/LICENSE
a7f13b06bf4c5eb0669cf42f2632c2b235262393 - optee/samples/pkcs11-sample/host/Makefile
b7cb007727b4c2e482d77fcb1a3c7834caf80fbd - optee/samples/pkcs11-sample/host/pkcs11_sample_ca.c
22d6ec718c65f0f1fab50d6a32d64857f975eb83 - optee/samples/hwkey-agent/Makefile
d641b8218d5f3af3869eb24210d632d9accc789e - optee/samples/hwkey-agent/README
b2def2faca96323618fae5d302c50260bccb869e - optee/samples/hwkey-agent/LICENSE
d8d2851c68cdbcc9138bf2542d445f73ab2ebe44 - optee/samples/hwkey-agent/host/Makefile
59f6594fdd5e77aaf03788a08a39999ffd8b86e5 - optee/samples/hwkey-agent/host/hwkey_agent_ca.c
52056059ceb33df8556122c574b98bbaf33f9599 - optee/samples/hwkey-agent/host/tool/gen_ekb/gen_ekb.py
db9d139cadc808f2be7926b333651ef7b0cb09f8 - optee/samples/hwkey-agent/host/tool/gen_ekb/README
31660a5c7c817d388aa60d8e7425a54d0faa3241 - optee/samples/hwkey-agent/host/tool/gen_ekb/example.sh
5054796c29272096d67dbf4fa7453f9bfa3ad280 - optee/samples/hwkey-agent/ta/Makefile
01a5ebf5ecbf58a06002ad10b902e18d78d452d8 - optee/samples/hwkey-agent/ta/user_ta_header_defines.h
52fd37078d752fb17a039afd148a99a6f90c57b7 - optee/samples/hwkey-agent/ta/hwkey_agent_ta.c
f1652fd24c49bf7be742b2e2081280bcd33d2ddd - optee/samples/hwkey-agent/ta/include/hwkey_agent_ta.h

Change-Id: Ic063e0379bc5bc9c64058cdafec96a5c53ee6679
This commit is contained in:
svcmobrel-release
2025-01-21 05:24:57 -08:00
parent f3141b8674
commit 84c0c96776
4211 changed files with 1146162 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
<!--
General guidance when creating issues:
1. Please try to remember to close the issue when you have
got an answer to your question.
2. It never hurts to state which commit or release tag you are using in case
the question is about build issues.
3. Try to use GitHub markdown formatting to make your issue more readable:
https://help.github.com/articles/basic-writing-and-formatting-syntax/#quoting-code
4. Try to search for the issue before posting the question:
-> Issues tab -> Filters
5. Check the FAQ before posting a question:
https://optee.readthedocs.io/faq/faq.html
NOTE: This comment will not be shown in the issue, so no harm keeping it,
but feel free to remove it if you like.
-->

View File

@@ -0,0 +1,19 @@
<!--
If you are new to submitting pull requests to OP-TEE, then please have a
look at the list below and tick them off before submitting the pull request.
1. Read our contribution guidelines:
https://optee.readthedocs.io/general/contribute.html
2. Read the contribution section in Notice.md and pay extra attention to the
"Developer Certificate of Origin" in the contribution guidelines.
3. You should run checkpatch preferably before submitting the pull request.
4. When everything has been reviewed, you will need to squash, rebase and
add tags like `Reviewed-by`, `Acked-by`, `Tested-by` etc. More details
about this can also be found on the link provided above.
NOTE: This comment will not be shown in the pull request, so no harm keeping
it, but feel free to remove it if you like.
-->

View File

@@ -0,0 +1,36 @@
name: CI
on: [push, pull_request]
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
QEMUv8_check:
name: make check (QEMUv8)
runs-on: ubuntu-latest
container: jforissier/optee_os_ci:qemuv8_check2
steps:
- name: Remove /__t/*
run: rm -rf /__t/*
- name: Restore build cache
uses: actions/cache@v3
with:
path: /github/home/.cache/ccache
key: qemuv8_check-cache-${{ github.sha }}
restore-keys: |
qemuv8_check-cache-
- name: Checkout
uses: actions/checkout@v3
- shell: bash
run: |
# make check task
set -e -v
export LC_ALL=C
export BR2_CCACHE_DIR=/github/home/.cache/ccache
WD=$(pwd)
cd ..
TOP=$(pwd)/optee_repo_qemu_v8
/root/get_optee_qemuv8.sh ${TOP}
mv ${TOP}/optee_test ${TOP}/optee_test_old
ln -s ${WD} ${TOP}/optee_test
cd ${TOP}/build
make -j$(nproc) check

View File

@@ -0,0 +1,28 @@
name: 'Close stale issues and pull requests with no recent activity'
on:
schedule:
- cron: "16 00 * * *"
permissions:
issues: write
pull-requests: write
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v4.1.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-message: 'This issue has been marked as a stale issue because it has been open (more than) 30 days with no activity. Remove the stale label or add a comment, otherwise this issue will automatically be closed in 5 days. Note that you can always re-open a closed issue at any time.'
stale-pr-message: 'This pull request has been marked as a stale pull request because it has been open (more than) 30 days with no activity. Remove the stale label or add a comment, otherwise this pull request will automatically be closed in 5 days. Note that you can always re-open a closed pull request at any time.'
stale-issue-label: Stale
stale-pr-label: Stale
exempt-issue-labels: bug,enhancement
exempt-pr-labels: bug,enhancement
days-before-stale: 30
days-before-close: 5
remove-stale-when-updated: true
remove-issue-stale-when-updated: true
remove-pr-stale-when-updated: true

173
optee/optee_test/Android.mk Normal file
View File

@@ -0,0 +1,173 @@
LOCAL_PATH := $(call my-dir)
## include variants like TA_DEV_KIT_DIR
## and OPTEE_BIN
INCLUDE_FOR_BUILD_TA := false
include $(BUILD_OPTEE_MK)
INCLUDE_FOR_BUILD_TA :=
VERSION = $(shell git describe --always --dirty=-dev 2>/dev/null || echo Unknown)
# TA_DEV_KIT_DIR must be set to non-empty value to
# avoid the Android build scripts complaining about
# includes pointing outside the Android source tree.
# This var is expected to be set when OPTEE OS built.
# We set the default value to an invalid path.
TA_DEV_KIT_DIR ?= ../invalid_include_path
-include $(TA_DEV_KIT_DIR)/host_include/conf.mk
include $(LOCAL_PATH)/scripts/common.mk
################################################################################
# Build xtest #
################################################################################
include $(CLEAR_VARS)
LOCAL_MODULE := xtest
LOCAL_VENDOR_MODULE := true
LOCAL_SHARED_LIBRARIES := libteec
TA_DIR ?= /vendor/lib/optee_armtz
srcs := regression_1000.c
ifeq ($(CFG_GP_SOCKETS),y)
srcs += regression_2000.c \
sock_server.c \
rand_stream.c
endif
srcs += adbg/src/adbg_case.c \
adbg/src/adbg_enum.c \
adbg/src/adbg_expect.c \
adbg/src/adbg_log.c \
adbg/src/adbg_run.c \
adbg/src/security_utils_hex.c \
asym_perf.c \
benchmark_1000.c \
benchmark_2000.c \
clear_storage.c \
regression_4000.c \
regression_4100.c \
regression_5000.c \
regression_6000.c \
regression_8000.c \
regression_8100.c \
hash_perf.c \
stats.c \
symm_cipher_perf.c \
xtest_helpers.c \
xtest_main.c \
xtest_test.c \
xtest_uuid_helpers.c
ifeq ($(CFG_SECURE_PARTITION)-$(CFG_SPMC_TESTS),y-y)
srcs += ffa_spmc_1000.c
endif
ifeq ($(CFG_SECSTOR_TA_MGMT_PTA),y)
srcs += install_ta.c
endif
ifeq ($(CFG_SECURE_DATA_PATH),y)
srcs += sdp_basic.c
endif
ifeq ($(CFG_PKCS11_TA),y)
srcs += pkcs11_1000.c
LOCAL_CFLAGS += -DCFG_PKCS11_TA
LOCAL_SHARED_LIBRARIES += libckteec
endif
define my-embed-file
$(TARGET_OUT_HEADERS)/$(1).h: $(LOCAL_PATH)/$(2)
@echo ' GEN $$@'
@$(PYTHON3) $(LOCAL_PATH)/scripts/file_to_c.py --inf $$< --out $$@ --name $(1)
LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_HEADERS)/$(1).h
endef
$(eval $(call my-embed-file,regression_8100_ca_crt,cert/ca.crt))
$(eval $(call my-embed-file,regression_8100_mid_crt,cert/mid.crt))
$(eval $(call my-embed-file,regression_8100_my_crt,cert/my.crt))
$(eval $(call my-embed-file,regression_8100_my_csr,cert/my.csr))
LOCAL_SRC_FILES := $(patsubst %,host/xtest/%,$(srcs))
LOCAL_C_INCLUDES += $(LOCAL_PATH)/host/xtest \
$(LOCAL_PATH)/host/xtest/adbg/include \
$(LOCAL_PATH)/ta/include \
$(LOCAL_PATH)/ta/supp_plugin/include \
$(LOCAL_PATH)/ta/create_fail_test/include \
$(LOCAL_PATH)/ta/crypt/include \
$(LOCAL_PATH)/ta/enc_fs/include \
$(LOCAL_PATH)/ta/os_test/include \
$(LOCAL_PATH)/ta/rpc_test/include \
$(LOCAL_PATH)/ta/sims/include \
$(LOCAL_PATH)/ta/miss/include \
$(LOCAL_PATH)/ta/sims_keepalive/include \
$(LOCAL_PATH)/ta/storage_benchmark/include \
$(LOCAL_PATH)/ta/concurrent/include \
$(LOCAL_PATH)/ta/concurrent_large/include \
$(LOCAL_PATH)/ta/crypto_perf/include \
$(LOCAL_PATH)/ta/socket/include \
$(LOCAL_PATH)/ta/sdp_basic/include \
$(LOCAL_PATH)/ta/tpm_log_test/include \
$(LOCAL_PATH)/ta/large/include \
$(LOCAL_PATH)/ta/bti_test/include \
$(LOCAL_PATH)/ta/subkey1/include \
$(LOCAL_PATH)/ta/subkey2/include \
$(LOCAL_PATH)/host/supp_plugin/include
# Include configuration file generated by OP-TEE OS (CFG_* macros)
LOCAL_CFLAGS += -I $(TA_DEV_KIT_DIR)/host_include -include conf.h
LOCAL_CFLAGS += -pthread
LOCAL_CFLAGS += -g3
LOCAL_CFLAGS += -Wno-missing-field-initializers -Wno-format-zero-length
ifneq ($(TA_DIR),)
LOCAL_CFLAGS += -DTA_DIR=\"$(TA_DIR)\"
endif
## $(OPTEE_BIN) is the path of tee.bin like
## out/target/product/hikey/optee/arm-plat-hikey/core/tee.bin
## it will be generated after build the optee_os with target BUILD_OPTEE_OS
## which is defined in the common ta build mk file included before,
LOCAL_ADDITIONAL_DEPENDENCIES += $(OPTEE_BIN)
include $(BUILD_EXECUTABLE)
################################################################################
# Build tee-supplicant test plugin #
################################################################################
include $(CLEAR_VARS)
PLUGIN_UUID = f07bfc66-958c-4a15-99c0-260e4e7375dd
PLUGIN = $(PLUGIN_UUID).plugin
PLUGIN_INCLUDES_DIR = $(LOCAL_PATH)/host/supp_plugin/include
LOCAL_MODULE := $(PLUGIN)
LOCAL_MODULE_RELATIVE_PATH := tee-supplicant/plugins
LOCAL_VENDOR_MODULE := true
# below is needed to locate optee_client exported headers
LOCAL_SHARED_LIBRARIES := libteec
LOCAL_SRC_FILES += host/supp_plugin/test_supp_plugin.c
LOCAL_C_INCLUDES += $(PLUGIN_INCLUDES_DIR)
LOCAL_CFLAGS += -Wno-unused-parameter
$(info $$LOCAL_SRC_FILES = ${LOCAL_SRC_FILES})
LOCAL_MODULE_TAGS := optional
# Build the 32-bit and 64-bit versions.
LOCAL_MULTILIB := both
LOCAL_MODULE_TARGET_ARCH := arm arm64
include $(BUILD_SHARED_LIBRARY)
################################################################################
# Build TAs #
################################################################################
include $(LOCAL_PATH)/ta/Android.mk

View File

@@ -0,0 +1,34 @@
cmake_minimum_required (VERSION 3.4)
project (optee_test C)
# Default cross compile settings
set (CMAKE_TOOLCHAIN_FILE CMakeToolchain.txt)
set (OPTEE_TEST_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR})
################################################################################
# Compiler flags:
# We want to use the same flags in the entire optee_client git
################################################################################
add_compile_options (
-Wall -Wbad-function-cast -Wcast-align
-Werror-implicit-function-declaration -Wextra
-Wfloat-equal -Wformat-nonliteral -Wformat-security
-Wformat=2 -Winit-self -Wmissing-declarations
-Wmissing-format-attribute -Wmissing-include-dirs
-Wmissing-prototypes -Wnested-externs
-Wpointer-arith -Wshadow -Wstrict-prototypes
-Wswitch-default -Wunsafe-loop-optimizations
-Wwrite-strings -Werror -fPIC
-Wno-missing-field-initializers
-Wno-unused-parameter
)
find_program(CCACHE_FOUND ccache)
if(CCACHE_FOUND)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
endif(CCACHE_FOUND)
add_subdirectory (ta)
add_subdirectory (host/xtest)
add_subdirectory (host/supp_plugin)

View File

@@ -0,0 +1,3 @@
set (CMAKE_SYSTEM_NAME Linux)
set (CMAKE_SYSTEM_PROCESSOR arm)

View File

@@ -0,0 +1,5 @@
The client applications (`optee_test/host/*`) are provided under the
[GPL-2.0](http://opensource.org/licenses/GPL-2.0) license.
The user TAs (`optee_test/ta/*`) are provided under the
[BSD 2-Clause](http://opensource.org/licenses/BSD-2-Clause) license.

95
optee/optee_test/Makefile Normal file
View File

@@ -0,0 +1,95 @@
ifeq ($O,)
out-dir := $(CURDIR)/out
else
include scripts/common.mk
out-dir := $(call strip-trailing-slashes-and-dots,$(O))
ifeq ($(out-dir),)
$(error invalid output directory (O=$(O)))
endif
endif
bindir ?= /bin
libdir ?= /lib
-include $(TA_DEV_KIT_DIR)/host_include/conf.mk
-include $(OPTEE_CLIENT_EXPORT)/include/optee_client_config.mk
ifneq ($V,1)
q := @
echo := @echo
else
q :=
echo := @:
endif
# export 'q', used by sub-makefiles.
export q
# If _HOST or _TA specific compilers are not specified, then use CROSS_COMPILE
CROSS_COMPILE_HOST ?= $(CROSS_COMPILE)
CROSS_COMPILE_TA ?= $(CROSS_COMPILE)
.PHONY: all
ifneq ($(wildcard $(TA_DEV_KIT_DIR)/host_include/conf.mk),)
all: xtest ta test_plugin
else
all:
$(q)echo "TA_DEV_KIT_DIR is not correctly defined" && false
endif
.PHONY: xtest
xtest:
$(q)$(MAKE) -C host/xtest CROSS_COMPILE="$(CROSS_COMPILE_HOST)" \
--no-builtin-variables \
O=$(out-dir) \
$@
.PHONY: ta
ta:
$(q)$(MAKE) -C ta CROSS_COMPILE="$(CROSS_COMPILE_TA)" \
O=$(out-dir) \
$@
.PHONY: test_plugin
test_plugin:
$(q)$(MAKE) -C host/supp_plugin CROSS_COMPILE="$(CROSS_COMPILE_HOST)" \
--no-builtin-variables \
O=$(out-dir)
.PHONY: clean
ifneq ($(wildcard $(TA_DEV_KIT_DIR)/host_include/conf.mk),)
clean:
$(q)$(MAKE) -C host/xtest O=$(out-dir) $@
$(q)$(MAKE) -C ta O=$(out-dir) $@
$(q)$(MAKE) -C host/supp_plugin O=$(out-dir) $@
else
clean:
$(q)echo "TA_DEV_KIT_DIR is not correctly defined"
$(q)echo "You can remove manually $(out-dir)"
endif
.PHONY: checkpatch checkpatch-staging checkpatch-working
checkpatch: checkpatch-staging checkpatch-working
checkpatch-working:
@./scripts/checkpatch.sh
checkpatch-staging:
@./scripts/checkpatch.sh --cached
install:
$(echo) ' INSTALL ${DESTDIR}${libdir}/optee_armtz'
$(q)mkdir -p ${DESTDIR}${libdir}/optee_armtz
$(q)find $(out-dir) -name \*.ta -exec cp {} ${DESTDIR}${libdir}/optee_armtz \;
$(echo) ' INSTALL ${DESTDIR}${bindir}'
$(q)mkdir -p ${DESTDIR}${bindir}
$(q)cp $(out-dir)/xtest/xtest ${DESTDIR}${bindir}
$(echo) ' INSTALL ${DESTDIR}/$(CFG_TEE_PLUGIN_LOAD_PATH)'
$(q)mkdir -p ${DESTDIR}/$(CFG_TEE_PLUGIN_LOAD_PATH)
$(q)cp $(out-dir)/supp_plugin/*.plugin ${DESTDIR}/$(CFG_TEE_PLUGIN_LOAD_PATH)
.PHONY: cscope
cscope:
$(echo) ' CSCOPE .'
${q}rm -f cscope.*
${q}find $(PWD) -name "*.[ch]" -o -name "*.cpp" | grep -v /package/ > cscope.files
${q}cscope -b -q -k

View File

@@ -0,0 +1,10 @@
# OP-TEE sanity testsuite
This git contains source code for the test suite (xtest) used to test the
OP-TEE project.
All official OP-TEE documentation has moved to http://optee.readthedocs.io. The
information that used to be here in this git can be found under [optee_test].
// OP-TEE core maintainers
[optee_test]: https://optee.readthedocs.io/en/latest/building/gits/optee_test.html

View File

@@ -0,0 +1,20 @@
This is a Test Ceritificate Authority, only to be used for testing.
#Root private key
openssl genrsa -out ca.key 2048
#Root certificate
openssl req -new -x509 -key ca.key -out ca.crt -days 10000 -batch
#Mid CSR and key
openssl req -new -out mid.csr -config mid.conf
#Sign mid.crt
openssl x509 -req -in mid.csr -extfile mid.ext -CA ca.crt -CAkey ca.key -CAcreateserial -out mid.crt -days 10000
#My CSR and key
openssl req -new -out my.csr -config my.conf
# View it with: openssl req -in my.csr -noout -text
#Sign my.crt
openssl x509 -req -in my.csr -CA mid.crt -CAkey mid.key -CAcreateserial -out my.crt -days 10000

View File

@@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJAL1dyL/W0KDOMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
aWRnaXRzIFB0eSBMdGQwHhcNMTgwNDI2MDk0NjEwWhcNNDUwOTExMDk0NjEwWjBF
MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50
ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAlqY3pRejG//K79bY3v4sqSdHU2q1ir8mVBZDiZu5l+qGqmaxvgpSsKVL
5kxrXUcpL8oeMjsEkt8YxxL7w/XGA65/UPJe9Jn5/0fPQ7HD+S33/8oEO+hOa1pi
speqY2YWvdSsX/wuDaz6r9PXkrjftz9+cY/J9HGGXhmrez2tDKjiUyx7vwqirln1
WcEiizucca2sgivm7032U6Tkmchk5YlU0Zd0kugV417zGCEY8H393ASV0oFyKbAR
A18m7iTSSMUnjWcLdp5UT6RM1O11xXHxPxT3hTMwBnq6W56feWO7BfVoYhNk8S8V
QRPq2T6PlEUDRs0UIhaKYCmYwLEv5QIDAQABo1AwTjAdBgNVHQ4EFgQUud0GJjG0
tEs58qZXUQv33SJuSmswHwYDVR0jBBgwFoAUud0GJjG0tEs58qZXUQv33SJuSmsw
DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAQ6r7zfKQIKIwyl3i/KTM
APxRoqsJqnBfuBuE4VwFaRTSoqe14hw6HXxcRuKexiaDuSniTirAxdMKYGZgfXyH
lClntTJ4+ak33CGOniU0HFZd79Hct0/DDrzQ/yEr4zvCv6wbQ8EjHOycFT14/Edv
sgVmf4erjnSN/ntC0R0VpDmy4eRuvNk0y3lvXwm9kW6RQftvIJsckJFvxrUvdIoP
KWK/og407DXX7xb2JqF6Eb8IvA2xAFZxOcztFTweRKHxk9vXRIVIe7/JufLtw0bx
+VCurEZ9FjNiIde1LdU3dpFBuAAlqiLbbSc2TVjBAYn9LFQGbsCoZ7PXDWBJnS9c
9g==
-----END CERTIFICATE-----

View File

@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAlqY3pRejG//K79bY3v4sqSdHU2q1ir8mVBZDiZu5l+qGqmax
vgpSsKVL5kxrXUcpL8oeMjsEkt8YxxL7w/XGA65/UPJe9Jn5/0fPQ7HD+S33/8oE
O+hOa1pispeqY2YWvdSsX/wuDaz6r9PXkrjftz9+cY/J9HGGXhmrez2tDKjiUyx7
vwqirln1WcEiizucca2sgivm7032U6Tkmchk5YlU0Zd0kugV417zGCEY8H393ASV
0oFyKbARA18m7iTSSMUnjWcLdp5UT6RM1O11xXHxPxT3hTMwBnq6W56feWO7BfVo
YhNk8S8VQRPq2T6PlEUDRs0UIhaKYCmYwLEv5QIDAQABAoIBADMnshF/W0WwsEqM
3Ausp6Gw0smCnK7Ghc9b2AcsN/NcEepfANAVVUridkl3faWo+lVd/q7z13PACfvf
eFpsZJbvdBAanR/WAUwsKDdGb9N3RpU3FgT5t1dA0+7tDVC/Y82GIBpf2YuPR3jZ
KISL/nuNNfR97QfyXLwrX01z/gUj9n95ish54jfsaD/JWN8xrDRgEQABlyEF+hBA
y9gZgIB4FrF5Lvqy0xejVhHBGjSJH3Owq9QbScWeOiEyYkq0TYqHCDCMD0lnwIbg
4YkOzYhAOa60UAqQB4Pk+4WN9wlWMMW2elfPwNN6+bdRwTtB4cjSBvGjnUwzMl7I
SNuF1+kCgYEAyKh2KeTDyoKgB4YOiRKj1nIMqjLsRM5pLwJDxI/ig+qE9Q+xYvXz
VZkMJKGX+TxFC2aFq5JMKHML/uKp8PnNpvD1YcNYn2ldN4OBW83SR5OUDtY+Z5D1
YiKHZKIWwm7CCn6t4QzEO77TxZ/eWZpMW5+t4Dl6uGgLrt6heJIzShMCgYEAwDLe
JF4NwXzvJHdxnq/82bzzhQj6ZFMJUwmQeP8vJkc7mclO8/VUHjMyRx9q0u73oU23
DtK6P1OqFBztxKHIwKZIQKbr77RdsCaPqxY9ry74ezwojRFvxlhQkPwegdOPviZW
C6TMMno1y7QgjjhmNzzEDKuDGX3N2+ucJWIoXScCgYBRfdk/emDpxdMoOxF8Kc3Q
MdFi7ft2lj2xkcHj+muMF5qXzB/GiQyiHt4HonkOB6Qi1ShEXc4AP3kHsxZBf7I9
sm51ndhIJYpuGUJX/mcAGrduryP4+64shMln3UxQ+ppjmL8VPxITEZUAFcU/rqKE
M31yKuXkLp1QD6qURQv/cQKBgGeBfXycYlAXVjqPUNMi98rTJVo50Y8B4P2lIvbm
hp/YsNJLRYfAUQLKk4MV+lOKejWWQsVq2v6LsgaO5cWFUzXc1wBqZJl8yw+4VJrQ
qXuUkiDb7wK5pzZsDUdnX46PPtQqlSBEKevtQNdpNDcjTHjm8rXYEAxEYf7Tzg2b
5Rz1AoGAOe1uQ83F/vDik+6Pl/U14HaqVoMvtfgxKtvWxOjyVLMIyutqayLXSxxk
tvwtzfqD218g3OGVdneVTGVHFPMQNgaqFuFUpk0SVNh1xVu1LTbU3QMO/rZjrxMM
Y2Qyft5Z0HQtEHpsl1GUGYU4YDHTBxwk3gTqMJXEFD6KZCW/rDk=
-----END RSA PRIVATE KEY-----

View File

@@ -0,0 +1 @@
B7C435A31BDC8BEF

View File

@@ -0,0 +1,14 @@
[ req ]
default_bits = 2048
default_keyfile = mid.key
encrypt_key = no
prompt = no
distinguished_name = my_req_distinguished_name
req_extensions = my_extensions
[ my_req_distinguished_name ]
C = AU
ST = Some-State
O = Be Bop - Originalaskkopp
[ my_extensions ]
basicConstraints = CA:TRUE
subjectKeyIdentifier = hash

View File

@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDIDCCAgigAwIBAgIJALfENaMb3IvvMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
aWRnaXRzIFB0eSBMdGQwHhcNMTgwNDI2MTUyNTU2WhcNNDUwOTExMTUyNTU2WjBF
MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYQmUg
Qm9wIC0gT3JpZ2luYWxhc2trb3BwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEA3ZRPpDGU2iZuvv2v6KECPvP0F5y3g6EH+F/uqdYHS9tyCBPzW3hOIQPg
azYFO7JYqglaMxoiTaFrjPVpT72gAi+HGkiuh7hPZFVjx10LoVwJ8CwR78WXXQiZ
9rz9glnZycORHGgKoHun4yEDchtO1H1N6zdZWHEE6O4fFOq6mtgNCQzwxHpQERv+
QCyzWnBEWFRJXGQx7wTGvoKwyCvsrREMxYvw8+LnJ5zM7MX8LAVeQ+9U3w17OjRa
QC69dAQ85cu+kv9z6ubN5NG298qT5mwkcSZzoZb6mfx3cJj1ubnQk2DvLSynG6sD
gevoK7hsKuvwMK6WxTCrzHzkMmA7OwIDAQABoxMwETAPBgNVHRMECDAGAQH/AgEB
MA0GCSqGSIb3DQEBCwUAA4IBAQAWMx659Yh7GQQZ4blR0YMr3JYtSRHu9bY2EfRr
sX9NvXXRBBsrtlUoWJhDwJIsTlLVQDRDdTQxWjNGgnHfR0UMgym2h/mOsNVuqxU+
6D8q5KiCSxemEwx/6DVjbCwt8vgh7Ygr1Nzbl7c9qVbm0WBTFW6hjeF5ceQo7+2+
VbSQV0Iql/m4fWoPBYhjU+Z47xnRQ1PtS/ohaV/9TD2uRJC+IW1zU25rj1w1whdY
SeMZRODod0KmIEfnpVN24eofJNhD1GyG+sWYyT6xBx29ZBIQT3g25uekVbTv0UmJ
RBk/5shpQVDWKNxZRhOdZOEu1M7Za94lp61yPIdbWXIQp0DG
-----END CERTIFICATE-----

View File

@@ -0,0 +1,17 @@
-----BEGIN CERTIFICATE REQUEST-----
MIICyDCCAbACAQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUx
ITAfBgNVBAoMGEJlIEJvcCAtIE9yaWdpbmFsYXNra29wcDCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAN2UT6QxlNombr79r+ihAj7z9Bect4OhB/hf7qnW
B0vbcggT81t4TiED4Gs2BTuyWKoJWjMaIk2ha4z1aU+9oAIvhxpIroe4T2RVY8dd
C6FcCfAsEe/Fl10Imfa8/YJZ2cnDkRxoCqB7p+MhA3IbTtR9Tes3WVhxBOjuHxTq
uprYDQkM8MR6UBEb/kAss1pwRFhUSVxkMe8Exr6CsMgr7K0RDMWL8PPi5yeczOzF
/CwFXkPvVN8Nezo0WkAuvXQEPOXLvpL/c+rmzeTRtvfKk+ZsJHEmc6GW+pn8d3CY
9bm50JNg7y0spxurA4Hr6Cu4bCrr8DCulsUwq8x85DJgOzsCAwEAAaA+MDwGCSqG
SIb3DQEJDjEvMC0wDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUV/lNw8OrCMD7qd39
f/248O6+80wwDQYJKoZIhvcNAQELBQADggEBAMn9sUKGKz7CdZPKeLdiUm60mIs4
IIwjdLYrlRGzRh06B9WRIIFYHNPGDaK5KUMdyMYeqoSHYi6MlHE/d9VxGms4YNGz
gpGEN3MmaOqObSJEy+MSf1yjp1ydfGTDjGxzBaSca442+mXblp+fIoUHmfiIHdD8
skR0fhdN5BkLU55XdbFAIuVTdTpIg0W1ItoIQ2HM62C1ktDprdqsdnzZysw/JkLb
EMqmu8zft9yK7rfJZzdrIjVx3ogF1SvKtzqm5+o/a9eDTgTmySysf/GzZ1muZ3af
JBwgAibknLxkZVP1S3rlgN9CTyu46O4BSU/WxLeItgqyKpM1KtoV95hCEOA=
-----END CERTIFICATE REQUEST-----

View File

@@ -0,0 +1 @@
basicConstraints=CA:TRUE,pathlen:1

View File

@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDdlE+kMZTaJm6+
/a/ooQI+8/QXnLeDoQf4X+6p1gdL23IIE/NbeE4hA+BrNgU7sliqCVozGiJNoWuM
9WlPvaACL4caSK6HuE9kVWPHXQuhXAnwLBHvxZddCJn2vP2CWdnJw5EcaAqge6fj
IQNyG07UfU3rN1lYcQTo7h8U6rqa2A0JDPDEelARG/5ALLNacERYVElcZDHvBMa+
grDIK+ytEQzFi/Dz4ucnnMzsxfwsBV5D71TfDXs6NFpALr10BDzly76S/3Pq5s3k
0bb3ypPmbCRxJnOhlvqZ/HdwmPW5udCTYO8tLKcbqwOB6+gruGwq6/AwrpbFMKvM
fOQyYDs7AgMBAAECggEAMGN7IPhS8XEDLmJoT/0ZaHYOEDoBOZWpD+yjSiObZE2A
EZOJyaf0J/GYyND7Q5YnFrsEH7TNWPavbhEJ9ogKsW9/qZXFx43QiLC9IYSITayz
3udA44PbEk4WkXOkSRsmHJHA1ttBttpKR6emAP1FsdHLelqUAGRuFhAqaX75UWcF
KQ0aK+KBPkr3CGTZXQH/4Bt7KWL0iFfch8f4CAzLu2T20fWPyHW8zSFYVIq7972P
PXcs4tijXpTCazcjzEWZlhXvihOy+Ho7Dbg1DdnkeTYZyAf8ELkGfYJ9WCGiZTcw
5SgkLSpuyVUeoZ2xNN0F6m5y/SvEPVw711EAhRZogQKBgQDxbF+7ie1QDL0WIPYG
Ce0a5ajjgWsVMS9aXH12D4BiSfhaAhP5dr0oN23dmcGhAL9dEmXDGIgr13WXn8M7
sXZrJhMUMCfD3h+tfWeYi62xvmVR+QnSh5/YicNOWnfCAa1hz/exlpJGQ5xF/Rn6
r39eSlsuZ1ibXSlll5RcSftcKQKBgQDq9TaF6ufGVbesrT06X+gZ0A03sO+0ghVx
im+yWZFJRlJTn522ju+Pqj4BZGuFDVbD5N2rEULx9SF6pkJQC119r2q4aMtvJwO8
hfqYzgKDFaoKvVbL3+uOae1pSjwzvVCUmy6wr6t6rVhK68W2xs7TpYgTACoGsNst
0RVStcHIwwKBgCCSaJAa2cO1FEXKCKdj63N3jMO1EEd5rVPZqqulB8M7C6DJKvy7
QmYMpGwDdJZOTYM3GjeqNaUEmr7sNSD2nm1yY5yTqqnIbCmyA6oXHkYe0/itSt/2
oGBMpecKWaH5K/VIY7i4AeAs+waOUVT7HIoSKh8mnlPHy/AC9WdGK/2RAoGAe+4r
fCeTaUH9R8945DmCK1taHW3ugb+7n8/tap1jzMqS0hj3DzwFkDmzyvg03lFS2rD1
Wy4XqZgquI7Jm37jKVBFck+UPmTNy7q/m6nOGWZr8o48If1SOiQVXdwSNRg+UKQp
1HhUcrjMQXhrKSVkIq7FP4BuqmjOszP9k0rblBECgYBxaoIrBQpTrbSjB5s7SI7e
5h/n6pk+MSXXPvGtWHxab+yYZYh8iIA22rtMCIU8kuld5s81cXofKPQgzqPJBmS5
nLLx6P5PbgwCJI+QZnXmh79l/xqePnvslzr2sG6PTjKI5v5BuvRrqrS1fqTl00uf
hZ3KOU3lh3TgsgdcYkERCw==
-----END PRIVATE KEY-----

View File

@@ -0,0 +1 @@
F16A44AAA2D04980

View File

@@ -0,0 +1,13 @@
[ req ]
default_bits = 2048
default_keyfile = my.key
encrypt_key = no
prompt = no
distinguished_name = my_req_distinguished_name
req_extensions = my_extensions
[ my_req_distinguished_name ]
C = AU
ST = Some-State
O = Testing testers
[ my_extensions ]
basicConstraints=CA:FALSE

View File

@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIC/TCCAeUCCQDxakSqotBJgDANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJB
VTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYQmUgQm9wIC0gT3JpZ2lu
YWxhc2trb3BwMB4XDTE4MDQyNjE1MjYwOVoXDTQ1MDkxMTE1MjYwOVowPDELMAkG
A1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxGDAWBgNVBAoMD1Rlc3Rpbmcg
dGVzdGVyczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOeglExQo4UC
OjWo5B4hNdW4a5eClziHPku5xMFaKWtCwI/zURjk3Di2jcUP7T60Gc9E+yHkaV+E
/O33s5qaNNrG055WhidJl4/Rvs4EF7ka3W44m0J0EACxgfWa11UWD5o+942V1Plc
Iwj1k+owkuiZfpSFxVjTB8ZE6U9qB+9rX+/ET7wTBOVbLHNfzw954ymENUPKUFwh
eUSntso+WbOWQJxElfElAh5z55WjdiwPSaV2q2lnW1Pa3yin2cbl3PvKIAkAhegB
IHTU05DfJiIRNsetCoVygNNZZMk7SG53hwFmKJg9+l3uxa7syeDVmOi+sM7tpwWD
eFRxdc28C+0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAOoNJWFFveTCbvqSGGC77
WVve09qOVwcXJ6AxeWFIdfBsBW1sYqlN3ZOh7jYQwHbXIbxLNYWCWVgujHTzodvv
LJInvnDDjMZUZScR5/g/PiWe/8u7W2nL0PvAJeP5HXg3SxR0OIpDLBjnc6HY8oej
XvuiLEgvmtjiiSdXoD8WUExe6uBqTNQl/NH5uqJzTuQUYFZihtgdGAfiB7uXHgWi
OS67rHGfewn+So2IYpY0O8iDFc1s/p3En8uEBkpJVwWmb++xaeYZwpASupzMZXWV
ONzOjg/T18NRTV9OozphyRLjwotWTACMbtkrWNyZ5YJDrGW0gzo8nrpck2VoRBPV
kg==
-----END CERTIFICATE-----

View File

@@ -0,0 +1,17 @@
-----BEGIN CERTIFICATE REQUEST-----
MIICnTCCAYUCAQAwPDELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUx
GDAWBgNVBAoMD1Rlc3RpbmcgdGVzdGVyczCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAOeglExQo4UCOjWo5B4hNdW4a5eClziHPku5xMFaKWtCwI/zURjk
3Di2jcUP7T60Gc9E+yHkaV+E/O33s5qaNNrG055WhidJl4/Rvs4EF7ka3W44m0J0
EACxgfWa11UWD5o+942V1PlcIwj1k+owkuiZfpSFxVjTB8ZE6U9qB+9rX+/ET7wT
BOVbLHNfzw954ymENUPKUFwheUSntso+WbOWQJxElfElAh5z55WjdiwPSaV2q2ln
W1Pa3yin2cbl3PvKIAkAhegBIHTU05DfJiIRNsetCoVygNNZZMk7SG53hwFmKJg9
+l3uxa7syeDVmOi+sM7tpwWDeFRxdc28C+0CAwEAAaAcMBoGCSqGSIb3DQEJDjEN
MAswCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAF5MmqF7qiRrPjywYvFxs
QOAB4aJFAuk/8BMS9TskRaCmDfMLjoWZ1sjy2zRkyanPE5+4LwHpUBUfGnaLWa8q
wXGj+5ImWxgcjRHIvH54IyYodnKnJaHA7GzghrsGd3Jck+xhBWmx5tVQmLvjkNvI
cHY7lpJqbXYb+2awiYG56GvYi7ytO7HLKHbpL8qW8bBEnARVkYU9zt1x6Zgpzd2p
IDuMbPl0JlpXejRJJM+cRQrEOrebnJ+tYnxi3Y+MJwWn7UmiLXRoW47ZOh+5/WDq
xWP76bR4rPCRIU5augV6xnu8Y3Bv2dMvfWnaOsPDYVsz0gl+sGDsIc4ZNUGEQ0wS
7g==
-----END CERTIFICATE REQUEST-----

View File

@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDnoJRMUKOFAjo1
qOQeITXVuGuXgpc4hz5LucTBWilrQsCP81EY5Nw4to3FD+0+tBnPRPsh5GlfhPzt
97OamjTaxtOeVoYnSZeP0b7OBBe5Gt1uOJtCdBAAsYH1mtdVFg+aPveNldT5XCMI
9ZPqMJLomX6UhcVY0wfGROlPagfva1/vxE+8EwTlWyxzX88PeeMphDVDylBcIXlE
p7bKPlmzlkCcRJXxJQIec+eVo3YsD0mldqtpZ1tT2t8op9nG5dz7yiAJAIXoASB0
1NOQ3yYiETbHrQqFcoDTWWTJO0hud4cBZiiYPfpd7sWu7Mng1ZjovrDO7acFg3hU
cXXNvAvtAgMBAAECggEAG1+FxxMMkA54VJkWBF2GYDCAPpKHTn3lJcvZbcQ6+tsT
qK9nmRqK0AT68hv0vKFKH42WZCX7MfekcHcCebXZozU2ExNEnWX8DFoMQ4qGRzDe
lEUKTCstLPfNVPosknid9WuVk9zuI135IfjrtxRweB6Tr/ezH9EorQy9yc3NDEUZ
qClQHh5/xsFyOfvar0ktrlAfm16NKF1jvNlr3eoFhjv2W5gqFPnsA+bseD2BYyZI
IT4xp2Z9IDMwWtnrx+4xSsViwzKTrXMGatKft6Fs8qwmVe63wq7VW1gj9wnspY47
YVHswoCaYX6OO2uNtUfbYjrW7EJdANpNUMEmj6TnXQKBgQD6j5dnFVSqU9XHjY3E
+zymV4lU/o7EXxnvwFkHvNex003hfQF5Q0ceFVvOyc/8dpk5HHanceqLbgX+f0il
bDZ2it8eaSuTSblO9vUKeHlvx3s7KfwFH5kT48rnd5uSDjn1zRTboANBPRjIssP5
GhRFx5JPGZ6b0ehK8c/2Qx07XwKBgQDsp8U+WFHxBRoixr9XjVGqcVZ4XeKl+KX1
qQZOSx2gO3Yhl0umin/SD2jNKgeUhtVhw3YNob3pB17botnpXE4/kj8kpFDepy6J
aCgWw0eU1ZM0w04AsOT1vRmzdGZf9UAD6kR5Je41PcKHWRz6ZXW1j27IAXzhYbSw
aGZa29nIMwKBgAy0WS3t4/Qa+hz7LXQOdR3OFHWNzrlgRRVmAF2nEpy+pRVI3FlE
swdwd849Z2FathwyOEX3PbhCJOWpmIpiuUQ7eGK3XHFEbLP3S6dzQl0LlVEDqPat
inp6s2AXLXkzZXb0JhmYvHGDYo1SmyM3Uk3Td7SxDNzDwO6D4lKPRp0rAoGBAOGJ
eodSMLWcgS4Hb6+G9P+VCC2qfChk8fVPYr0XBWMBiDG3ONe9Qtf065IrrhG09oM3
fri7HnyJE7QKXdbyq3gWbqsDFjc76TP22c3nyb5kVOiCAULTU0GHOIk4M6Db4Gha
yWsT5RNEirHnEaDpNOcVjSR7loJNVaCRvop03/bVAoGBANLhYvNsYC67cxXBwOkH
yg3KIXM/rbsK3aZyiv7ZNpja3Rjr0kqlvBom+0UCBVv3TsimgjB1+GocWqzdB9mi
DhPirVCQjl+63jE9YZxT1cvibkxsBAQCbl4FlqIbNa7zWKgqopwCX1FQzQuU7QUR
8tMAzwM9hIylELscVzZ13Htq
-----END PRIVATE KEY-----

View File

@@ -0,0 +1,11 @@
project (f07bfc66-958c-4a15-99c0-260e4e7375dd.plugin C)
set (CFG_TEE_PLUGIN_LOAD_PATH "/usr/lib/tee-supplicant/plugins/")
set (CMAKE_SHARED_LIBRARY_PREFIX "")
add_library(${PROJECT_NAME} SHARED test_supp_plugin.c)
target_include_directories(${PROJECT_NAME} PRIVATE ./include)
target_link_libraries (${PROJECT_NAME} PRIVATE teec)
install (TARGETS ${PROJECT_NAME} DESTINATION ${CFG_TEE_PLUGIN_LOAD_PATH})

View File

@@ -0,0 +1,24 @@
PLUGIN_UUID = f07bfc66-958c-4a15-99c0-260e4e7375dd
PLUGIN = $(PLUGIN_UUID).plugin
PLUGIN_SRS = $(wildcard ./*.c)
PLUGIN_OBJ = $(patsubst %.c, $(O)/supp_plugin/%.o, $(PLUGIN_SRS))
PLUGIN_INCLUDES_DIR = $(CURDIR)/include $(OPTEE_CLIENT_EXPORT)/include
PLUGIN_INCLUDES = $(addprefix -I, $(PLUGIN_INCLUDES_DIR))
PLUGIN_CCFLAGS = $(CFLAGS) -Wall -fPIC
PLUGIN_LDFLAGS = $(LDFLAGS) -shared
CC ?= $(CROSS_COMPILE)gcc
$(O)/supp_plugin/$(PLUGIN): $(PLUGIN_OBJ)
$(q)$(CC) $(PLUGIN_LDFLAGS) $(PLUGIN_OBJ) -o $@
$(O)/supp_plugin/%.o: $(CURDIR)/%.c
$(q)mkdir -p $(O)/supp_plugin
@echo ' CC $<'
$(q)$(CC) $(PLUGIN_INCLUDES) $(PLUGIN_CCFLAGS) -c $< -o $@
.PHONY: clean
clean:
$(q)$(RM) -rf $(O)/supp_plugin/

View File

@@ -0,0 +1,17 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* Copyright (c) 2021 Open Mobile Platform LLC
*/
#ifndef TEST_SUPP_PLUGIN_H
#define TEST_SUPP_PLUGIN_H
#define TEST_PLUGIN_UUID { 0xf07bfc66, 0x958c, 0x4a15, \
{ 0x99, 0xc0, 0x26, 0x0e, 0x4e, 0x73, 0x75, 0xdd } }
#define TEST_PLUGIN_CMD_PING 0
#define TEST_PLUGIN_CMD_PASS_VALUES 1
#define TEST_PLUGIN_CMD_WRITE_ARR 2
#define TEST_PLUGIN_CMD_GET_ARR 3
#endif /* TEST_SUPP_PLUGIN_H */

View File

@@ -0,0 +1,93 @@
// SPDX-License-Identifier: BSD-2-Clause
/*
* Copyright (c) 2021, Open Mobile Platform LLC
*/
#include <stdio.h>
#include <stdint.h>
#include <stddef.h>
#include <string.h>
#include <stdlib.h>
#include <limits.h>
#include <tee_plugin_method.h>
#include <test_supp_plugin.h>
#include <unistd.h>
static TEEC_Result pass_values(unsigned int sub_cmd, void *data,
size_t data_len, size_t *out_len)
{
struct add_op {
uint32_t a;
uint32_t b;
} *values = NULL;
values = (struct add_op *)data;
*out_len = sizeof(uint32_t);
if (sub_cmd == '+')
values->a = values->a + values->b;
else
values->a = values->a - values->b;
return TEEC_SUCCESS;
}
static TEEC_Result proc_input_arr(unsigned int sub_cmd, void *data,
size_t data_len, size_t *out_len)
{
(void)sub_cmd;
size_t i = 0;
uint8_t sum = 0;
uint8_t *d = data;
for (; i < data_len; ++i)
sum += d[i];
d[0] = sum;
*out_len = sizeof(sum);
return TEEC_SUCCESS;
}
static TEEC_Result get_test_arr(unsigned int sub_cmd, void *data,
size_t data_len, size_t *out_len)
{
(void)sub_cmd;
char test_arr[] = "Array from plugin";
size_t test_size = sizeof(test_arr);
if (data_len < test_size)
return TEEC_ERROR_GENERIC;
memcpy(data, test_arr, test_size);
*out_len = test_size;
return TEEC_SUCCESS;
}
static TEEC_Result test_plugin_invoke(unsigned int cmd, unsigned int sub_cmd,
void *data, size_t data_len,
size_t *out_len)
{
switch (cmd) {
case TEST_PLUGIN_CMD_PING:
return TEEC_SUCCESS;
case TEST_PLUGIN_CMD_PASS_VALUES:
return pass_values(sub_cmd, data, data_len, out_len);
case TEST_PLUGIN_CMD_WRITE_ARR:
return proc_input_arr(sub_cmd, data, data_len, out_len);
case TEST_PLUGIN_CMD_GET_ARR:
return get_test_arr(sub_cmd, data, data_len, out_len);
default:
break;
}
return TEEC_ERROR_NOT_SUPPORTED;
}
struct plugin_method plugin_method = {
.name = "test",
.uuid = TEST_PLUGIN_UUID,
.invoke = test_plugin_invoke,
};

View File

@@ -0,0 +1,149 @@
project (xtest C)
include(${OPTEE_TEST_SDK}/host_include/conf.cmake)
################################################################################
# Packages
################################################################################
find_package(Threads REQUIRED)
if(NOT THREADS_FOUND)
message(FATAL_ERROR "Threads not found")
endif()
find_package(OpenSSL)
if(OPENSSL_FOUND)
add_compile_options(-DOPENSSL_FOUND=1 -DOPENSSL_API_COMPAT=10100)
set (OPENSSL_PRIVATE_LINK OpenSSL::Crypto)
endif()
find_package(Python REQUIRED)
include(GNUInstallDirs)
macro(EMBED_8100FILE prefix infile)
add_custom_command(
OUTPUT regression_8100_${prefix}.h
COMMAND ${Python_EXECUTABLE} ${OPTEE_TEST_ROOT_DIR}/scripts/file_to_c.py --inf ${infile}
--out ${CMAKE_CURRENT_BINARY_DIR}/regression_8100_${prefix}.h
--name regression_8100_${prefix}
DEPENDS ${OPTEE_TEST_ROOT_DIR}/scripts/file_to_c.py ${infile}
)
set_property(SOURCE regression_8100.c APPEND PROPERTY OBJECT_DEPENDS
${CMAKE_CURRENT_BINARY_DIR}/regression_8100_${prefix}.h)
endmacro(EMBED_8100FILE)
EMBED_8100FILE(ca_crt ${OPTEE_TEST_ROOT_DIR}/cert/ca.crt)
EMBED_8100FILE(mid_crt ${OPTEE_TEST_ROOT_DIR}/cert/mid.crt)
EMBED_8100FILE(my_crt ${OPTEE_TEST_ROOT_DIR}/cert/my.crt)
EMBED_8100FILE(my_csr ${OPTEE_TEST_ROOT_DIR}/cert/my.csr)
set (SRC
adbg/src/adbg_case.c
adbg/src/adbg_enum.c
adbg/src/adbg_expect.c
adbg/src/adbg_log.c
adbg/src/adbg_run.c
adbg/src/security_utils_hex.c
asym_perf.c
benchmark_1000.c
benchmark_2000.c
clear_storage.c
regression_1000.c
regression_4000.c
regression_4100.c
regression_5000.c
regression_6000.c
regression_8000.c
regression_8100.c
hash_perf.c
stats.c
symm_cipher_perf.c
xtest_helpers.c
xtest_main.c
xtest_test.c
xtest_uuid_helpers.c
)
if(CFG_SECURE_PARTITION AND CFG_SPMC_TESTS)
list (APPEND SRC ffa_spmc_1000.c)
endif()
if (WITH_GP_TESTS)
add_compile_options(-DWITH_GP_TESTS=1)
macro(__GEN_GP_FILE outfile xmldir name basedir)
add_custom_command(
OUTPUT ${outfile}
COMMAND xalan -in ${basedir}/${name}.xml
-xsl gp/${name}.xsl -out ${outfile}
DEPENDS ${basedir}/${name}.xml gp/${name}.xsl
)
endmacro(__GEN_GP_FILE)
macro(GEN_GP_FILE outfile xmldir name)
__GEN_GP_FILE(${outfile} ${xmldir} ${name}
gp-suite/packages/${xmldir})
list (APPEND SRC ${outfile})
endmacro(GEN_GP_FILE)
GEN_GP_FILE(gp_10000.c ClientAPI/xmlstable TEE)
GEN_GP_FILE(gp_20000.c TrustedCoreFw/xmlstable TEE_Internal_API)
GEN_GP_FILE(gp_30000.c DataStorage/xmlstable TEE_DataStorage_API)
GEN_GP_FILE(gp_40000.c Time_Arithmetical/xmlstable TEE_TimeArithm_API)
GEN_GP_FILE(gp_50000.c Crypto/xmlstable TEE_Crypto_API)
set (GP_INCLUDES PRIVATE gp/include)
endif()
if (CFG_GP_SOCKETS)
list (APPEND SRC
regression_2000.c
sock_server.c
rand_stream.c
)
endif()
if (CFG_SECSTOR_TA_MGMT_PTA)
list (APPEND SRC install_ta.c)
endif()
if (CFG_SECURE_DATA_PATH)
list (APPEND SRC sdp_basic.c)
endif()
if (CFG_PKCS11_TA)
add_compile_options(-DCFG_PKCS11_TA)
list (APPEND SRC pkcs11_1000.c)
endif()
if (CFG_CRYPTO_SE05X)
add_compile_options(-DCFG_CRYPTO_SE05X)
endif()
################################################################################
# Built binary
################################################################################
add_executable (${PROJECT_NAME} ${SRC})
target_compile_options (${PROJECT_NAME} PRIVATE -include conf.h)
target_include_directories(${PROJECT_NAME}
PRIVATE .
PRIVATE ../supp_plugin/include
PRIVATE adbg/include
PRIVATE ${OPTEE_TEST_SDK}/host_include
PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
${GP_INCLUDES}
)
target_link_libraries (${PROJECT_NAME}
PRIVATE ${CMAKE_THREAD_LIBS_INIT}
PRIVATE xtest-ta-headers
PRIVATE teec
PRIVATE m
PRIVATE ${OPENSSL_PRIVATE_LINK}
PRIVATE ckteec
)
################################################################################
# Install targets
################################################################################
install (TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})

View File

@@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@@ -0,0 +1,234 @@
# Normally this makefile shouldn't be called directly and we expect the output
# path to be on a certain location to fit together with the other OP-TEE
# gits and helper scripts.
include ../../scripts/common.mk
out-dir := $(call strip-trailing-slashes-and-dots,$(O))
ifeq ($(out-dir),)
$(error invalid output directory (O=$(O)))
endif
include $(TA_DEV_KIT_DIR)/host_include/conf.mk
# By default we expect optee_client exported folder to be on a certain relative
# path, but if the client specifies the OPTEE_CLIENT_EXPORT then that path will
# be used instead.
OPTEE_CLIENT_EXPORT ?= ../../../optee_client/out/export
CC ?= $(CROSS_COMPILE)gcc
CPP ?= $(CROSS_COMPILE)cpp
LD ?= $(CROSS_COMPILE)ld
AR ?= $(CROSS_COMPILE)ar
NM ?= $(CROSS_COMPILE)nm
OBJCOPY ?= $(CROSS_COMPILE)objcopy
OBJDUMP ?= $(CROSS_COMPILE)objdump
READELF ?= $(CROSS_COMPILE)readelf
# Macros to detect the targeted architecture (e.g., arm-linux-gnueabihf or
# aarch64-linux-gnu) and the corresponding bit size (32 or 64).
define cc-arch
$(shell $(1) -v 2>&1 | grep Target | sed 's/Target: \([^-]*\).*/\1/')
endef
define cc-bits
$(if $(filter arm, $(1)),32,$(if $(filter aarch64, $(1)),64,unknown-arch))
endef
# OpenSSL is used by:
# - GP tests series 8500
# - Mbed TLS test 8103
# - User/group login tests 1027 and 1028
WITH_OPENSSL ?= y
ifeq ($(WITH_OPENSSL),y)
CFLAGS += -DOPENSSL_FOUND=1 -DOPENSSL_API_COMPAT=10100
LDFLAGS += -lcrypto
endif #require OpenSSL
srcs := regression_1000.c
ifeq ($(CFG_GP_SOCKETS),y)
srcs += regression_2000.c \
sock_server.c \
rand_stream.c
endif
srcs += adbg/src/adbg_case.c \
adbg/src/adbg_enum.c \
adbg/src/adbg_expect.c \
adbg/src/adbg_log.c \
adbg/src/adbg_run.c \
adbg/src/security_utils_hex.c \
asym_perf.c \
benchmark_1000.c \
benchmark_2000.c \
clear_storage.c \
regression_4000.c \
regression_4100.c \
regression_5000.c \
regression_6000.c \
regression_8000.c \
regression_8100.c \
hash_perf.c \
stats.c \
symm_cipher_perf.c \
xtest_helpers.c \
xtest_main.c \
xtest_test.c \
xtest_uuid_helpers.c
ifeq ($(CFG_SECURE_PARTITION)-$(CFG_SPMC_TESTS),y-y)
srcs += ffa_spmc_1000.c
endif
ifeq ($(CFG_SECSTOR_TA_MGMT_PTA),y)
srcs += install_ta.c
endif
ifeq ($(CFG_SECURE_DATA_PATH),y)
srcs += sdp_basic.c
endif
ifeq ($(CFG_PKCS11_TA),y)
srcs += pkcs11_1000.c
CFLAGS += -Os
endif
objs := $(patsubst %.c,$(out-dir)/xtest/%.o, $(srcs))
ifeq ($(CFG_PKCS11_TA),y)
CFLAGS += -DCFG_PKCS11_TA
endif
ifeq ($(CFG_CRYPTO_SE05X),y)
CFLAGS += -DCFG_CRYPTO_SE05X
endif
CFLAGS += -I./
CFLAGS += -I./adbg/include
CFLAGS += -I../supp_plugin/include
CFLAGS += -I$(out-dir)/xtest
CFLAGS += -I$(OPTEE_CLIENT_EXPORT)/include
CFLAGS += -I$(TA_DEV_KIT_DIR)/host_include
CFLAGS += -I../../ta/include
CFLAGS += -I../../ta/create_fail_test/include
CFLAGS += -I../../ta/crypt/include
CFLAGS += -I../../ta/enc_fs/include
CFLAGS += -I../../ta/os_test/include
CFLAGS += -I../../ta/rpc_test/include
CFLAGS += -I../../ta/sims/include
CFLAGS += -I../../ta/miss/include
CFLAGS += -I../../ta/sims_keepalive/include
CFLAGS += -I../../ta/storage_benchmark/include
CFLAGS += -I../../ta/concurrent/include
CFLAGS += -I../../ta/concurrent_large/include
CFLAGS += -I../../ta/crypto_perf/include
CFLAGS += -I../../ta/socket/include
CFLAGS += -I../../ta/sdp_basic/include
CFLAGS += -I../../ta/tpm_log_test/include
CFLAGS += -I../../ta/large/include
CFLAGS += -I../../ta/supp_plugin/include
CFLAGS += -I../../ta/bti_test/include
CFLAGS += -I../../ta/subkey1/include
CFLAGS += -I../../ta/subkey2/include
TA_DIR ?= /lib/optee_armtz
CFLAGS += -DTA_DIR=\"$(TA_DIR)\"
# Include configuration file generated by OP-TEE OS (CFG_* macros)
CFLAGS += -include conf.h
CFLAGS += -Wall -Wcast-align -Werror \
-Werror-implicit-function-declaration -Wextra -Wfloat-equal \
-Wformat-nonliteral -Wformat-security -Wformat=2 -Winit-self \
-Wmissing-declarations -Wmissing-format-attribute \
-Wmissing-include-dirs \
-Wmissing-prototypes -Wnested-externs -Wpointer-arith \
-Wshadow -Wstrict-prototypes -Wswitch-default \
-Wwrite-strings -Wno-unused-parameter \
-Wno-declaration-after-statement \
-Wno-missing-field-initializers -Wno-format-zero-length
CFLAGS += -g3
LDFLAGS += -L$(OPTEE_CLIENT_EXPORT)/lib -lteec
ifeq ($(CFG_PKCS11_TA),y)
LDFLAGS += -lckteec
endif
LDFLAGS += -lpthread -lm
.PHONY: all
all: xtest
xtest: $(objs)
@echo " LD $(out-dir)/xtest/$@"
$(q)$(CC) -o $(out-dir)/xtest/$@ $+ $(LDFLAGS)
$(out-dir)/xtest/%.o: $(CURDIR)/%.c
$(q)mkdir -p $(out-dir)/xtest/adbg/src
@echo ' CC $<'
$(q)$(CC) $(CFLAGS) -c $< -o $@
RMDIR := rmdir --ignore-fail-on-non-empty
define rm-build-dirs
$(q)for d in $1; do $(RMDIR) $(out-dir)/xtest/$$d 2> /dev/null; true; done
$(q)$(RMDIR) $(out-dir)/xtest 2> /dev/null; true
$(q)$(RMDIR) $(out-dir) 2> /dev/null; true
endef
ifeq ($(CFG_GCM_NIST_VECTORS),y)
GCM_NIST_VECTORS_DECRYPT = gcmDecrypt128 gcmDecrypt192 gcmDecrypt256
GCM_NIST_VECTORS_ENCRYPT = gcmEncryptExtIV128 gcmEncryptExtIV192 \
gcmEncryptExtIV256
cleanfiles += $(out-dir)/gcmtestvectors.zip
$(out-dir)/gcmtestvectors.zip:
@echo ' DL $@'
$(q)curl https://csrc.nist.gov/csrc/media/projects/cryptographic-algorithm-validation-program/documents/mac/gcmtestvectors.zip -o $@
define create-nist-gcm-vectors
cleanfiles += $(out-dir)/xtest/$(1).h $(out-dir)/$(1).rsp
$(out-dir)/$(1).rsp: $(out-dir)/gcmtestvectors.zip
@echo ' UNZIP $$@'
$(q)unzip -o $$< $$(notdir $$@) -d $$(dir $$@)
$(q)touch $$@
$(out-dir)/xtest/$(1).h: $(out-dir)/$(1).rsp
@echo ' GEN $$@'
$(q)$(PYTHON3) ../../scripts/rsp_to_gcm_test.py --inf $$< --outf $$@ --mode=$(2) \
$(if $(filter y,$(CFG_GCM_NIST_VECTORS_LIMITED)),--limited)
$(CURDIR)/regression_4000.c: $(out-dir)/xtest/$(1).h
endef
$(foreach v, $(GCM_NIST_VECTORS_DECRYPT), $(eval $(call \
create-nist-gcm-vectors,$v,decrypt)))
$(foreach v, $(GCM_NIST_VECTORS_ENCRYPT), $(eval $(call \
create-nist-gcm-vectors,$v,encrypt)))
endif
define embed-file
cleanfiles += $(out-dir)/xtest/$(1).h
$(out-dir)/xtest/$(1).h: $(2)
$(q)mkdir -p $(out-dir)/xtest/
@echo ' GEN $$@'
$(q)$(PYTHON3) ../../scripts/file_to_c.py --inf $$< --out $$@ --name $(1)
$(CURDIR)/regression_8100.c: $(out-dir)/xtest/$(1).h
endef
$(eval $(call embed-file,regression_8100_ca_crt,../../cert/ca.crt))
$(eval $(call embed-file,regression_8100_mid_crt,../../cert/mid.crt))
$(eval $(call embed-file,regression_8100_my_crt,../../cert/my.crt))
$(eval $(call embed-file,regression_8100_my_csr,../../cert/my.csr))
.PHONY: clean
clean:
@echo ' CLEAN $(out-dir)'
$(q)rm -f $(out-dir)/xtest/xtest
$(q)$(foreach obj,$(objs), rm -f $(obj))
$(q)rm -f $(cleanfiles)
$(call rm-build-dirs,adbg/src adbg)

View File

@@ -0,0 +1,259 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
*/
#ifndef ADBG_H
#define ADBG_H
#include <stdarg.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <sys/queue.h>
#define ADBG_STRING_LENGTH_MAX (1024)
/*
* Case definitions
*/
/**
* Defines a test case
*
* Used in the follwing way for readability:
*/
#if 0 /* #if 0 to avoid nested comments */
ADBG_CASE_DEFINE(TEST_1001, TEST_Test_1001,
/* Title */
"My test case title",
);
#endif
typedef struct ADBG_Case ADBG_Case_t;
typedef struct adbg_case_def {
const char *TestID_p;
const char *Title_p;
void (*Run_fp)(ADBG_Case_t *ADBG_Case_pp);
TAILQ_ENTRY(adbg_case_def) link;
} ADBG_Case_Definition_t;
TAILQ_HEAD(adbg_case_def_head, adbg_case_def);
typedef struct adbg_suite_def {
const char *SuiteID_p;
struct adbg_case_def_head cases;
} ADBG_Suite_Definition_t;
#define ADBG_CASE_DEFINE(Suite, TestID, Run, Title) \
__attribute__((constructor)) static void \
__adbg_test_case_ ## TestID(void) \
{ \
static ADBG_Case_Definition_t case_def = { \
.TestID_p = #Suite "_" #TestID, \
.Title_p = Title, \
.Run_fp = Run, \
}; \
struct adbg_case_def_head *ch = &(ADBG_Suite_ ## Suite).cases; \
struct adbg_case_def *cd = NULL; \
\
TAILQ_FOREACH(cd, ch, link) \
if (strcmp(case_def.TestID_p, cd->TestID_p) < 0) \
break; \
if (cd) \
TAILQ_INSERT_BEFORE(cd, &case_def, link); \
else \
TAILQ_INSERT_TAIL(ch, &case_def, link); \
}
/*
* Suite definitions
*/
/**
* Declares a suite defined in a C-file.
*/
#define ADBG_SUITE_DECLARE(Name) \
extern ADBG_Suite_Definition_t ADBG_Suite_ ## Name
#define ADBG_SUITE_DEFINE(Name) \
ADBG_Suite_Definition_t ADBG_Suite_ ## Name = { \
.SuiteID_p = #Name, \
.cases = TAILQ_HEAD_INITIALIZER(ADBG_Suite_ ## Name.cases), \
}
/*
* Enum table definitions
*/
#define ADBG_ENUM_TABLE_DECLARE(Name) \
extern const ADBG_EnumTable_t ADBG_EnumTable_ ## Name[]
#define ADBG_ENUM_TABLE_DEFINE_BEGIN(Name) \
const ADBG_EnumTable_t ADBG_EnumTable_ ## Name[] = {
#define ADBG_ENUM_TABLE_ENTRY(Value) { Value, #Value }
#define ADBG_ENUM_TABLE_DEFINE_END(Name) , { 0, NULL } }
typedef struct {
int Value;
const char *const Name_p;
} ADBG_EnumEntry_t;
typedef ADBG_EnumEntry_t ADBG_EnumTable_t;
ADBG_ENUM_TABLE_DECLARE(Boolean);
/*
* Expect functions/macros
*/
#define ADBG_EXPECT(Case_p, Expected, Got) \
ADBG_EXPECT_ENUM(Case_p, Expected, Got, NULL)
#define ADBG_EXPECT_NOT(Case_p, Expected, Got) \
ADBG_EXPECT_NOT_ENUM(Case_p, Expected, Got, NULL)
#define ADBG_EXPECT_ENUM(Case_p, Expected, Got, EnumTable_p) \
Do_ADBG_Expect(Case_p, __FILE__, __LINE__, Expected, Got, #Got, \
EnumTable_p)
#define ADBG_EXPECT_NOT_ENUM(Case_p, NotExpected, Got, EnumTable_p) \
Do_ADBG_ExpectNot(Case_p, __FILE__, __LINE__, \
NotExpected, Got, #Got, EnumTable_p)
#define ADBG_EXPECT_BOOLEAN(Case_p, Expected, Got) \
ADBG_EXPECT_ENUM(Case_p, Expected, Got, ADBG_EnumTable_Boolean)
#define ADBG_EXPECT_TRUE(Case_p, Got) \
ADBG_EXPECT_ENUM(Case_p, true, Got, ADBG_EnumTable_Boolean)
#define ADBG_EXPECT_EQUAL(Case_p, Buf1_p, Buf2_p, Length) \
ADBG_EXPECT(Case_p, 0, memcmp(Buf1_p, Buf2_p, Length))
#define ADBG_EXPECT_BUFFER(Case_p, ExpBuf_p, ExpBufLen, GotBuf_p, GotBufLen) \
Do_ADBG_ExpectBuffer(Case_p, __FILE__, __LINE__, \
ExpBuf_p, ExpBufLen, #GotBuf_p, GotBuf_p, \
#GotBufLen, GotBufLen)
#define ADBG_EXPECT_POINTER(Case_p, Expected, Got) \
Do_ADBG_ExpectPointer(Case_p, __FILE__, __LINE__, Expected, Got, #Got)
#define ADBG_EXPECT_NOT_NULL(Case_p, Got) \
Do_ADBG_ExpectPointerNotNULL(Case_p, __FILE__, __LINE__, Got, #Got)
#define ADBG_EXPECT_COMPARE_SIGNED(Case_p, Val1, Compar, Val2) \
Do_ADBG_ExpectCompareSigned(Case_p, __FILE__, __LINE__, \
Val1, Val2, (Val1)Compar( \
Val2), #Val1, #Compar, #Val2)
#define ADBG_EXPECT_COMPARE_UNSIGNED(Case_p, Val1, Compar, Val2) \
Do_ADBG_ExpectCompareUnsigned(Case_p, __FILE__, __LINE__, \
Val1, Val2, (Val1)Compar( \
Val2), #Val1, #Compar, #Val2)
#define ADBG_EXPECT_COMPARE_POINTER(Case_p, Val1, Compar, Val2) \
Do_ADBG_ExpectComparePointer(Case_p, __FILE__, __LINE__, \
Val1, Val2, (Val1)Compar( \
Val2), #Val1, #Compar, #Val2)
bool Do_ADBG_Expect(ADBG_Case_t *const Case_p, const char *const FileName_p,
const int LineNumber, const int Expected, const int Got,
const char *const GotVarName_p,
const ADBG_EnumTable_t *const EnumTable_p);
bool Do_ADBG_ExpectNot(ADBG_Case_t *const Case_p, const char *const FileName_p,
const int LineNumber, const int NotExpected,
const int Got, const char *const GotVarName_p,
const ADBG_EnumTable_t *const EnumTable_p);
bool Do_ADBG_ExpectBuffer(ADBG_Case_t *const Case_p,
const char *const FileName_p, const int LineNumber,
const void *const ExpectedBuffer_p,
const size_t ExpectedBufferLength,
const char *const GotBufferName_p,
const void *const GotBuffer_p,
const char *const GotBufferLengthName_p,
const size_t GotBufferLength);
bool Do_ADBG_ExpectPointer(ADBG_Case_t *const Case_p,
const char *const FileName_p, const int LineNumber,
const void *Expected_p, const void *Got_p,
const char *const GotVarName_p);
bool Do_ADBG_ExpectPointerNotNULL(ADBG_Case_t *const Case_p,
const char *const FileName_p,
const int LineNumber, const void *Got_p,
const char *const GotVarName_p);
bool Do_ADBG_ExpectCompareSigned(ADBG_Case_t *const Case_p,
const char *const FileName_p,
const int LineNumber, const long Value1,
const long Value2, const bool Result,
const char *const Value1Str_p,
const char *const ComparStr_p,
const char *const Value2Str_p);
bool Do_ADBG_ExpectCompareUnsigned(ADBG_Case_t *const Case_p,
const char *const FileName_p,
const int LineNumber,
const unsigned long Value1,
const unsigned long Value2,
const bool Result,
const char *const Value1Str_p,
const char *const ComparStr_p,
const char *const Value2Str_p);
bool Do_ADBG_ExpectComparePointer(ADBG_Case_t *const Case_p,
const char *const FileName_p,
const int LineNumber,
const void *const Value1_p,
const void *const Value2_p, const bool Result,
const char *const Value1Str_p,
const char *const ComparStr_p,
const char *const Value2Str_p);
const char *Do_ADBG_GetEnumName(const int Value,
const ADBG_EnumTable_t *const EnumTable_p);
/**
* Writes a string to output.
* String length max is defined by ADBG_STRING_LENGTH_MAX
*
* @param Format_p The formatting string as in printf
*/
void Do_ADBG_Log(const char *const Format_p, ...)
__attribute__((__format__(__printf__, 1, 2)));
/**
* Writes out the contents of buf_p formatted so that each line will
* have cols number of columns.
*
* @param[in] Buf_p Buffer to print
* @param[in] Size Size of buffer (in bytes)
* @param[in] Cols Number of columns.
*/
void Do_ADBG_HexLog(const void *const Buf_p, const size_t Size,
const size_t Cols);
/*
* Suite functions
*/
int Do_ADBG_RunSuite(const ADBG_Suite_Definition_t *Suite_p, int argc,
char *argv[]);
int Do_ADBG_AppendToSuite(ADBG_Suite_Definition_t *Dest_p,
ADBG_Suite_Definition_t *Source_p);
/*
* SubCase functions
*/
void Do_ADBG_BeginSubCase(ADBG_Case_t *const Case_p,
const char *const FormatTitle_p,
...) __attribute__((__format__(__printf__, 2, 3)));
void Do_ADBG_EndSubCase(ADBG_Case_t *const Case_p,
const char *const FormatTitle_p,
...) __attribute__((__format__(__printf__, 2, 3)));
#endif /* ADBG_H */

View File

@@ -0,0 +1,358 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
*/
/*************************************************************************
* 1. Includes
*************************************************************************/
#include "adbg_int.h"
/*************************************************************************
* 2. Definition of external constants and variables
*************************************************************************/
/*************************************************************************
* 3. File scope types, constants and variables
*************************************************************************/
/*************************************************************************
* 4. Declaration of file local functions
*************************************************************************/
/*
* Deletes a subcase. Don't call this function before the
* subcase is removed from list.
*/
static void ADBG_SubCase_Delete(ADBG_SubCase_t *SubCase);
static ADBG_SubCase_t *ADBG_Case_CreateSubCase(ADBG_Case_t *Case_p,
const char *const Title_p);
static ADBG_SubCase_t *ADBG_Case_GetParentSubCase(ADBG_Case_t *Case_p,
ADBG_SubCase_t *SubCase_p);
static const char *ADBG_Case_GetTestID(ADBG_Case_t *Case_p);
/*************************************************************************
* 5. Definition of external functions
*************************************************************************/
ADBG_Case_t *ADBG_Case_New(const struct adbg_case_def *case_def)
{
ADBG_Case_t *Case_p = NULL;
Case_p = calloc(1, sizeof(*Case_p));
if (Case_p)
Case_p->case_def = case_def;
return Case_p;
}
void ADBG_Case_Delete(ADBG_Case_t *Case_p)
{
ADBG_SubCase_Delete(Case_p->FirstSubCase_p);
free(Case_p);
}
bool ADBG_Case_SubCaseIsMain(
const ADBG_Case_t *const Case_p,
const ADBG_SubCase_t *const SubCase_p
)
{
IDENTIFIER_NOT_USED(Case_p)
return SubCase_p->Parent_p == NULL;
}
void ADBG_Case_IterateSubCase(
ADBG_Case_t *Case_p,
ADBG_SubCase_Iterator_t *Iterator_p
)
{
Iterator_p->Case_p = Case_p;
Iterator_p->CurrentSubCase_p = NULL;
}
ADBG_SubCase_t *ADBG_Case_NextSubCase(
ADBG_SubCase_Iterator_t *Iterator_p
)
{
ADBG_Case_t *Case_p = Iterator_p->Case_p;
ADBG_SubCase_t *SubCase_p = Iterator_p->CurrentSubCase_p;
/*
* Traverse the subcases depth first, that is:
* 1.1.1.1
* 1.1.1.2
* 1.1.1
* 1.1.2.1
* 1.1.2
* 1.1
* 1.2.1
* 1.2
* 1
*/
if (SubCase_p == NULL) {
/* Find the first leaf */
SubCase_p = Case_p->FirstSubCase_p;
if (SubCase_p == NULL)
goto CleanupReturn;
while (!TAILQ_EMPTY(&SubCase_p->SubCasesList))
SubCase_p = TAILQ_FIRST(&SubCase_p->SubCasesList);
goto CleanupReturn;
}
/*
* Look for the next leaf belonging to the parent
*/
if (SubCase_p->Parent_p == NULL) {
/* If parent is NULL this is the top
subcase and we're done */
SubCase_p = NULL;
goto CleanupReturn;
}
if (TAILQ_NEXT(SubCase_p, Link) == NULL) {
/* If this is the last subcase of the
parent move up to parent */
SubCase_p = SubCase_p->Parent_p;
goto CleanupReturn;
}
/*
* Find next leaf
*/
SubCase_p = TAILQ_NEXT(SubCase_p, Link);
while (!TAILQ_EMPTY(&SubCase_p->SubCasesList))
SubCase_p = TAILQ_FIRST(&SubCase_p->SubCasesList);
CleanupReturn:
Iterator_p->CurrentSubCase_p = SubCase_p;
return SubCase_p;
}
void Do_ADBG_BeginSubCase(
ADBG_Case_t *const Case_p,
const char *const FormatTitle_p, ...
)
{
ADBG_SubCase_t *SubCase_p = NULL;
if (Case_p == NULL) {
Do_ADBG_Log("Do_ADBG_BeginSubCase: NULL Case_p!");
return;
}
if (FormatTitle_p == NULL) {
Do_ADBG_Log("Do_ADBG_BeginSubCase: NULL FormatTitle_p!");
return;
}
va_list ArgList;
char Title[80] = { };
va_start(ArgList, FormatTitle_p);
vsnprintf(Title, sizeof(Title), FormatTitle_p, ArgList);
va_end(ArgList);
SubCase_p = ADBG_Case_CreateSubCase(Case_p, Title);
if (SubCase_p == NULL) {
Do_ADBG_Log("Do_ADBG_BeginSubCase: HEAP_ALLOC failed");
return;
}
if (ADBG_Case_SubCaseIsMain(Case_p, SubCase_p)) {
/* Main SubCase */
Do_ADBG_Log(" ");
Do_ADBG_Log("* %s %s", SubCase_p->TestID_p, SubCase_p->Title_p);
} else {
Do_ADBG_Log("o %s %s", SubCase_p->TestID_p, SubCase_p->Title_p);
}
}
void Do_ADBG_EndSubCase(
ADBG_Case_t *const Case_p,
const char *const FormatTitle_p, ...
)
{
va_list ArgList;
char Title[80] = { };
ADBG_SubCase_t *SubCase_p = NULL;
if (Case_p == NULL) {
Do_ADBG_Log("Do_ADBG_EndSubCase: NULL Case_p!");
return;
}
if (FormatTitle_p == NULL) {
strcpy(Title, "NULL");
} else {
va_start(ArgList, FormatTitle_p);
vsnprintf(Title, sizeof(Title), FormatTitle_p, ArgList);
va_end(ArgList);
}
SubCase_p = Case_p->CurrentSubCase_p;
if (SubCase_p == NULL) {
Do_ADBG_Log("Do_ADBG_EndSubCase: "
"Have no active SubCase, bailing out for title \"%s\"",
Title);
return;
}
if (FormatTitle_p != NULL && strcmp(SubCase_p->Title_p, Title) != 0) {
Do_ADBG_Log("Do_ADBG_EndSubCase: "
"Active SubCase \"%s\" doesn't match supplied title \"%s\"",
SubCase_p->Title_p, Title);
return;
}
if (ADBG_Case_SubCaseIsMain(Case_p, SubCase_p)) {
if (FormatTitle_p == NULL) {
/* To end the main subcase we require
a matching title */
Do_ADBG_Log("Do_ADBG_EndSubCase: "
"The main SubCase \"%s\" doesn't match supplied title \"%s\"",
SubCase_p->Title_p, Title);
return;
}
/*
* Ending the main subcase
* make a complete copy of the aggregated result.
*/
Case_p->Result = SubCase_p->Result;
} else {
/*
* Ending a subcase,
* Aggregate results to parent.
*/
ADBG_SubCase_t *Parent_p = SubCase_p->Parent_p;
Parent_p->Result.NumSubTests += SubCase_p->Result.NumTests +
SubCase_p->Result.NumSubTests;
Parent_p->Result.NumFailedSubTests +=
SubCase_p->Result.NumFailedTests +
SubCase_p->Result.
NumFailedSubTests;
Parent_p->Result.AbortTestSuite =
SubCase_p->Result.AbortTestSuite;
if (SubCase_p->Result.NumTests > 0 ||
SubCase_p->Result.NumSubTests > 0)
Parent_p->Result.NumFailedSubCases++;
}
/* Print a summary of the subcase result */
if (SubCase_p->Result.NumFailedTests > 0 ||
SubCase_p->Result.NumFailedSubTests > 0) {
Do_ADBG_Log(" %s FAILED", SubCase_p->TestID_p);
} else {
Do_ADBG_Log(" %s OK", SubCase_p->TestID_p);
}
/* Update current subcase to be the parent of this subcase */
Case_p->CurrentSubCase_p =
ADBG_Case_GetParentSubCase(Case_p, SubCase_p);
}
/*************************************************************************
* 6. Definition of internal functions
*************************************************************************/
static ADBG_SubCase_t *ADBG_Case_CreateSubCase(
ADBG_Case_t *Case_p,
const char *const Title_p
)
{
ADBG_SubCase_t *SubCase_p = NULL;
SubCase_p = calloc(1, sizeof(*SubCase_p));
if (SubCase_p == NULL)
goto ErrorReturn;
TAILQ_INIT(&SubCase_p->SubCasesList);
SubCase_p->Title_p = strdup(Title_p);
if (SubCase_p->Title_p == NULL)
goto ErrorReturn;
/* Set parent pointer needed "early" below. */
SubCase_p->Parent_p = Case_p->CurrentSubCase_p;
if (SubCase_p->Parent_p == NULL) {
/* Main SubCase */
SubCase_p->TestID_p = strdup(ADBG_Case_GetTestID(Case_p));
if (SubCase_p->TestID_p == NULL)
goto ErrorReturn;
Case_p->FirstSubCase_p = SubCase_p;
} else {
ADBG_SubCase_t *Parent_p = SubCase_p->Parent_p;
char PrefixTitle[80] = { };
/* Update parent SubCase */
Parent_p->Result.NumSubCases++;
snprintf(PrefixTitle, sizeof(PrefixTitle), "%s.%d",
Parent_p->TestID_p, Parent_p->Result.NumSubCases);
SubCase_p->TestID_p = strdup(PrefixTitle);
if (SubCase_p->TestID_p == NULL)
goto ErrorReturn;
TAILQ_INSERT_TAIL(&Parent_p->SubCasesList, SubCase_p, Link);
}
Case_p->CurrentSubCase_p = SubCase_p;
return SubCase_p;
ErrorReturn:
ADBG_SubCase_Delete(SubCase_p);
return NULL;
}
static void ADBG_SubCase_Delete(
ADBG_SubCase_t *SubCase_p
)
{
if (SubCase_p != NULL) {
/*
* Note that Util_ListDestroy() checks
* if SubCase_p->SubCasesList_p
* is NULL.
*/
while (true) {
ADBG_SubCase_t *s =
TAILQ_FIRST(&SubCase_p->SubCasesList);
if (s == NULL)
break;
TAILQ_REMOVE(&SubCase_p->SubCasesList, s, Link);
ADBG_SubCase_Delete(s);
}
free(SubCase_p->TestID_p);
free(SubCase_p->Title_p);
free(SubCase_p);
}
}
ADBG_SubCase_t *ADBG_Case_GetParentSubCase(
ADBG_Case_t *Case_p,
ADBG_SubCase_t *SubCase_p
)
{
IDENTIFIER_NOT_USED(Case_p)
IDENTIFIER_NOT_USED(SubCase_p)
return SubCase_p->Parent_p;
}
static const char *ADBG_Case_GetTestID(ADBG_Case_t *Case_p)
{
IDENTIFIER_NOT_USED(Case_p)
return Case_p->case_def->TestID_p;
}

View File

@@ -0,0 +1,50 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
*/
/*************************************************************************
* 1. Includes
*************************************************************************/
#include "adbg_int.h"
/*************************************************************************
* 2. Definition of external constants and variables
*************************************************************************/
ADBG_ENUM_TABLE_DEFINE_BEGIN(Boolean)
ADBG_ENUM_TABLE_ENTRY(false),
ADBG_ENUM_TABLE_ENTRY(true)
ADBG_ENUM_TABLE_DEFINE_END(Boolean);
/*************************************************************************
* 3. File scope types, constants and variables
*************************************************************************/
/*************************************************************************
* 4. Declaration of file local functions
*************************************************************************/
/*************************************************************************
* 5. Definition of external functions
*************************************************************************/
const char *Do_ADBG_GetEnumName(
const int Value,
const ADBG_EnumTable_t *const EnumTable_p
)
{
const ADBG_EnumTable_t *Entry_p = EnumTable_p;
for (; Entry_p->Name_p != NULL; Entry_p++) {
if (Entry_p->Value == Value)
return Entry_p->Name_p;
}
return "<unresolvable enum name>";
}
/*************************************************************************
* 6. Definition of internal functions
*************************************************************************/

View File

@@ -0,0 +1,282 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
*/
/*************************************************************************
* 1. Includes
************************************************************************/
#include "adbg_int.h"
/*************************************************************************
* 2. Definition of external constants and variables
************************************************************************/
/*************************************************************************
* 3. File scope types, constants and variables
************************************************************************/
/*************************************************************************
* 4. Declaration of file local functions
************************************************************************/
static bool ADBG_AssertHelper(ADBG_Case_t *const Case_p,
const char *const FileName_p,
const int LineNumber, const bool ExpressionOK);
static const char *ADBG_GetFileBase(const char *const FileName_p);
/*************************************************************************
* 5. Definition of external functions
************************************************************************/
bool Do_ADBG_Expect(
ADBG_Case_t *const Case_p,
const char *const FileName_p,
const int LineNumber,
const int Expected,
const int Got,
const char *const GotVarName_p,
const ADBG_EnumTable_t *const EnumTable_p
)
{
if (ADBG_AssertHelper(Case_p, FileName_p, LineNumber, Expected == Got))
return true;
if (EnumTable_p != NULL) {
Do_ADBG_Log("%s:%d: %s has an unexpected value: 0x%x = %s, "
"expected 0x%x = %s",
ADBG_GetFileBase(FileName_p), LineNumber,
GotVarName_p,
Got, Do_ADBG_GetEnumName(Got, EnumTable_p),
Expected,
Do_ADBG_GetEnumName(Expected, EnumTable_p));
} else {
Do_ADBG_Log(
"%s:%d: %s has an unexpected value: 0x%x, expected 0x%x",
ADBG_GetFileBase(FileName_p), LineNumber,
GotVarName_p, Got, Expected);
}
return false;
}
bool Do_ADBG_ExpectNot(
ADBG_Case_t *const Case_p,
const char *const FileName_p,
const int LineNumber,
const int NotExpected,
const int Got,
const char *const GotVarName_p,
const ADBG_EnumTable_t *const EnumTable_p
)
{
if (ADBG_AssertHelper(Case_p, FileName_p, LineNumber, NotExpected !=
Got))
return true;
if (EnumTable_p != NULL) {
Do_ADBG_Log("%s:%d: %s has an unexpected value: 0x%x = %s, "
"expected 0x%x = %s",
ADBG_GetFileBase(FileName_p), LineNumber,
GotVarName_p,
Got, Do_ADBG_GetEnumName(Got, EnumTable_p),
NotExpected,
Do_ADBG_GetEnumName(NotExpected, EnumTable_p));
} else {
Do_ADBG_Log(
"%s:%d: %s has an unexpected value: 0x%zu, expected 0x%zu",
ADBG_GetFileBase(FileName_p), LineNumber,
GotVarName_p, (size_t)Got, (size_t)NotExpected);
}
return false;
}
bool Do_ADBG_ExpectBuffer(
ADBG_Case_t *const Case_p,
const char *const FileName_p,
const int LineNumber,
const void *const ExpectedBuffer_p,
const size_t ExpectedBufferLength,
const char *const GotBufferName_p,
const void *const GotBuffer_p,
const char *const GotBufferLengthName_p,
const size_t GotBufferLength
)
{
if (!ADBG_AssertHelper(Case_p, FileName_p, LineNumber,
ExpectedBufferLength == GotBufferLength)) {
Do_ADBG_Log(
"%s:%d: %s has an unexpected value: %zu, expected %zu",
ADBG_GetFileBase(
FileName_p), LineNumber,
GotBufferLengthName_p, GotBufferLength,
ExpectedBufferLength);
return false;
}
if (!ADBG_AssertHelper(Case_p, FileName_p, LineNumber,
memcmp(ExpectedBuffer_p, GotBuffer_p,
ExpectedBufferLength) == 0)) {
Do_ADBG_Log("%s:%d: %s has an unexpected content:",
ADBG_GetFileBase(
FileName_p), LineNumber, GotBufferName_p);
Do_ADBG_Log("Got");
Do_ADBG_HexLog(GotBuffer_p, GotBufferLength, 16);
Do_ADBG_Log("Expected");
Do_ADBG_HexLog(ExpectedBuffer_p, ExpectedBufferLength, 16);
return false;
}
return true;
}
bool Do_ADBG_ExpectPointer(
ADBG_Case_t *const Case_p,
const char *const FileName_p,
const int LineNumber,
const void *Expected_p,
const void *Got_p,
const char *const GotVarName_p
)
{
if (ADBG_AssertHelper(Case_p, FileName_p, LineNumber, Expected_p ==
Got_p))
return true;
Do_ADBG_Log("%s:%d: %s has an unexpected value: %p, expected %p",
ADBG_GetFileBase(FileName_p), LineNumber,
GotVarName_p, Got_p, Expected_p);
return false;
}
bool Do_ADBG_ExpectPointerNotNULL(
ADBG_Case_t *const Case_p,
const char *const FileName_p,
const int LineNumber,
const void *Got_p,
const char *const GotVarName_p
)
{
if (ADBG_AssertHelper(Case_p, FileName_p, LineNumber, Got_p != NULL))
return true;
Do_ADBG_Log("%s:%d: %s has an unexpected value: %p, expected not NULL",
ADBG_GetFileBase(FileName_p), LineNumber,
GotVarName_p, Got_p);
return false;
}
bool Do_ADBG_ExpectCompareSigned(
ADBG_Case_t *const Case_p,
const char *const FileName_p,
const int LineNumber,
const long Value1,
const long Value2,
const bool Result,
const char *const Value1Str_p,
const char *const ComparStr_p,
const char *const Value2Str_p
)
{
if (!ADBG_AssertHelper(Case_p, FileName_p, LineNumber, Result)) {
Do_ADBG_Log(
"%s:%d: Expression \"%s %s %s\" (%ld %s %ld) is false",
ADBG_GetFileBase(FileName_p), LineNumber,
Value1Str_p, ComparStr_p, Value2Str_p,
Value1, ComparStr_p, Value2);
}
return Result;
}
bool Do_ADBG_ExpectCompareUnsigned(
ADBG_Case_t *const Case_p,
const char *const FileName_p,
const int LineNumber,
const unsigned long Value1,
const unsigned long Value2,
const bool Result,
const char *const Value1Str_p,
const char *const ComparStr_p,
const char *const Value2Str_p
)
{
if (!ADBG_AssertHelper(Case_p, FileName_p, LineNumber, Result)) {
Do_ADBG_Log(
"%s:%d: Expression \"%s %s %s\" (%lu %s %lu) is false",
ADBG_GetFileBase(FileName_p), LineNumber,
Value1Str_p, ComparStr_p, Value2Str_p,
Value1, ComparStr_p, Value2);
}
return Result;
}
bool Do_ADBG_ExpectComparePointer(
ADBG_Case_t *const Case_p,
const char *const FileName_p,
const int LineNumber,
const void *const Value1_p,
const void *const Value2_p,
const bool Result,
const char *const Value1Str_p,
const char *const ComparStr_p,
const char *const Value2Str_p
)
{
if (!ADBG_AssertHelper(Case_p, FileName_p, LineNumber, Result)) {
Do_ADBG_Log(
"%s:%d: Expression \"%s %s %s\" (%p %s %p) is false",
ADBG_GetFileBase(FileName_p), LineNumber,
Value1Str_p, ComparStr_p, Value2Str_p,
Value1_p, ComparStr_p, Value2_p);
}
return Result;
}
/*************************************************************************
* 6. Definitions of internal functions
************************************************************************/
static bool ADBG_AssertHelper(
ADBG_Case_t *const Case_p,
const char *const FileName_p,
const int LineNumber,
const bool ExpressionOK
)
{
ADBG_SubCase_t *SubCase_p = Case_p->CurrentSubCase_p;
IDENTIFIER_NOT_USED(Case_p)
SubCase_p->Result.NumTests++;
if (!ExpressionOK) {
SubCase_p->Result.NumFailedTests++;
if (SubCase_p->Result.FirstFailedRow == 0) {
SubCase_p->Result.FirstFailedRow = LineNumber;
SubCase_p->Result.FirstFailedFile_p = ADBG_GetFileBase(
FileName_p);
}
}
return ExpressionOK;
}
static const char *ADBG_GetFileBase(const char *const FileName_p)
{
const char *Ch_p = FileName_p;
const char *Base_p = FileName_p;
while (*Ch_p != '\0') {
if (*Ch_p == '\\')
Base_p = Ch_p + 1;
Ch_p++;
}
return Base_p;
}

View File

@@ -0,0 +1,76 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
*/
#ifndef __ADBG_INT_H
#define __ADBG_INT_H
#include <adbg.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/param.h>
#include <sys/queue.h>
#include "security_utils_hex.h"
typedef struct ADBG_Result {
int NumTests;
int NumFailedTests;
int NumSubTests;
int NumFailedSubTests;
int NumSubCases;
int NumFailedSubCases;
int FirstFailedRow;
char const *FirstFailedFile_p;
bool AbortTestSuite;
} ADBG_Result_t;
TAILQ_HEAD(ADBG_SubCaseHead, ADBG_SubCase);
typedef struct ADBG_SubCaseHead ADBG_SubCaseHead_t;
typedef struct ADBG_SubCase ADBG_SubCase_t;
struct ADBG_SubCase {
char *TestID_p;
char *Title_p;
ADBG_Result_t Result;
ADBG_SubCase_t *Parent_p; /* The SubCase where this SubCase was added */
ADBG_SubCaseHead_t SubCasesList; /* SubCases created in this SubCase*/
TAILQ_ENTRY(ADBG_SubCase) Link;
};
/* Typedefed in t_adbg.h */
struct ADBG_Case {
const struct adbg_case_def *case_def;
ADBG_SubCase_t *CurrentSubCase_p;
ADBG_SubCase_t *FirstSubCase_p;
ADBG_Result_t Result;
TAILQ_ENTRY(ADBG_Case) Link;
};
typedef struct {
ADBG_Case_t *Case_p;
ADBG_SubCase_t *CurrentSubCase_p;
} ADBG_SubCase_Iterator_t;
bool ADBG_Case_SubCaseIsMain(const ADBG_Case_t *const Case_p,
const ADBG_SubCase_t *const SubCase_p);
void ADBG_Case_IterateSubCase(ADBG_Case_t *Case_p,
ADBG_SubCase_Iterator_t *Iterator_p);
ADBG_SubCase_t *ADBG_Case_NextSubCase(ADBG_SubCase_Iterator_t *Iterator_p);
ADBG_Case_t *ADBG_Case_New(const struct adbg_case_def *case_def);
void ADBG_Case_Delete(ADBG_Case_t *Case_p);
bool ADBG_TestIDMatches(const char *const TestID_p,
const char *const Argument_p);
#define IDENTIFIER_NOT_USED(x) { if (sizeof(&x)) {} }
#endif /* __ADBG_INT_H */

View File

@@ -0,0 +1,80 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
*/
#include "adbg_int.h"
#include <stdlib.h>
#include <ctype.h>
/*************************************************************************
* 2. Definition of external constants and variables
************************************************************************/
/*************************************************************************
* 3. File scope types, constants and variables
************************************************************************/
/*************************************************************************
* 4. Declaration of file local functions
************************************************************************/
/*************************************************************************
* 5. Definition of external functions
************************************************************************/
/******************************************************************************/
/*! @fn void Do_ADBG_Log( void* This_p, char* Format, ...)
* @brief
* @param [in] This_p
* @param [in] Format
* @param [in] ...
* @return void
*/
/******************************************************************************/
void Do_ADBG_Log(const char *const Format, ...)
{
va_list ap;
va_start(ap, Format);
vprintf(Format, ap);
printf("\n");
va_end(ap);
fflush(stdout);
}
void Do_ADBG_HexLog(
const void *const Buf_p,
const size_t Size,
const size_t Cols
)
{
const uint8_t *Data_p = Buf_p;
size_t n = 0;
for (n = 0; n < Size; n += Cols) {
char HexBuffer[ADBG_STRING_LENGTH_MAX];
char AsciiBuffer[ADBG_STRING_LENGTH_MAX / 3];
size_t m, NumCols;
(void)SecUtil_BufferToHex(Data_p + n, MIN(Cols, Size - n), NULL,
HexBuffer, sizeof(HexBuffer));
NumCols = MIN(MIN(Cols, Size - n), sizeof(AsciiBuffer) - 1);
for (m = 0; m < NumCols; m++) {
int ch = Data_p[n + m];
if (isprint(ch))
AsciiBuffer[m] = (char)ch;
else
AsciiBuffer[m] = '.';
}
AsciiBuffer[m] = '\0';
Do_ADBG_Log(" %-*s %s", (int)Cols * 3, HexBuffer, AsciiBuffer);
}
}
/*************************************************************************
* 6. Definitions of internal functions
************************************************************************/

View File

@@ -0,0 +1,267 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
*/
/*************************************************************************
* 1. Includes
************************************************************************/
#include "adbg_int.h"
/*************************************************************************
* 2. Definition of external constants and variables
************************************************************************/
#ifndef TAILQ_CONCAT
#define TAILQ_CONCAT(head1, head2, field) do { \
if (!TAILQ_EMPTY(head2)) { \
*(head1)->tqh_last = (head2)->tqh_first; \
(head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \
(head1)->tqh_last = (head2)->tqh_last; \
TAILQ_INIT((head2)); \
} \
} while (/*CONSTCOND*/0)
#endif
/*************************************************************************
* 3. File scope types, constants and variables
************************************************************************/
TAILQ_HEAD(ADBG_CaseHead, ADBG_Case);
typedef struct ADBG_CaseHead ADBG_CaseHead_t;
typedef struct ADBG_Runner {
ADBG_Result_t Result;
const ADBG_Suite_Definition_t *Suite_p;
ADBG_CaseHead_t CasesList;
} ADBG_Runner_t;
/*************************************************************************
* 4. Declaration of file local functions
************************************************************************/
static int ADBG_RunSuite(ADBG_Runner_t *Runner_p, int argc, char *argv[]);
/*************************************************************************
* 5. Definition of external functions
************************************************************************/
int Do_ADBG_RunSuite(
const ADBG_Suite_Definition_t *Suite_p,
int argc,
char *argv[]
)
{
ADBG_Runner_t *Runner_p = NULL;
Runner_p = calloc(1, sizeof(*Runner_p));
if (Runner_p == NULL) {
Do_ADBG_Log("calloc failed for Suite %s!",
Suite_p->SuiteID_p);
return -1;
}
TAILQ_INIT(&Runner_p->CasesList);
Runner_p->Suite_p = Suite_p;
int ret = ADBG_RunSuite(Runner_p, argc, argv);
free(Runner_p);
return ret;
}
int Do_ADBG_AppendToSuite(
ADBG_Suite_Definition_t *Dest_p,
ADBG_Suite_Definition_t *Source_p
)
{
char *p = NULL;
size_t size = 0;
/* Append name of 'Source_p' to name of 'Dest_p' */
size = strlen(Source_p->SuiteID_p);
if (Dest_p->SuiteID_p) {
size += strlen(Dest_p->SuiteID_p);
size += 1; /* '+' */
}
size += 1; /* '\0' */
p = malloc(size);
if (!p) {
fprintf(stderr, "malloc failed\n");
return -1;
}
if (Dest_p->SuiteID_p)
snprintf(p, size, "%s+%s", Dest_p->SuiteID_p,
Source_p->SuiteID_p);
else
snprintf(p, size, "%s", Source_p->SuiteID_p);
free((void *)Dest_p->SuiteID_p);
Dest_p->SuiteID_p = p;
TAILQ_CONCAT(&Dest_p->cases, &Source_p->cases, link);
return 0;
}
/*************************************************************************
* 6. Definitions of internal functions
************************************************************************/
static int ADBG_RunSuite(
ADBG_Runner_t *Runner_p,
int argc,
char *argv[]
)
{
ADBG_Case_t *Case_p = NULL;
size_t NumSkippedTestCases = 0;
int failed_test = 0;
struct adbg_case_def *case_def = NULL;
Do_ADBG_Log("######################################################");
Do_ADBG_Log("#");
Do_ADBG_Log("# %s", Runner_p->Suite_p->SuiteID_p);
Do_ADBG_Log("#");
Do_ADBG_Log("######################################################");
TAILQ_FOREACH(case_def, &Runner_p->Suite_p->cases, link) {
/* Default match if by default all tests are to be run */
bool HaveMatch = !argc || !strcmp(argv[0], "-x");
int i = 0;
for (i = 0; i < argc; i++) {
if (!strcmp(argv[i], "-x")) {
i++;
if (i >= argc) {
Do_ADBG_Log("Error: -x <test-id>");
return 1;
}
if (strstr(case_def->TestID_p, argv[i]))
HaveMatch = false;
} else {
if (strstr(case_def->TestID_p, argv[i]))
HaveMatch = true;
}
}
if (!HaveMatch) {
NumSkippedTestCases++;
continue;
}
Case_p = ADBG_Case_New(case_def);
if (Case_p == NULL) {
Do_ADBG_Log("HEAP_ALLOC failed for Case %s!",
case_def->TestID_p);
Runner_p->Result.AbortTestSuite = 1;
break;
}
TAILQ_INSERT_TAIL(&Runner_p->CasesList, Case_p, Link);
/* Start the parent test case */
Do_ADBG_BeginSubCase(Case_p, "%s", case_def->Title_p);
case_def->Run_fp(Case_p);
/* End abondoned subcases */
while (Case_p->CurrentSubCase_p != Case_p->FirstSubCase_p)
Do_ADBG_EndSubCase(Case_p, NULL);
/* End the parent test case */
Do_ADBG_EndSubCase(Case_p, "%s", case_def->Title_p);
/* Sum up the errors */
Runner_p->Result.NumTests += Case_p->Result.NumTests +
Case_p->Result.NumSubTests;
Runner_p->Result.NumFailedTests +=
Case_p->Result.NumFailedTests +
Case_p->Result.
NumFailedSubTests;
Runner_p->Result.NumSubCases++;
if (Case_p->Result.NumFailedTests +
Case_p->Result.NumFailedSubTests > 0)
Runner_p->Result.NumFailedSubCases++;
Runner_p->Result.AbortTestSuite = Case_p->Result.AbortTestSuite;
if (Runner_p->Result.AbortTestSuite) {
Do_ADBG_Log("Test suite aborted by %s!",
case_def->TestID_p);
break;
}
}
Do_ADBG_Log("+-----------------------------------------------------");
if (argc > 0) {
bool test_exclusion = false;
int i = 0;
for (i = 0; i < argc; i++) {
if (!strcmp(argv[i], "-x")) {
test_exclusion = true;
continue;
}
Do_ADBG_Log(
"Result of testsuite %s filtered by \"%s%s\":",
Runner_p->Suite_p->SuiteID_p,
test_exclusion ? "-x " : "", argv[i]);
test_exclusion = false;
}
} else {
Do_ADBG_Log("Result of testsuite %s:",
Runner_p->Suite_p->SuiteID_p);
}
TAILQ_FOREACH(Case_p, &Runner_p->CasesList, Link) {
ADBG_SubCase_Iterator_t Iterator;
ADBG_SubCase_t *SubCase_p;
ADBG_Case_IterateSubCase(Case_p, &Iterator);
while ((SubCase_p = ADBG_Case_NextSubCase(&Iterator)) != NULL) {
if (SubCase_p->Result.NumFailedTests +
SubCase_p->Result.NumFailedSubTests > 0) {
if (SubCase_p->Result.FirstFailedFile_p !=
NULL) {
Do_ADBG_Log(
"%s FAILED first error at %s:%d",
SubCase_p->TestID_p,
SubCase_p->
Result.FirstFailedFile_p,
SubCase_p->
Result.FirstFailedRow);
} else {
Do_ADBG_Log("%s FAILED",
SubCase_p->TestID_p);
}
} else if (ADBG_Case_SubCaseIsMain(Case_p, SubCase_p)) {
/* A level one test case is displayed
if successfull too */
Do_ADBG_Log("%s OK", SubCase_p->TestID_p);
}
}
}
Do_ADBG_Log("+-----------------------------------------------------");
if (Runner_p->Result.AbortTestSuite)
Do_ADBG_Log("Test suite was ABORTED");
Do_ADBG_Log("%d subtest%s of which %d failed",
Runner_p->Result.NumTests,
Runner_p->Result.NumTests != 1 ? "s" : "",
Runner_p->Result.NumFailedTests);
Do_ADBG_Log("%d test case%s of which %d failed",
Runner_p->Result.NumSubCases,
Runner_p->Result.NumSubCases != 1 ? "s" : "",
Runner_p->Result.NumFailedSubCases);
Do_ADBG_Log("%zu test case%s skipped",
NumSkippedTestCases,
NumSkippedTestCases != 1 ? "s were" : " was");
failed_test = Runner_p->Result.NumFailedSubCases;
while (true) {
Case_p = TAILQ_FIRST(&Runner_p->CasesList);
if (Case_p == NULL)
break;
TAILQ_REMOVE(&Runner_p->CasesList, Case_p, Link);
ADBG_Case_Delete(Case_p);
}
return failed_test;
}

View File

@@ -0,0 +1,239 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
*/
/*************************************************************************
* 1. Includes
*************************************************************************/
#include <sys/param.h>
#include <stdint.h>
#include <stdint.h>
#include <string.h>
#include "security_utils_hex.h"
#ifndef MAX
#define MAX(a, b) ((a) > (b) ? (a) : (b))
#endif
#ifndef MIN
#define MIN(a, b) ((a) < (b) ? (a) : (b))
#endif
/*************************************************************************
* 2. Definition of external constants and variables
*************************************************************************/
/*************************************************************************
* 3. File scope types, constants and variables
*************************************************************************/
static const char SecUtil_HexChars[] = {
'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
};
/*************************************************************************
* 4. Declaration of file local functions
*************************************************************************/
/*************************************************************************
* 5. Definition of external functions
*************************************************************************/
#if 0
void SecBase_HexPrintBuffer(
const char *Prefix_p,
const char *Postfix_p,
const char *BufferName_p,
const void *Buffer_p,
size_t BufferLength
)
{
char LineBuf[67];
size_t LinePos = 0;
const uint8 *Data_p = Buffer_p;
size_t n;
char EmptyString[] = "";
if (Prefix_p == NULL)
Prefix_p = EmptyString;
if (Postfix_p == NULL)
Postfix_p = EmptyString;
if (BufferName_p != NULL) {
DELAY_MS(5);
printf("%s%s: Size: %d%s", Prefix_p, BufferName_p, BufferLength,
Postfix_p);
}
/* Initialize the line buffer for a new line */
SEC_MEM_SET(LineBuf, ' ', sizeof(LineBuf));
LineBuf[sizeof(LineBuf) - 1] = '\0';
LinePos = 0;
for (n = 0; n < BufferLength; n++) {
char Separator;
char PrintableChar;
if (((n + 1) % 4) == 0)
Separator = ' ';
else
Separator = ':';
if (isprint(Data_p[n]))
PrintableChar = (char)Data_p[n];
else
PrintableChar = '.';
LineBuf[LinePos * 3 + 0] = SecBase_HexChars[Data_p[n] >> 4];
LineBuf[LinePos * 3 + 1] = SecBase_HexChars[Data_p[n] & 0x0F];
LineBuf[LinePos * 3 + 2] = Separator;
LineBuf[50 + LinePos] = PrintableChar;
LinePos++;
if (LinePos == 16) {
DELAY_MS(5);
printf("%s%s%s", Prefix_p, LineBuf, Postfix_p);
/* Initialize the line buffer for a new line */
SEC_MEM_SET(LineBuf, ' ', sizeof(LineBuf));
LineBuf[sizeof(LineBuf) - 1] = '\0';
LinePos = 0;
}
}
if (LinePos != 0) {
DELAY_MS(5);
printf("%s%s%s", Prefix_p, LineBuf, Postfix_p);
}
(void)fflush(stdout);
}
#endif
#if 0
void SecUtil_CHexPrintBuffer(
const char *Prefix_p,
const char *Postfix,
const void *Buffer_p,
size_t BufferLength
)
{
char LineBuf[84];
const uint8 *Data_p = Buffer_p;
size_t n;
char EmptyString[] = "";
static const SecUtil_HexFormat_t HexFormat = { "0x", ", ", ", " };
if (Prefix_p == NULL)
Prefix_p = EmptyString;
if (Postfix == NULL)
Postfix = EmptyString;
for (n = 0; n < BufferLength; n += 16) {
(void)SecUtil_BufferToHex(Data_p + n, MIN(16, BufferLength - n),
&HexFormat,
LineBuf, sizeof(LineBuf));
DELAY_MS(5);
printf("%s%s%s", Prefix_p, LineBuf, Postfix);
}
}
#endif
size_t SecUtil_BufferToHex(
const void *const Buffer_p,
size_t BufferLength,
const SecUtil_HexFormat_t *const HexFormat_p,
char *const Destination_p,
const size_t DestinationLength
)
{
const uint8_t *Data_p = Buffer_p;
size_t UsedDestLength = 0;
size_t n = 0;
const char *ByteSeparator_p = NULL;
const char *GroupSeparator_p = NULL;
const char *BytePrefix_p = NULL;
size_t BytePrefixLength = 0;
if (DestinationLength > 1)
Destination_p[0] = '\0';
UsedDestLength = 1;
if (HexFormat_p != NULL) {
BytePrefix_p = HexFormat_p->BytePrefix_p;
ByteSeparator_p = HexFormat_p->ByteSeparator_p;
GroupSeparator_p = HexFormat_p->GroupSeparator_p;
}
if (BytePrefix_p == NULL)
BytePrefix_p = "";
BytePrefixLength = strlen(BytePrefix_p);
if (ByteSeparator_p == NULL)
ByteSeparator_p = ":";
if (GroupSeparator_p == NULL)
GroupSeparator_p = " ";
/*
* This for loop is unnecessarily complicated due to
* the absense of both snprintf and strlcat
*/
for (n = 0; n < BufferLength; n++) {
const char *Separator_p = NULL;
size_t SeparatorLength = 0;
/* Establish separator for this byte and the next */
if (n == BufferLength - 1)
Separator_p = "";
else if ((n + 1) % 4 == 0)
Separator_p = GroupSeparator_p;
else
Separator_p = ByteSeparator_p;
SeparatorLength = strlen(Separator_p);
/* Insert the Byte prefix */
if (UsedDestLength < DestinationLength) {
size_t CopyLength = 0;
CopyLength = MIN(BytePrefixLength,
DestinationLength - UsedDestLength);
memcpy(Destination_p + UsedDestLength - 1, BytePrefix_p,
CopyLength);
Destination_p[UsedDestLength - 1 + CopyLength] = '\0';
}
UsedDestLength += BytePrefixLength;
/* Insert the first nibble of the ASCII hexadecimal byte */
if (UsedDestLength < DestinationLength) {
Destination_p[UsedDestLength -
1] = SecUtil_HexChars[Data_p[n] >> 4];
Destination_p[UsedDestLength] = '\0';
}
UsedDestLength++;
/* Insert the second nibble of the ASCII hexadecimal byte */
if (UsedDestLength < DestinationLength) {
Destination_p[UsedDestLength -
1] = SecUtil_HexChars[Data_p[n] & 0x0F];
Destination_p[UsedDestLength] = '\0';
}
UsedDestLength++;
/* Insert the separator */
if (UsedDestLength < DestinationLength) {
size_t CopyLength = 0;
CopyLength = MIN(SeparatorLength,
DestinationLength - UsedDestLength);
memcpy(Destination_p + UsedDestLength - 1, Separator_p,
CopyLength);
Destination_p[UsedDestLength - 1 + CopyLength] = '\0';
}
UsedDestLength += SeparatorLength;
}
return UsedDestLength;
}
/*************************************************************************
* 6. Definition of internal functions
*************************************************************************/

View File

@@ -0,0 +1,118 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
*/
#ifndef INCLUSION_GUARD_UTILS_HEX_H
#define INCLUSION_GUARD_UTILS_HEX_H
/*************************************************************************
* 1. Includes
*************************************************************************/
/*************************************************************************
* 2. Types, constants and external variables
*************************************************************************/
#if 0 /* Should format into a buffer instead */
/**
**************************************************************************
* Prints data hexadecimally to stdout
*
* Each line of binary data is printed as 66 characters on the format
* shown below:
* XX:XX:XX:XX XX:XX:XX:XX XX:XX:XX:XX XX:XX:XX:XX xxxxxxxxxxxxxxxx
*
* @param [in] Prefix_p String printed first each line, may be NULL
* to indicate the empty string
* @param [in] Postfix_p String printed last each line, may be NULL
* to indicate the empty string
* @param [in] BufferName_p Name of the buffer, if != NULL the name of the
* buffer is printed together with the length of
* the buffer before the data is printed
* @param [in] Buffer_p Pointer to a buffer holding the data
* @param [in] BufferLength Length of the buffer above
*
* @sigbased No
* @waitmode Wait mode
**************************************************************************/
void SecUtil_HexPrintBuffer(const char *Prefix_p, const char *Postfix_p,
const char *BufferName_p, const void *Buffer_p,
size_t BufferLength);
#endif
#if 0
/**
**************************************************************************
* Prints data hexadecimally in a format suitable for initialization of
* an array in c.
*
* 0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,
* 0xXX,0xXX,
*
* @param [in] Prefix_p String printed first each line, may be NULL
* to indicate the empty string
* @param [in] Postfix_p String printed last each line, may be NULL
* to indicate the empty string
* @param [in] Buffer_p Pointer to a buffer holding the data
* @param [in] BufferLength Length of the buffer above
*
* @sigbased No
* @waitmode Wait mode
**************************************************************************/
void SecUtil_CHexPrintBuffer(const char *Prefix_p, const char *Postfix_p,
const void *Buffer_p, size_t BufferLength);
#endif
/**************************************************************************
* Specifies how hexadecial data should be formated
*
* @param BytePrefix_p ASCII string prefix for each hexadecimal
* byte printed (for example "0x"). If NULL
* nothing is inserted in front of a byte.
* @param ByteSeparator_p ASCII string to insert between each printed
* hexadecimal byte. If NULL a ":" is inserted
* between each hexadecial byte.
* @param GroupSeparator_p ASCII string to insert instead of
* ByteSeparator_p between each group
* of printed hexadecimal bytes. If NULL " "
* is used as group separator.
**************************************************************************/
typedef struct {
const char *BytePrefix_p;
const char *ByteSeparator_p;
const char *GroupSeparator_p;
} SecUtil_HexFormat_t;
/*************************************************************************
* 3. Functions
*************************************************************************/
/****************************************************************************
* Formats data hexadecimally into an NULL terminated ASCII string in
* the format below.
*
* 0xXX:0xXX:0xXX:0xXX 0xXX:0xXX:0xXX:0xXX
* 0xXX:0xXX:0xXX:0xXX 0xXX:0xXX:0xXX:0xXX
*
* The colons and spaces in the result can be cusomized with ByteSeparator_p
* and GroupSeparator_p respectivly.
*
* @param [in] Buffer_p Pointer to a buffer holding the data
* @param [in] BufferLength Length of the buffer above
* @param [in] HexFormat_p How the data should be formatted
* @param [in, out] Destination_p Output ASCII buffer
* @param [in] DestinationLength Length of output buffer
*
* @returns The size of a needed DestinationLength, if greater than supplied
* DestinationLength the result in Destination_p is truncated but
* still NULL terminated.
* @sigbased No
* @waitmode Wait mode
**************************************************************************/
size_t SecUtil_BufferToHex(const void *const Buffer_p, size_t BufferLength,
const SecUtil_HexFormat_t *const HexFormat_p,
char *const Destination_p,
const size_t DestinationLength);
#endif /*INCLUSION_GUARD_UTILS_HEX_H*/

View File

@@ -0,0 +1,689 @@
/* SPDX-License-Identifier: Apache-2.0 */
/*
* Copyright 2024 NXP
*/
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0xf9, 0x5f, 0xde, 0x4a, 0x75, 0x19, 0x13, 0x20, 0x2a, 0xee, 0xee, 0x32, 0xa0, 0xb5, 0x57, 0x53, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x00, 0x07, 0x8d, 0x10, 0x9d, 0x92, 0x14, 0x3f, 0xcd, 0x5d, 0xf5, 0x67, 0x21, 0xb8, 0x84, 0xfa, 0xc6, 0x4a, 0xc7, 0x76, 0x2c, 0xc0, 0x9e, 0xea, 0x2a, 0x3c, 0x68, 0xe9, 0x2a, 0x17, 0xbd, 0xb5, 0x75, 0xf8, 0x7b, 0xda, 0x18, 0xbe, 0x56, 0x4e, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x15, 0x2a, 0x65, 0x04, 0x5f, 0xe6, 0x74, 0xf9, 0x76, 0x27, 0x42, 0x7a, 0xf5, 0xbe, 0x22, 0xda, },
.tag_len = 16,
.line = __LINE__,
.id = 77
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0x7b, 0x95, 0xb8, 0xc3, 0x56, 0x81, 0x0a, 0x84, 0x71, 0x1d, 0x68, 0x15, 0x0a, 0x1b, 0x77, 0x50, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x84, 0xd4, 0xc9, 0xc0, 0x8b, 0x4f, 0x48, 0x28, 0x61, 0xe3, 0xa9, 0xc6, 0xc3, 0x5b, 0xc4, 0xd9, 0x1d, 0xf9, 0x27, 0x37, 0x45, 0x13, 0xbf, 0xd4, 0x9f, 0x43, 0x6b, 0xd7, 0x3f, 0x32, 0x52, 0x85, 0xda, 0xef, 0x4f, 0xf7, 0xe1, 0x3d, 0x46, 0xa6, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x21, 0x3a, 0x3c, 0xb9, 0x38, 0x55, 0xd1, 0x8e, 0x69, 0x33, 0x7e, 0xee, 0x66, 0xae, 0xec, 0x07, },
.tag_len = 16,
.line = __LINE__,
.id = 78
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0x1a, 0x55, 0x2e, 0x67, 0xcd, 0xc4, 0xdc, 0x1a, 0x33, 0xb8, 0x24, 0x87, 0x4e, 0xbf, 0x0b, 0xed, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x94, 0x8c, 0xa3, 0x7a, 0x8e, 0x66, 0x49, 0xe8, 0x8a, 0xef, 0xfb, 0x1c, 0x59, 0x8f, 0x36, 0x07, 0x00, 0x77, 0x02, 0x41, 0x7e, 0xa0, 0xe0, 0xbc, 0x3c, 0x60, 0xad, 0x5a, 0x94, 0x98, 0x86, 0xde, 0x96, 0x8c, 0xf5, 0x3e, 0xa6, 0x46, 0x2a, 0xed, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x99, 0xb3, 0x81, 0xbf, 0xa2, 0xaf, 0x97, 0x51, 0xc3, 0x9d, 0x1b, 0x6e, 0x86, 0xd1, 0xbe, 0x6a, },
.tag_len = 16,
.line = __LINE__,
.id = 79
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0xdd, 0x9d, 0x0b, 0x4a, 0x0c, 0x3d, 0x68, 0x15, 0x24, 0xbf, 0xfc, 0xa3, 0x1d, 0x90, 0x76, 0x61, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x64, 0xb1, 0x93, 0x14, 0xc3, 0x1a, 0xf4, 0x5a, 0xcc, 0xdf, 0x7e, 0x3c, 0x4d, 0xb7, 0x9f, 0x0d, 0x94, 0x8c, 0xa3, 0x7a, 0x8e, 0x66, 0x49, 0xe8, 0x8a, 0xef, 0xfb, 0x1c, 0x59, 0x8f, 0x36, 0x07, 0x00, 0x77, 0x02, 0x41, 0x7e, 0xa0, 0xe0, 0xbc, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x52, 0x81, 0xef, 0xc7, 0xf1, 0x3a, 0xc8, 0xe1, 0x4c, 0xcf, 0x5d, 0xca, 0x7b, 0xfb, 0xfd, 0xd1, },
.tag_len = 16,
.line = __LINE__,
.id = 80
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0x57, 0xc5, 0x64, 0x3c, 0x4e, 0x37, 0xb4, 0x04, 0x1d, 0xb7, 0x94, 0xcf, 0xe8, 0xe1, 0xf0, 0xf4, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x2b, 0xb6, 0x9c, 0x3e, 0x5d, 0x1f, 0x91, 0x81, 0x5c, 0x6b, 0x87, 0xa0, 0xd5, 0xbb, 0xea, 0x71, 0x64, 0xb1, 0x93, 0x14, 0xc3, 0x1a, 0xf4, 0x5a, 0xcc, 0xdf, 0x7e, 0x3c, 0x4d, 0xb7, 0x9f, 0x0d, 0x94, 0x8c, 0xa3, 0x7a, 0x8e, 0x66, 0x49, 0xe8, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xa3, 0xea, 0x2c, 0x09, 0xee, 0x4f, 0x8c, 0x8a, 0x12, 0xf4, 0x5c, 0xdd, 0xf9, 0xae, 0xff, 0x81, },
.tag_len = 16,
.line = __LINE__,
.id = 81
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0x99, 0x82, 0x1c, 0x2d, 0xd5, 0xda, 0xec, 0xde, 0xd0, 0x73, 0x00, 0xf5, 0x77, 0xf7, 0xaf, 0xf1, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x12, 0x7a, 0xf9, 0xb3, 0x9e, 0xcd, 0xfc, 0x57, 0xbb, 0x11, 0xa2, 0x84, 0x7c, 0x7c, 0x2d, 0x3d, 0x8f, 0x93, 0x8f, 0x40, 0xf8, 0x77, 0xe0, 0xc4, 0xaf, 0x37, 0xd0, 0xfe, 0x9a, 0xf0, 0x33, 0x05, 0x2b, 0xd5, 0x37, 0xc4, 0xae, 0x97, 0x8f, 0x60, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x07, 0xeb, 0x2f, 0xe4, 0xa9, 0x58, 0xf8, 0x43, 0x4d, 0x40, 0x68, 0x48, 0x99, 0x50, 0x7c, 0x7c, },
.tag_len = 16,
.line = __LINE__,
.id = 82
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0x5e, 0x4a, 0x39, 0x00, 0x14, 0x23, 0x58, 0xd1, 0xc7, 0x74, 0xd8, 0xd1, 0x24, 0xd8, 0xd2, 0x7d, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x0c, 0xf6, 0xae, 0x47, 0x15, 0x6b, 0x14, 0xdc, 0xe0, 0x3c, 0x8a, 0x07, 0xa2, 0xe1, 0x72, 0xb1, 0x12, 0x7a, 0xf9, 0xb3, 0x9e, 0xcd, 0xfc, 0x57, 0xbb, 0x11, 0xa2, 0x84, 0x7c, 0x7c, 0x2d, 0x3d, 0x8f, 0x93, 0x8f, 0x40, 0xf8, 0x77, 0xe0, 0xc4, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xf1, 0x45, 0xc2, 0xdc, 0xaf, 0x33, 0x9e, 0xed, 0xe4, 0x27, 0xbe, 0x93, 0x43, 0x57, 0xea, 0xc0, },
.tag_len = 16,
.line = __LINE__,
.id = 83
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0xd4, 0x12, 0x56, 0x76, 0x56, 0x29, 0x84, 0xc0, 0xfe, 0x7c, 0xb0, 0xbd, 0xd1, 0xa9, 0x54, 0xe8, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xf0, 0xc6, 0xff, 0xc1, 0x8b, 0xd4, 0x6d, 0xf5, 0x56, 0x91, 0x85, 0xa9, 0xaf, 0xd1, 0x69, 0xeb, 0x0c, 0xf6, 0xae, 0x47, 0x15, 0x6b, 0x14, 0xdc, 0xe0, 0x3c, 0x8a, 0x07, 0xa2, 0xe1, 0x72, 0xb1, 0x12, 0x7a, 0xf9, 0xb3, 0x9e, 0xcd, 0xfc, 0x57, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xfa, 0xcd, 0x0b, 0xfe, 0x87, 0x01, 0xb7, 0xb4, 0xa2, 0xba, 0x96, 0xd9, 0x8a, 0xf5, 0x2b, 0xd9, },
.tag_len = 16,
.line = __LINE__,
.id = 84
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0xb9, 0x7e, 0xc6, 0x2a, 0x5e, 0x59, 0x00, 0xcc, 0xf9, 0xe4, 0xbe, 0x33, 0x2e, 0x33, 0x60, 0x91, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xd6, 0x92, 0x8e, 0x09, 0x4c, 0x06, 0xe0, 0xa7, 0xc4, 0xdb, 0x42, 0x18, 0x4c, 0xf7, 0x52, 0x9e, 0x95, 0xde, 0x88, 0xb7, 0x67, 0xed, 0xeb, 0xe9, 0xb3, 0x43, 0x00, 0x0b, 0xe3, 0xda, 0xb4, 0x7e, 0xa0, 0x8b, 0x74, 0x42, 0x93, 0xee, 0xd6, 0x98, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xa0, 0x3e, 0x72, 0x9d, 0xcf, 0xd7, 0xa0, 0x31, 0x55, 0x65, 0x5f, 0xec, 0xe8, 0xaf, 0xfd, 0x7e, },
.tag_len = 16,
.line = __LINE__,
.id = 85
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0x7e, 0xb6, 0xe3, 0x07, 0x9f, 0xa0, 0xb4, 0xc3, 0xee, 0xe3, 0x66, 0x17, 0x7d, 0x1c, 0x1d, 0x1d, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xd8, 0x2c, 0xe5, 0x87, 0x71, 0xbf, 0x64, 0x87, 0x11, 0x6b, 0xf8, 0xe9, 0x64, 0x21, 0x87, 0x7e, 0xd6, 0x92, 0x8e, 0x09, 0x4c, 0x06, 0xe0, 0xa7, 0xc4, 0xdb, 0x42, 0x18, 0x4c, 0xf7, 0x52, 0x9e, 0x95, 0xde, 0x88, 0xb7, 0x67, 0xed, 0xeb, 0xe9, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x1e, 0x43, 0x92, 0x68, 0x28, 0xbc, 0x9a, 0x16, 0x14, 0xc7, 0xb1, 0x63, 0x90, 0x96, 0xc1, 0x95, },
.tag_len = 16,
.line = __LINE__,
.id = 86
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0x03, 0x14, 0xfc, 0xd1, 0x0f, 0xdd, 0x67, 0x5d, 0x3c, 0x61, 0x29, 0x62, 0xc9, 0x31, 0xf6, 0x35, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xa1, 0x97, 0xa3, 0x7a, 0x5d, 0x79, 0x69, 0x70, 0x78, 0x53, 0x6b, 0xc2, 0x7f, 0xe4, 0x6c, 0xd8, 0xd4, 0x75, 0x52, 0x6d, 0x90, 0x44, 0xaa, 0x94, 0xf0, 0x88, 0xa0, 0x54, 0xf8, 0xe3, 0x80, 0xc6, 0x4f, 0x79, 0x41, 0x47, 0x95, 0xc6, 0x14, 0x80, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xf0, 0x8b, 0xad, 0xdf, 0x0b, 0x52, 0x85, 0xc9, 0x1f, 0xc0, 0x6a, 0x67, 0xfe, 0x47, 0x08, 0xca, },
.tag_len = 16,
.line = __LINE__,
.id = 87
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0xc4, 0xdc, 0xd9, 0xfc, 0xce, 0x24, 0xd3, 0x52, 0x2b, 0x66, 0xf1, 0x46, 0x9a, 0x1e, 0x8b, 0xb9, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x14, 0x9f, 0xde, 0x9a, 0xbb, 0xd3, 0xa4, 0x3c, 0x25, 0x48, 0x57, 0x5e, 0x0d, 0xb9, 0xfb, 0x84, 0xa1, 0x97, 0xa3, 0x7a, 0x5d, 0x79, 0x69, 0x70, 0x78, 0x53, 0x6b, 0xc2, 0x7f, 0xe4, 0x6c, 0xd8, 0xd4, 0x75, 0x52, 0x6d, 0x90, 0x44, 0xaa, 0x94, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x62, 0xa4, 0xb6, 0x87, 0x5c, 0x28, 0x83, 0x45, 0xd6, 0xa4, 0x54, 0x39, 0x9e, 0xac, 0x1a, 0xfa, },
.tag_len = 16,
.line = __LINE__,
.id = 88
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0x02, 0x9e, 0x0e, 0x77, 0x7d, 0xb0, 0x92, 0xb1, 0x25, 0x35, 0xd0, 0x43, 0x01, 0x2f, 0x09, 0xba, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xf8, 0x3c, 0xee, 0x46, 0x73, 0x36, 0xe1, 0xa0, 0x9b, 0x75, 0xf2, 0x4e, 0x9b, 0x43, 0x85, 0xc9, 0x9c, 0x13, 0xe6, 0xaf, 0x72, 0x22, 0x56, 0xa6, 0x61, 0x29, 0xec, 0xe9, 0x61, 0xfe, 0x80, 0x3b, 0x16, 0x7b, 0xad, 0x20, 0x6f, 0x50, 0x17, 0xfb, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x09, 0x33, 0x8a, 0x42, 0xf0, 0xac, 0xc1, 0x4f, 0x97, 0xc0, 0x64, 0xf5, 0x2f, 0x5f, 0x16, 0x88, },
.tag_len = 16,
.line = __LINE__,
.id = 157
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0xf1, 0xbe, 0x3b, 0x06, 0xb7, 0xfe, 0xac, 0x07, 0xe7, 0xea, 0xb6, 0x29, 0xf5, 0x56, 0x04, 0x7b, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x0b, 0x32, 0xb6, 0x48, 0xa2, 0xc2, 0x8e, 0x9e, 0xdd, 0x7c, 0xee, 0x08, 0xee, 0xeb, 0x90, 0x00, 0x34, 0xca, 0xe7, 0x21, 0x5e, 0x5a, 0xb1, 0xe2, 0x01, 0xbd, 0x2e, 0xed, 0x10, 0x32, 0xc5, 0xa9, 0x78, 0x66, 0xba, 0x58, 0x2a, 0x34, 0x58, 0xa4, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x90, 0xbe, 0x36, 0x06, 0xde, 0x58, 0xbd, 0x77, 0x8f, 0xa5, 0xbe, 0xff, 0x4a, 0x41, 0x02, 0xbd, },
.tag_len = 16,
.line = __LINE__,
.id = 158
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0xde, 0x9e, 0xb6, 0x3b, 0x1d, 0xae, 0xd3, 0x21, 0xa1, 0x1b, 0x75, 0x47, 0xcc, 0x9e, 0x22, 0x3c, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x57, 0x5e, 0x2e, 0xce, 0xc2, 0xb3, 0xc7, 0x2d, 0x4e, 0x80, 0x83, 0x0d, 0x0d, 0x85, 0x9a, 0xd9, 0xe4, 0x2c, 0x29, 0xc4, 0xa6, 0x8d, 0x8d, 0x9d, 0x8d, 0x23, 0x43, 0x4d, 0xe2, 0xcd, 0x07, 0x73, 0x3b, 0xe4, 0x9d, 0x62, 0xac, 0x1a, 0xe0, 0x85, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x6e, 0x4d, 0x63, 0x96, 0x12, 0x5a, 0x10, 0xdf, 0x54, 0x43, 0xbd, 0x0c, 0xbc, 0x85, 0x66, 0xd1, },
.tag_len = 16,
.line = __LINE__,
.id = 159
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0x40, 0xbb, 0x0a, 0xbe, 0xbc, 0x48, 0x3f, 0xf6, 0xd5, 0x67, 0x12, 0x41, 0xff, 0x5d, 0x66, 0xc6, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x2a, 0x81, 0x88, 0x88, 0xd1, 0xf0, 0x9f, 0x32, 0xaa, 0x7b, 0xee, 0xdd, 0x28, 0x69, 0xb4, 0x46, 0x57, 0x5e, 0x2e, 0xce, 0xc2, 0xb3, 0xc7, 0x2d, 0x4e, 0x80, 0x83, 0x0d, 0x0d, 0x85, 0x9a, 0xd9, 0xe4, 0x2c, 0x29, 0xc4, 0xa6, 0x8d, 0x8d, 0x9d, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xdc, 0x48, 0x1f, 0x17, 0x25, 0x45, 0x26, 0x8e, 0xff, 0x63, 0xab, 0x04, 0x90, 0x40, 0x3d, 0xc3, },
.tag_len = 16,
.line = __LINE__,
.id = 160
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0x20, 0xd5, 0xcf, 0x30, 0x5e, 0x63, 0x0a, 0x8f, 0x49, 0xe3, 0xbb, 0x4b, 0xab, 0x18, 0xab, 0xc9, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x96, 0xd3, 0x6b, 0x79, 0x5f, 0x8e, 0x7e, 0xdf, 0x6a, 0x8e, 0x0d, 0xbc, 0xd2, 0x0d, 0x6c, 0x07, 0x2a, 0x81, 0x88, 0x88, 0xd1, 0xf0, 0x9f, 0x32, 0xaa, 0x7b, 0xee, 0xdd, 0x28, 0x69, 0xb4, 0x46, 0x57, 0x5e, 0x2e, 0xce, 0xc2, 0xb3, 0xc7, 0x2d, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x8a, 0x3a, 0x22, 0xbf, 0x25, 0x92, 0x95, 0x8b, 0x93, 0x02, 0x92, 0xaa, 0x47, 0xf5, 0x90, 0xe8, },
.tag_len = 16,
.line = __LINE__,
.id = 161
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0x25, 0x53, 0x58, 0xa7, 0x1a, 0x0e, 0x57, 0x31, 0xf6, 0xdd, 0x6c, 0xe2, 0x8e, 0x15, 0x8a, 0xe6, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xcf, 0xce, 0x3d, 0x92, 0x0f, 0x0e, 0x01, 0xf0, 0xbb, 0x49, 0xa7, 0x51, 0x95, 0x5b, 0x23, 0x6d, 0x1b, 0x88, 0x7b, 0xae, 0xfd, 0x25, 0xc4, 0x7f, 0x41, 0x30, 0x3c, 0x46, 0xd5, 0xc7, 0xbf, 0x9c, 0xa4, 0xc2, 0xc4, 0x5a, 0x8f, 0x1e, 0x66, 0x56, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x2d, 0xb9, 0xdc, 0x1b, 0x7f, 0xd3, 0x15, 0xdf, 0x1c, 0x95, 0x43, 0x24, 0x32, 0xfc, 0xf4, 0x74, },
.tag_len = 16,
.line = __LINE__,
.id = 162
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0xbb, 0x76, 0xe4, 0x22, 0xbb, 0xe8, 0xbb, 0xe6, 0x82, 0xa1, 0x0b, 0xe4, 0xbd, 0xd6, 0xce, 0x1c, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x69, 0xa2, 0x41, 0x69, 0x79, 0x2e, 0x9a, 0x07, 0xf6, 0xe6, 0xf4, 0x73, 0x6f, 0xa9, 0x72, 0xdc, 0xcf, 0xce, 0x3d, 0x92, 0x0f, 0x0e, 0x01, 0xf0, 0xbb, 0x49, 0xa7, 0x51, 0x95, 0x5b, 0x23, 0x6d, 0x1b, 0x88, 0x7b, 0xae, 0xfd, 0x25, 0xc4, 0x7f, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x82, 0xad, 0x96, 0x7f, 0x7a, 0xc1, 0x90, 0x84, 0x35, 0x4f, 0x69, 0xa7, 0x51, 0x44, 0x3f, 0xb2, },
.tag_len = 16,
.line = __LINE__,
.id = 163
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0xdb, 0x18, 0x21, 0xac, 0x59, 0xc3, 0x8e, 0x9f, 0x1e, 0x25, 0xa2, 0xee, 0xe9, 0x93, 0x03, 0x13, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x4e, 0x44, 0x17, 0xa8, 0x3b, 0xea, 0xc1, 0xeb, 0x7e, 0x24, 0x45, 0x6a, 0x05, 0xf6, 0xba, 0x55, 0x69, 0xa2, 0x41, 0x69, 0x79, 0x2e, 0x9a, 0x07, 0xf6, 0xe6, 0xf4, 0x73, 0x6f, 0xa9, 0x72, 0xdc, 0xcf, 0xce, 0x3d, 0x92, 0x0f, 0x0e, 0x01, 0xf0, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x47, 0x2d, 0x5d, 0xd5, 0x82, 0xdc, 0x05, 0xef, 0x5f, 0xc4, 0x96, 0xb6, 0x12, 0x02, 0x3c, 0xb2, },
.tag_len = 16,
.line = __LINE__,
.id = 164
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0xf7, 0xa0, 0x2e, 0xcc, 0xa0, 0x30, 0x64, 0xb2, 0xef, 0x3c, 0xce, 0x9f, 0xea, 0xb7, 0x9f, 0x07, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x6f, 0x8e, 0x17, 0x4e, 0xfc, 0xa3, 0x09, 0x72, 0x99, 0xf7, 0x84, 0xef, 0xd4, 0xca, 0xff, 0x0b, 0xf1, 0x68, 0xc3, 0xe5, 0x16, 0x5b, 0x9a, 0xd3, 0xd2, 0x00, 0x62, 0x00, 0x98, 0x48, 0x04, 0x4e, 0xef, 0x8f, 0x31, 0xf7, 0xd2, 0xfe, 0xad, 0x05, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xca, 0xff, 0x72, 0x38, 0x26, 0xdf, 0x15, 0x09, 0x34, 0xae, 0xe3, 0x20, 0x1b, 0xa1, 0x75, 0xe7, },
.tag_len = 16,
.line = __LINE__,
.id = 165
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0x69, 0x85, 0x92, 0x49, 0x01, 0xd6, 0x88, 0x65, 0x9b, 0x40, 0xa9, 0x99, 0xd9, 0x74, 0xdb, 0xfd, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xaf, 0x19, 0x30, 0x90, 0xce, 0x3d, 0x43, 0xa3, 0x88, 0xa1, 0xd2, 0x94, 0xa0, 0x96, 0x16, 0x90, 0x6f, 0x8e, 0x17, 0x4e, 0xfc, 0xa3, 0x09, 0x72, 0x99, 0xf7, 0x84, 0xef, 0xd4, 0xca, 0xff, 0x0b, 0xf1, 0x68, 0xc3, 0xe5, 0x16, 0x5b, 0x9a, 0xd3, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x3b, 0x08, 0x95, 0x8b, 0xe1, 0x28, 0x6c, 0x2b, 0x4a, 0xcb, 0xa0, 0x2b, 0x36, 0x74, 0xad, 0xb2, },
.tag_len = 16,
.line = __LINE__,
.id = 166
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0x3f, 0x11, 0x88, 0x54, 0x6c, 0x65, 0xed, 0x0f, 0xc5, 0x5e, 0x75, 0x03, 0x2c, 0x68, 0xee, 0x44, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x5d, 0xec, 0xcf, 0x83, 0x8b, 0x2c, 0xf5, 0xf8, 0x69, 0xc9, 0x0d, 0x2a, 0x61, 0x11, 0x60, 0xb1, 0xe5, 0x78, 0xab, 0x81, 0x21, 0xb9, 0x37, 0x35, 0xcb, 0xa4, 0xa1, 0x93, 0x06, 0x47, 0xb8, 0xc4, 0xc8, 0x4b, 0xf7, 0x76, 0x33, 0x3e, 0xe4, 0x5a, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xc1, 0x4d, 0x52, 0x20, 0x8f, 0x0f, 0x51, 0xb8, 0x16, 0xa4, 0x89, 0x71, 0xea, 0xf8, 0xff, 0x7e, },
.tag_len = 16,
.line = __LINE__,
.id = 167
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0xa1, 0x34, 0x34, 0xd1, 0xcd, 0x83, 0x01, 0xd8, 0xb1, 0x22, 0x12, 0x05, 0x1f, 0xab, 0xaa, 0xbe, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xd2, 0xca, 0xe1, 0x68, 0x4a, 0xa4, 0x07, 0xa1, 0x3a, 0x2e, 0x2d, 0xa5, 0x35, 0x7e, 0x29, 0xf5, 0x5d, 0xec, 0xcf, 0x83, 0x8b, 0x2c, 0xf5, 0xf8, 0x69, 0xc9, 0x0d, 0x2a, 0x61, 0x11, 0x60, 0xb1, 0xe5, 0x78, 0xab, 0x81, 0x21, 0xb9, 0x37, 0x35, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xea, 0x2d, 0x01, 0x80, 0x99, 0xcd, 0x79, 0x25, 0xc5, 0x07, 0xce, 0xf0, 0xce, 0xdd, 0xb0, 0xae, },
.tag_len = 16,
.line = __LINE__,
.id = 168
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0x5c, 0x2e, 0xa9, 0xb6, 0x95, 0xfc, 0xf6, 0xe2, 0x64, 0xb9, 0x60, 0x74, 0xd6, 0xbf, 0xa5, 0x72, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x28, 0xe1, 0xc5, 0x23, 0x2f, 0x4e, 0xe8, 0x16, 0x1d, 0xbe, 0x4c, 0x03, 0x63, 0x09, 0xe0, 0xb3, 0x25, 0x4e, 0x92, 0x12, 0xbe, 0xf0, 0xa9, 0x34, 0x31, 0xce, 0x5e, 0x56, 0x04, 0xc8, 0xf6, 0xa7, 0x3c, 0x18, 0xa3, 0x18, 0x30, 0x18, 0xb7, 0x70, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xd5, 0x80, 0x8a, 0x1b, 0xd1, 0x1a, 0x01, 0x12, 0x9b, 0xf3, 0xc6, 0x91, 0x9a, 0xff, 0x23, 0x39, },
.tag_len = 16,
.line = __LINE__,
.id = 240
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0x57, 0xb3, 0xa8, 0x1f, 0x2c, 0x36, 0xb6, 0xb0, 0x65, 0x77, 0xca, 0x0f, 0xba, 0xb8, 0xfa, 0x8e, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xcc, 0xee, 0xbe, 0xb4, 0xfe, 0x4c, 0xd9, 0x0c, 0x51, 0x4e, 0x52, 0xd2, 0x32, 0x7a, 0x2e, 0xcd, 0x75, 0x39, 0x36, 0x61, 0x00, 0x6c, 0xf2, 0x47, 0x6d, 0x86, 0x20, 0x14, 0x9a, 0xef, 0x3d, 0x1c, 0xdc, 0xe4, 0x91, 0xff, 0xf3, 0xe7, 0xa7, 0xa3, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x81, 0x32, 0xe8, 0x65, 0xb6, 0x9d, 0x64, 0xef, 0x37, 0xdb, 0x26, 0x1f, 0x80, 0xcb, 0xbe, 0x24, },
.tag_len = 16,
.line = __LINE__,
.id = 241
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0xce, 0x20, 0xa7, 0xe8, 0x70, 0x69, 0x6a, 0x5e, 0x68, 0x53, 0x3c, 0x46, 0x5b, 0xad, 0x2b, 0xa1, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x4f, 0x43, 0x50, 0x56, 0x5d, 0x91, 0xd9, 0xaa, 0x8c, 0x5f, 0x40, 0x48, 0x55, 0x04, 0x92, 0xad, 0x6d, 0x6f, 0xda, 0xbf, 0x66, 0xda, 0x5d, 0x1e, 0x2a, 0xf7, 0xbf, 0xe1, 0xa8, 0xaa, 0xda, 0xa0, 0xba, 0xa3, 0xde, 0x38, 0xa4, 0x1d, 0x97, 0x13, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x15, 0x5d, 0xa6, 0x44, 0x1e, 0xc0, 0x71, 0xef, 0x2d, 0x8e, 0x6c, 0xff, 0xba, 0xcc, 0x1c, 0x7c, },
.tag_len = 16,
.line = __LINE__,
.id = 242
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0x91, 0x8e, 0x3c, 0x19, 0xdb, 0xdf, 0xee, 0x2d, 0xb1, 0x81, 0x56, 0xc5, 0xb9, 0x3f, 0x3d, 0x75, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x83, 0x16, 0xa5, 0x31, 0x67, 0xb6, 0xde, 0x1a, 0x75, 0x75, 0x70, 0x06, 0x93, 0xff, 0xef, 0x27, 0x4f, 0x43, 0x50, 0x56, 0x5d, 0x91, 0xd9, 0xaa, 0x8c, 0x5f, 0x40, 0x48, 0x55, 0x04, 0x92, 0xad, 0x6d, 0x6f, 0xda, 0xbf, 0x66, 0xda, 0x5d, 0x1e, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x6c, 0x57, 0x4a, 0xa6, 0xa2, 0x49, 0x0c, 0xc3, 0xb2, 0xf2, 0xf8, 0xf0, 0xff, 0xbc, 0x56, 0xc4, },
.tag_len = 16,
.line = __LINE__,
.id = 243
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0x71, 0x7d, 0x90, 0x0b, 0x27, 0x04, 0x62, 0xb9, 0xdb, 0xf7, 0xe9, 0x41, 0x9e, 0x89, 0x06, 0x09, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x51, 0x75, 0x92, 0x75, 0x13, 0xe7, 0x51, 0xeb, 0x30, 0x9f, 0x45, 0xbc, 0x2e, 0xf2, 0x25, 0xf2, 0x83, 0x16, 0xa5, 0x31, 0x67, 0xb6, 0xde, 0x1a, 0x75, 0x75, 0x70, 0x06, 0x93, 0xff, 0xef, 0x27, 0x4f, 0x43, 0x50, 0x56, 0x5d, 0x91, 0xd9, 0xaa, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x80, 0x82, 0xa7, 0x61, 0xe1, 0xd7, 0x55, 0x34, 0x4b, 0xf2, 0x96, 0x22, 0x14, 0x4e, 0x7d, 0x39, },
.tag_len = 16,
.line = __LINE__,
.id = 244
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0xec, 0xd5, 0x21, 0x20, 0xaf, 0x24, 0x0e, 0x9b, 0x4b, 0xf3, 0xb9, 0xd1, 0xee, 0xb4, 0x94, 0x34, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x36, 0xb3, 0xfb, 0xec, 0xd0, 0x91, 0x78, 0xd0, 0x45, 0x27, 0xfb, 0x37, 0x54, 0x4f, 0x55, 0x79, 0xd2, 0x0d, 0x60, 0xa4, 0x12, 0x66, 0xf6, 0x85, 0xc4, 0x80, 0x98, 0xe1, 0xa5, 0x28, 0x04, 0xca, 0x38, 0x7d, 0x90, 0x70, 0x9d, 0x32, 0x68, 0xdd, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x03, 0x3e, 0x0e, 0xf2, 0x95, 0x3e, 0xbf, 0xd8, 0x42, 0x57, 0x37, 0xc7, 0xd3, 0x93, 0xf8, 0x9a, },
.tag_len = 16,
.line = __LINE__,
.id = 245
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0xb3, 0x7b, 0xba, 0xd1, 0x04, 0x92, 0x8a, 0xe8, 0x92, 0x21, 0xd3, 0x52, 0x0c, 0x26, 0x82, 0xe0, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x16, 0x92, 0x9b, 0x77, 0x30, 0x51, 0xf1, 0x2b, 0x0a, 0xda, 0xc9, 0x5f, 0x65, 0xe2, 0x1a, 0x7f, 0x36, 0xb3, 0xfb, 0xec, 0xd0, 0x91, 0x78, 0xd0, 0x45, 0x27, 0xfb, 0x37, 0x54, 0x4f, 0x55, 0x79, 0xd2, 0x0d, 0x60, 0xa4, 0x12, 0x66, 0xf6, 0x85, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xca, 0x44, 0x8b, 0xb7, 0xe5, 0x2e, 0x89, 0x7e, 0xca, 0x23, 0x4e, 0xf3, 0x43, 0xd0, 0x57, 0xd0, },
.tag_len = 16,
.line = __LINE__,
.id = 246
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0x53, 0x88, 0x16, 0xc3, 0xf8, 0x49, 0x06, 0x7c, 0xf8, 0x57, 0x6c, 0xd6, 0x2b, 0x90, 0xb9, 0x9c, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x6d, 0x3f, 0xae, 0xfa, 0xf6, 0x91, 0xd5, 0x81, 0x63, 0x84, 0x6f, 0x8d, 0x4b, 0x9f, 0xfd, 0x59, 0x16, 0x92, 0x9b, 0x77, 0x30, 0x51, 0xf1, 0x2b, 0x0a, 0xda, 0xc9, 0x5f, 0x65, 0xe2, 0x1a, 0x7f, 0x36, 0xb3, 0xfb, 0xec, 0xd0, 0x91, 0x78, 0xd0, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x84, 0xf4, 0x97, 0x40, 0xe6, 0x75, 0x7f, 0x63, 0xdd, 0x0d, 0xf7, 0xcb, 0x76, 0x56, 0xd0, 0xef, },
.tag_len = 16,
.line = __LINE__,
.id = 247
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0xd1, 0x0e, 0x63, 0x19, 0x43, 0xcd, 0x3b, 0xda, 0xba, 0xba, 0xb2, 0xbb, 0xd1, 0x39, 0x51, 0xc0, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xd6, 0x01, 0x96, 0xc2, 0xd1, 0x4f, 0xcf, 0x30, 0xc0, 0x99, 0x1d, 0x27, 0x21, 0xdd, 0xc5, 0x2d, 0x38, 0x5f, 0x40, 0x7a, 0x16, 0x69, 0x1d, 0xad, 0xe8, 0x2c, 0x90, 0x23, 0xc8, 0x55, 0xfd, 0x8e, 0x2e, 0x8f, 0xbb, 0x56, 0x21, 0x02, 0xf0, 0x18, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x87, 0x7e, 0x15, 0xd9, 0x88, 0x9e, 0x69, 0xa9, 0x9f, 0xcc, 0x6d, 0x72, 0x74, 0x65, 0xc3, 0x91, },
.tag_len = 16,
.line = __LINE__,
.id = 248
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0x8e, 0xa0, 0xf8, 0xe8, 0xe8, 0x7b, 0xbf, 0xa9, 0x63, 0x68, 0xd8, 0x38, 0x33, 0xab, 0x47, 0x14, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x94, 0x8f, 0xbc, 0xec, 0xa1, 0x2a, 0x6e, 0x4f, 0xab, 0xb7, 0x9b, 0x6d, 0x96, 0x5e, 0x33, 0x6f, 0xd6, 0x01, 0x96, 0xc2, 0xd1, 0x4f, 0xcf, 0x30, 0xc0, 0x99, 0x1d, 0x27, 0x21, 0xdd, 0xc5, 0x2d, 0x38, 0x5f, 0x40, 0x7a, 0x16, 0x69, 0x1d, 0xad, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xcd, 0x57, 0x57, 0x62, 0x69, 0x45, 0x97, 0x6b, 0xa9, 0xf0, 0x26, 0x4b, 0xd6, 0xbe, 0xe8, 0x94, },
.tag_len = 16,
.line = __LINE__,
.id = 249
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0x7b, 0x2d, 0xf4, 0xfb, 0xed, 0x1d, 0xe2, 0x72, 0x7e, 0xb2, 0x48, 0x98, 0xe5, 0xde, 0xab, 0xb9, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xa1, 0xa0, 0x12, 0x06, 0x60, 0xff, 0x52, 0xe6, 0xb1, 0x70, 0x0b, 0x12, 0xc5, 0x4d, 0x2d, 0x33, 0xb9, 0x4b, 0x00, 0xcd, 0x78, 0x82, 0xd8, 0x85, 0x7d, 0x84, 0xe6, 0xe1, 0x83, 0xa1, 0xde, 0xa6, 0xee, 0x85, 0xa7, 0xda, 0x84, 0xfb, 0xc3, 0x5d, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xb0, 0x15, 0xd7, 0x2d, 0xa6, 0x2c, 0x81, 0xcb, 0x4d, 0x26, 0x72, 0x53, 0xb2, 0x0d, 0xb9, 0xe5, },
.tag_len = 16,
.line = __LINE__,
.id = 250
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_DECRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0x24, 0x83, 0x6f, 0x0a, 0x46, 0xab, 0x66, 0x01, 0xa7, 0x60, 0x22, 0x1b, 0x07, 0x4c, 0xbd, 0x6d, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x5e, 0x34, 0x34, 0xb4, 0x5e, 0xdb, 0xf0, 0xd1, 0xf6, 0xe0, 0x2d, 0x11, 0x44, 0xdb, 0xf8, 0x67, 0xa1, 0xa0, 0x12, 0x06, 0x60, 0xff, 0x52, 0xe6, 0xb1, 0x70, 0x0b, 0x12, 0xc5, 0x4d, 0x2d, 0x33, 0xb9, 0x4b, 0x00, 0xcd, 0x78, 0x82, 0xd8, 0x85, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xee, 0x74, 0xcc, 0xb3, 0x0d, 0x64, 0x9e, 0xbf, 0x69, 0x16, 0xd0, 0x5a, 0x7d, 0xbe, 0x56, 0x96, },
.tag_len = 16,
.line = __LINE__,
.id = 251
},

View File

@@ -0,0 +1,689 @@
/* SPDX-License-Identifier: Apache-2.0 */
/*
* Copyright 2024 NXP
*/
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0xf9, 0x5f, 0xde, 0x4a, 0x75, 0x19, 0x13, 0x20, 0x2a, 0xee, 0xee, 0x32, 0xa0, 0xb5, 0x57, 0x53, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x00, 0x07, 0x8d, 0x10, 0x9d, 0x92, 0x14, 0x3f, 0xcd, 0x5d, 0xf5, 0x67, 0x21, 0xb8, 0x84, 0xfa, 0xc6, 0x4a, 0xc7, 0x76, 0x2c, 0xc0, 0x9e, 0xea, 0x2a, 0x3c, 0x68, 0xe9, 0x2a, 0x17, 0xbd, 0xb5, 0x75, 0xf8, 0x7b, 0xda, 0x18, 0xbe, 0x56, 0x4e, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x15, 0x2a, 0x65, 0x04, 0x5f, 0xe6, 0x74, 0xf9, 0x76, 0x27, 0x42, 0x7a, 0xf5, 0xbe, 0x22, 0xda, },
.tag_len = 16,
.line = __LINE__,
.id = 77
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0x7b, 0x95, 0xb8, 0xc3, 0x56, 0x81, 0x0a, 0x84, 0x71, 0x1d, 0x68, 0x15, 0x0a, 0x1b, 0x77, 0x50, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x84, 0xd4, 0xc9, 0xc0, 0x8b, 0x4f, 0x48, 0x28, 0x61, 0xe3, 0xa9, 0xc6, 0xc3, 0x5b, 0xc4, 0xd9, 0x1d, 0xf9, 0x27, 0x37, 0x45, 0x13, 0xbf, 0xd4, 0x9f, 0x43, 0x6b, 0xd7, 0x3f, 0x32, 0x52, 0x85, 0xda, 0xef, 0x4f, 0xf7, 0xe1, 0x3d, 0x46, 0xa6, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x21, 0x3a, 0x3c, 0xb9, 0x38, 0x55, 0xd1, 0x8e, 0x69, 0x33, 0x7e, 0xee, 0x66, 0xae, 0xec, 0x07, },
.tag_len = 16,
.line = __LINE__,
.id = 78
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0x1a, 0x55, 0x2e, 0x67, 0xcd, 0xc4, 0xdc, 0x1a, 0x33, 0xb8, 0x24, 0x87, 0x4e, 0xbf, 0x0b, 0xed, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x94, 0x8c, 0xa3, 0x7a, 0x8e, 0x66, 0x49, 0xe8, 0x8a, 0xef, 0xfb, 0x1c, 0x59, 0x8f, 0x36, 0x07, 0x00, 0x77, 0x02, 0x41, 0x7e, 0xa0, 0xe0, 0xbc, 0x3c, 0x60, 0xad, 0x5a, 0x94, 0x98, 0x86, 0xde, 0x96, 0x8c, 0xf5, 0x3e, 0xa6, 0x46, 0x2a, 0xed, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x99, 0xb3, 0x81, 0xbf, 0xa2, 0xaf, 0x97, 0x51, 0xc3, 0x9d, 0x1b, 0x6e, 0x86, 0xd1, 0xbe, 0x6a, },
.tag_len = 16,
.line = __LINE__,
.id = 79
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0xdd, 0x9d, 0x0b, 0x4a, 0x0c, 0x3d, 0x68, 0x15, 0x24, 0xbf, 0xfc, 0xa3, 0x1d, 0x90, 0x76, 0x61, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x64, 0xb1, 0x93, 0x14, 0xc3, 0x1a, 0xf4, 0x5a, 0xcc, 0xdf, 0x7e, 0x3c, 0x4d, 0xb7, 0x9f, 0x0d, 0x94, 0x8c, 0xa3, 0x7a, 0x8e, 0x66, 0x49, 0xe8, 0x8a, 0xef, 0xfb, 0x1c, 0x59, 0x8f, 0x36, 0x07, 0x00, 0x77, 0x02, 0x41, 0x7e, 0xa0, 0xe0, 0xbc, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x52, 0x81, 0xef, 0xc7, 0xf1, 0x3a, 0xc8, 0xe1, 0x4c, 0xcf, 0x5d, 0xca, 0x7b, 0xfb, 0xfd, 0xd1, },
.tag_len = 16,
.line = __LINE__,
.id = 80
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0x57, 0xc5, 0x64, 0x3c, 0x4e, 0x37, 0xb4, 0x04, 0x1d, 0xb7, 0x94, 0xcf, 0xe8, 0xe1, 0xf0, 0xf4, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x2b, 0xb6, 0x9c, 0x3e, 0x5d, 0x1f, 0x91, 0x81, 0x5c, 0x6b, 0x87, 0xa0, 0xd5, 0xbb, 0xea, 0x71, 0x64, 0xb1, 0x93, 0x14, 0xc3, 0x1a, 0xf4, 0x5a, 0xcc, 0xdf, 0x7e, 0x3c, 0x4d, 0xb7, 0x9f, 0x0d, 0x94, 0x8c, 0xa3, 0x7a, 0x8e, 0x66, 0x49, 0xe8, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xa3, 0xea, 0x2c, 0x09, 0xee, 0x4f, 0x8c, 0x8a, 0x12, 0xf4, 0x5c, 0xdd, 0xf9, 0xae, 0xff, 0x81, },
.tag_len = 16,
.line = __LINE__,
.id = 81
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0x99, 0x82, 0x1c, 0x2d, 0xd5, 0xda, 0xec, 0xde, 0xd0, 0x73, 0x00, 0xf5, 0x77, 0xf7, 0xaf, 0xf1, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x12, 0x7a, 0xf9, 0xb3, 0x9e, 0xcd, 0xfc, 0x57, 0xbb, 0x11, 0xa2, 0x84, 0x7c, 0x7c, 0x2d, 0x3d, 0x8f, 0x93, 0x8f, 0x40, 0xf8, 0x77, 0xe0, 0xc4, 0xaf, 0x37, 0xd0, 0xfe, 0x9a, 0xf0, 0x33, 0x05, 0x2b, 0xd5, 0x37, 0xc4, 0xae, 0x97, 0x8f, 0x60, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x07, 0xeb, 0x2f, 0xe4, 0xa9, 0x58, 0xf8, 0x43, 0x4d, 0x40, 0x68, 0x48, 0x99, 0x50, 0x7c, 0x7c, },
.tag_len = 16,
.line = __LINE__,
.id = 82
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0x5e, 0x4a, 0x39, 0x00, 0x14, 0x23, 0x58, 0xd1, 0xc7, 0x74, 0xd8, 0xd1, 0x24, 0xd8, 0xd2, 0x7d, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x0c, 0xf6, 0xae, 0x47, 0x15, 0x6b, 0x14, 0xdc, 0xe0, 0x3c, 0x8a, 0x07, 0xa2, 0xe1, 0x72, 0xb1, 0x12, 0x7a, 0xf9, 0xb3, 0x9e, 0xcd, 0xfc, 0x57, 0xbb, 0x11, 0xa2, 0x84, 0x7c, 0x7c, 0x2d, 0x3d, 0x8f, 0x93, 0x8f, 0x40, 0xf8, 0x77, 0xe0, 0xc4, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xf1, 0x45, 0xc2, 0xdc, 0xaf, 0x33, 0x9e, 0xed, 0xe4, 0x27, 0xbe, 0x93, 0x43, 0x57, 0xea, 0xc0, },
.tag_len = 16,
.line = __LINE__,
.id = 83
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0xd4, 0x12, 0x56, 0x76, 0x56, 0x29, 0x84, 0xc0, 0xfe, 0x7c, 0xb0, 0xbd, 0xd1, 0xa9, 0x54, 0xe8, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xf0, 0xc6, 0xff, 0xc1, 0x8b, 0xd4, 0x6d, 0xf5, 0x56, 0x91, 0x85, 0xa9, 0xaf, 0xd1, 0x69, 0xeb, 0x0c, 0xf6, 0xae, 0x47, 0x15, 0x6b, 0x14, 0xdc, 0xe0, 0x3c, 0x8a, 0x07, 0xa2, 0xe1, 0x72, 0xb1, 0x12, 0x7a, 0xf9, 0xb3, 0x9e, 0xcd, 0xfc, 0x57, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xfa, 0xcd, 0x0b, 0xfe, 0x87, 0x01, 0xb7, 0xb4, 0xa2, 0xba, 0x96, 0xd9, 0x8a, 0xf5, 0x2b, 0xd9, },
.tag_len = 16,
.line = __LINE__,
.id = 84
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0xb9, 0x7e, 0xc6, 0x2a, 0x5e, 0x59, 0x00, 0xcc, 0xf9, 0xe4, 0xbe, 0x33, 0x2e, 0x33, 0x60, 0x91, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xd6, 0x92, 0x8e, 0x09, 0x4c, 0x06, 0xe0, 0xa7, 0xc4, 0xdb, 0x42, 0x18, 0x4c, 0xf7, 0x52, 0x9e, 0x95, 0xde, 0x88, 0xb7, 0x67, 0xed, 0xeb, 0xe9, 0xb3, 0x43, 0x00, 0x0b, 0xe3, 0xda, 0xb4, 0x7e, 0xa0, 0x8b, 0x74, 0x42, 0x93, 0xee, 0xd6, 0x98, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xa0, 0x3e, 0x72, 0x9d, 0xcf, 0xd7, 0xa0, 0x31, 0x55, 0x65, 0x5f, 0xec, 0xe8, 0xaf, 0xfd, 0x7e, },
.tag_len = 16,
.line = __LINE__,
.id = 85
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0x7e, 0xb6, 0xe3, 0x07, 0x9f, 0xa0, 0xb4, 0xc3, 0xee, 0xe3, 0x66, 0x17, 0x7d, 0x1c, 0x1d, 0x1d, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xd8, 0x2c, 0xe5, 0x87, 0x71, 0xbf, 0x64, 0x87, 0x11, 0x6b, 0xf8, 0xe9, 0x64, 0x21, 0x87, 0x7e, 0xd6, 0x92, 0x8e, 0x09, 0x4c, 0x06, 0xe0, 0xa7, 0xc4, 0xdb, 0x42, 0x18, 0x4c, 0xf7, 0x52, 0x9e, 0x95, 0xde, 0x88, 0xb7, 0x67, 0xed, 0xeb, 0xe9, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x1e, 0x43, 0x92, 0x68, 0x28, 0xbc, 0x9a, 0x16, 0x14, 0xc7, 0xb1, 0x63, 0x90, 0x96, 0xc1, 0x95, },
.tag_len = 16,
.line = __LINE__,
.id = 86
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0x03, 0x14, 0xfc, 0xd1, 0x0f, 0xdd, 0x67, 0x5d, 0x3c, 0x61, 0x29, 0x62, 0xc9, 0x31, 0xf6, 0x35, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xa1, 0x97, 0xa3, 0x7a, 0x5d, 0x79, 0x69, 0x70, 0x78, 0x53, 0x6b, 0xc2, 0x7f, 0xe4, 0x6c, 0xd8, 0xd4, 0x75, 0x52, 0x6d, 0x90, 0x44, 0xaa, 0x94, 0xf0, 0x88, 0xa0, 0x54, 0xf8, 0xe3, 0x80, 0xc6, 0x4f, 0x79, 0x41, 0x47, 0x95, 0xc6, 0x14, 0x80, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xf0, 0x8b, 0xad, 0xdf, 0x0b, 0x52, 0x85, 0xc9, 0x1f, 0xc0, 0x6a, 0x67, 0xfe, 0x47, 0x08, 0xca, },
.tag_len = 16,
.line = __LINE__,
.id = 87
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, },
.key_len = 16,
.nonce = (const uint8_t []){ 0xc4, 0xdc, 0xd9, 0xfc, 0xce, 0x24, 0xd3, 0x52, 0x2b, 0x66, 0xf1, 0x46, 0x9a, 0x1e, 0x8b, 0xb9, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x14, 0x9f, 0xde, 0x9a, 0xbb, 0xd3, 0xa4, 0x3c, 0x25, 0x48, 0x57, 0x5e, 0x0d, 0xb9, 0xfb, 0x84, 0xa1, 0x97, 0xa3, 0x7a, 0x5d, 0x79, 0x69, 0x70, 0x78, 0x53, 0x6b, 0xc2, 0x7f, 0xe4, 0x6c, 0xd8, 0xd4, 0x75, 0x52, 0x6d, 0x90, 0x44, 0xaa, 0x94, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x62, 0xa4, 0xb6, 0x87, 0x5c, 0x28, 0x83, 0x45, 0xd6, 0xa4, 0x54, 0x39, 0x9e, 0xac, 0x1a, 0xfa, },
.tag_len = 16,
.line = __LINE__,
.id = 88
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0x02, 0x9e, 0x0e, 0x77, 0x7d, 0xb0, 0x92, 0xb1, 0x25, 0x35, 0xd0, 0x43, 0x01, 0x2f, 0x09, 0xba, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xf8, 0x3c, 0xee, 0x46, 0x73, 0x36, 0xe1, 0xa0, 0x9b, 0x75, 0xf2, 0x4e, 0x9b, 0x43, 0x85, 0xc9, 0x9c, 0x13, 0xe6, 0xaf, 0x72, 0x22, 0x56, 0xa6, 0x61, 0x29, 0xec, 0xe9, 0x61, 0xfe, 0x80, 0x3b, 0x16, 0x7b, 0xad, 0x20, 0x6f, 0x50, 0x17, 0xfb, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x09, 0x33, 0x8a, 0x42, 0xf0, 0xac, 0xc1, 0x4f, 0x97, 0xc0, 0x64, 0xf5, 0x2f, 0x5f, 0x16, 0x88, },
.tag_len = 16,
.line = __LINE__,
.id = 157
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0xf1, 0xbe, 0x3b, 0x06, 0xb7, 0xfe, 0xac, 0x07, 0xe7, 0xea, 0xb6, 0x29, 0xf5, 0x56, 0x04, 0x7b, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x0b, 0x32, 0xb6, 0x48, 0xa2, 0xc2, 0x8e, 0x9e, 0xdd, 0x7c, 0xee, 0x08, 0xee, 0xeb, 0x90, 0x00, 0x34, 0xca, 0xe7, 0x21, 0x5e, 0x5a, 0xb1, 0xe2, 0x01, 0xbd, 0x2e, 0xed, 0x10, 0x32, 0xc5, 0xa9, 0x78, 0x66, 0xba, 0x58, 0x2a, 0x34, 0x58, 0xa4, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x90, 0xbe, 0x36, 0x06, 0xde, 0x58, 0xbd, 0x77, 0x8f, 0xa5, 0xbe, 0xff, 0x4a, 0x41, 0x02, 0xbd, },
.tag_len = 16,
.line = __LINE__,
.id = 158
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0xde, 0x9e, 0xb6, 0x3b, 0x1d, 0xae, 0xd3, 0x21, 0xa1, 0x1b, 0x75, 0x47, 0xcc, 0x9e, 0x22, 0x3c, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x57, 0x5e, 0x2e, 0xce, 0xc2, 0xb3, 0xc7, 0x2d, 0x4e, 0x80, 0x83, 0x0d, 0x0d, 0x85, 0x9a, 0xd9, 0xe4, 0x2c, 0x29, 0xc4, 0xa6, 0x8d, 0x8d, 0x9d, 0x8d, 0x23, 0x43, 0x4d, 0xe2, 0xcd, 0x07, 0x73, 0x3b, 0xe4, 0x9d, 0x62, 0xac, 0x1a, 0xe0, 0x85, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x6e, 0x4d, 0x63, 0x96, 0x12, 0x5a, 0x10, 0xdf, 0x54, 0x43, 0xbd, 0x0c, 0xbc, 0x85, 0x66, 0xd1, },
.tag_len = 16,
.line = __LINE__,
.id = 159
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0x40, 0xbb, 0x0a, 0xbe, 0xbc, 0x48, 0x3f, 0xf6, 0xd5, 0x67, 0x12, 0x41, 0xff, 0x5d, 0x66, 0xc6, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x2a, 0x81, 0x88, 0x88, 0xd1, 0xf0, 0x9f, 0x32, 0xaa, 0x7b, 0xee, 0xdd, 0x28, 0x69, 0xb4, 0x46, 0x57, 0x5e, 0x2e, 0xce, 0xc2, 0xb3, 0xc7, 0x2d, 0x4e, 0x80, 0x83, 0x0d, 0x0d, 0x85, 0x9a, 0xd9, 0xe4, 0x2c, 0x29, 0xc4, 0xa6, 0x8d, 0x8d, 0x9d, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xdc, 0x48, 0x1f, 0x17, 0x25, 0x45, 0x26, 0x8e, 0xff, 0x63, 0xab, 0x04, 0x90, 0x40, 0x3d, 0xc3, },
.tag_len = 16,
.line = __LINE__,
.id = 160
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0x20, 0xd5, 0xcf, 0x30, 0x5e, 0x63, 0x0a, 0x8f, 0x49, 0xe3, 0xbb, 0x4b, 0xab, 0x18, 0xab, 0xc9, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x96, 0xd3, 0x6b, 0x79, 0x5f, 0x8e, 0x7e, 0xdf, 0x6a, 0x8e, 0x0d, 0xbc, 0xd2, 0x0d, 0x6c, 0x07, 0x2a, 0x81, 0x88, 0x88, 0xd1, 0xf0, 0x9f, 0x32, 0xaa, 0x7b, 0xee, 0xdd, 0x28, 0x69, 0xb4, 0x46, 0x57, 0x5e, 0x2e, 0xce, 0xc2, 0xb3, 0xc7, 0x2d, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x8a, 0x3a, 0x22, 0xbf, 0x25, 0x92, 0x95, 0x8b, 0x93, 0x02, 0x92, 0xaa, 0x47, 0xf5, 0x90, 0xe8, },
.tag_len = 16,
.line = __LINE__,
.id = 161
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0x25, 0x53, 0x58, 0xa7, 0x1a, 0x0e, 0x57, 0x31, 0xf6, 0xdd, 0x6c, 0xe2, 0x8e, 0x15, 0x8a, 0xe6, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xcf, 0xce, 0x3d, 0x92, 0x0f, 0x0e, 0x01, 0xf0, 0xbb, 0x49, 0xa7, 0x51, 0x95, 0x5b, 0x23, 0x6d, 0x1b, 0x88, 0x7b, 0xae, 0xfd, 0x25, 0xc4, 0x7f, 0x41, 0x30, 0x3c, 0x46, 0xd5, 0xc7, 0xbf, 0x9c, 0xa4, 0xc2, 0xc4, 0x5a, 0x8f, 0x1e, 0x66, 0x56, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x2d, 0xb9, 0xdc, 0x1b, 0x7f, 0xd3, 0x15, 0xdf, 0x1c, 0x95, 0x43, 0x24, 0x32, 0xfc, 0xf4, 0x74, },
.tag_len = 16,
.line = __LINE__,
.id = 162
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0xbb, 0x76, 0xe4, 0x22, 0xbb, 0xe8, 0xbb, 0xe6, 0x82, 0xa1, 0x0b, 0xe4, 0xbd, 0xd6, 0xce, 0x1c, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x69, 0xa2, 0x41, 0x69, 0x79, 0x2e, 0x9a, 0x07, 0xf6, 0xe6, 0xf4, 0x73, 0x6f, 0xa9, 0x72, 0xdc, 0xcf, 0xce, 0x3d, 0x92, 0x0f, 0x0e, 0x01, 0xf0, 0xbb, 0x49, 0xa7, 0x51, 0x95, 0x5b, 0x23, 0x6d, 0x1b, 0x88, 0x7b, 0xae, 0xfd, 0x25, 0xc4, 0x7f, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x82, 0xad, 0x96, 0x7f, 0x7a, 0xc1, 0x90, 0x84, 0x35, 0x4f, 0x69, 0xa7, 0x51, 0x44, 0x3f, 0xb2, },
.tag_len = 16,
.line = __LINE__,
.id = 163
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0xdb, 0x18, 0x21, 0xac, 0x59, 0xc3, 0x8e, 0x9f, 0x1e, 0x25, 0xa2, 0xee, 0xe9, 0x93, 0x03, 0x13, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x4e, 0x44, 0x17, 0xa8, 0x3b, 0xea, 0xc1, 0xeb, 0x7e, 0x24, 0x45, 0x6a, 0x05, 0xf6, 0xba, 0x55, 0x69, 0xa2, 0x41, 0x69, 0x79, 0x2e, 0x9a, 0x07, 0xf6, 0xe6, 0xf4, 0x73, 0x6f, 0xa9, 0x72, 0xdc, 0xcf, 0xce, 0x3d, 0x92, 0x0f, 0x0e, 0x01, 0xf0, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x47, 0x2d, 0x5d, 0xd5, 0x82, 0xdc, 0x05, 0xef, 0x5f, 0xc4, 0x96, 0xb6, 0x12, 0x02, 0x3c, 0xb2, },
.tag_len = 16,
.line = __LINE__,
.id = 164
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0xf7, 0xa0, 0x2e, 0xcc, 0xa0, 0x30, 0x64, 0xb2, 0xef, 0x3c, 0xce, 0x9f, 0xea, 0xb7, 0x9f, 0x07, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x6f, 0x8e, 0x17, 0x4e, 0xfc, 0xa3, 0x09, 0x72, 0x99, 0xf7, 0x84, 0xef, 0xd4, 0xca, 0xff, 0x0b, 0xf1, 0x68, 0xc3, 0xe5, 0x16, 0x5b, 0x9a, 0xd3, 0xd2, 0x00, 0x62, 0x00, 0x98, 0x48, 0x04, 0x4e, 0xef, 0x8f, 0x31, 0xf7, 0xd2, 0xfe, 0xad, 0x05, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xca, 0xff, 0x72, 0x38, 0x26, 0xdf, 0x15, 0x09, 0x34, 0xae, 0xe3, 0x20, 0x1b, 0xa1, 0x75, 0xe7, },
.tag_len = 16,
.line = __LINE__,
.id = 165
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0x69, 0x85, 0x92, 0x49, 0x01, 0xd6, 0x88, 0x65, 0x9b, 0x40, 0xa9, 0x99, 0xd9, 0x74, 0xdb, 0xfd, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xaf, 0x19, 0x30, 0x90, 0xce, 0x3d, 0x43, 0xa3, 0x88, 0xa1, 0xd2, 0x94, 0xa0, 0x96, 0x16, 0x90, 0x6f, 0x8e, 0x17, 0x4e, 0xfc, 0xa3, 0x09, 0x72, 0x99, 0xf7, 0x84, 0xef, 0xd4, 0xca, 0xff, 0x0b, 0xf1, 0x68, 0xc3, 0xe5, 0x16, 0x5b, 0x9a, 0xd3, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x3b, 0x08, 0x95, 0x8b, 0xe1, 0x28, 0x6c, 0x2b, 0x4a, 0xcb, 0xa0, 0x2b, 0x36, 0x74, 0xad, 0xb2, },
.tag_len = 16,
.line = __LINE__,
.id = 166
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0x3f, 0x11, 0x88, 0x54, 0x6c, 0x65, 0xed, 0x0f, 0xc5, 0x5e, 0x75, 0x03, 0x2c, 0x68, 0xee, 0x44, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x5d, 0xec, 0xcf, 0x83, 0x8b, 0x2c, 0xf5, 0xf8, 0x69, 0xc9, 0x0d, 0x2a, 0x61, 0x11, 0x60, 0xb1, 0xe5, 0x78, 0xab, 0x81, 0x21, 0xb9, 0x37, 0x35, 0xcb, 0xa4, 0xa1, 0x93, 0x06, 0x47, 0xb8, 0xc4, 0xc8, 0x4b, 0xf7, 0x76, 0x33, 0x3e, 0xe4, 0x5a, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xc1, 0x4d, 0x52, 0x20, 0x8f, 0x0f, 0x51, 0xb8, 0x16, 0xa4, 0x89, 0x71, 0xea, 0xf8, 0xff, 0x7e, },
.tag_len = 16,
.line = __LINE__,
.id = 167
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, },
.key_len = 24,
.nonce = (const uint8_t []){ 0xa1, 0x34, 0x34, 0xd1, 0xcd, 0x83, 0x01, 0xd8, 0xb1, 0x22, 0x12, 0x05, 0x1f, 0xab, 0xaa, 0xbe, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xd2, 0xca, 0xe1, 0x68, 0x4a, 0xa4, 0x07, 0xa1, 0x3a, 0x2e, 0x2d, 0xa5, 0x35, 0x7e, 0x29, 0xf5, 0x5d, 0xec, 0xcf, 0x83, 0x8b, 0x2c, 0xf5, 0xf8, 0x69, 0xc9, 0x0d, 0x2a, 0x61, 0x11, 0x60, 0xb1, 0xe5, 0x78, 0xab, 0x81, 0x21, 0xb9, 0x37, 0x35, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xea, 0x2d, 0x01, 0x80, 0x99, 0xcd, 0x79, 0x25, 0xc5, 0x07, 0xce, 0xf0, 0xce, 0xdd, 0xb0, 0xae, },
.tag_len = 16,
.line = __LINE__,
.id = 168
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0x5c, 0x2e, 0xa9, 0xb6, 0x95, 0xfc, 0xf6, 0xe2, 0x64, 0xb9, 0x60, 0x74, 0xd6, 0xbf, 0xa5, 0x72, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x28, 0xe1, 0xc5, 0x23, 0x2f, 0x4e, 0xe8, 0x16, 0x1d, 0xbe, 0x4c, 0x03, 0x63, 0x09, 0xe0, 0xb3, 0x25, 0x4e, 0x92, 0x12, 0xbe, 0xf0, 0xa9, 0x34, 0x31, 0xce, 0x5e, 0x56, 0x04, 0xc8, 0xf6, 0xa7, 0x3c, 0x18, 0xa3, 0x18, 0x30, 0x18, 0xb7, 0x70, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xd5, 0x80, 0x8a, 0x1b, 0xd1, 0x1a, 0x01, 0x12, 0x9b, 0xf3, 0xc6, 0x91, 0x9a, 0xff, 0x23, 0x39, },
.tag_len = 16,
.line = __LINE__,
.id = 240
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0x57, 0xb3, 0xa8, 0x1f, 0x2c, 0x36, 0xb6, 0xb0, 0x65, 0x77, 0xca, 0x0f, 0xba, 0xb8, 0xfa, 0x8e, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xcc, 0xee, 0xbe, 0xb4, 0xfe, 0x4c, 0xd9, 0x0c, 0x51, 0x4e, 0x52, 0xd2, 0x32, 0x7a, 0x2e, 0xcd, 0x75, 0x39, 0x36, 0x61, 0x00, 0x6c, 0xf2, 0x47, 0x6d, 0x86, 0x20, 0x14, 0x9a, 0xef, 0x3d, 0x1c, 0xdc, 0xe4, 0x91, 0xff, 0xf3, 0xe7, 0xa7, 0xa3, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x81, 0x32, 0xe8, 0x65, 0xb6, 0x9d, 0x64, 0xef, 0x37, 0xdb, 0x26, 0x1f, 0x80, 0xcb, 0xbe, 0x24, },
.tag_len = 16,
.line = __LINE__,
.id = 241
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0xce, 0x20, 0xa7, 0xe8, 0x70, 0x69, 0x6a, 0x5e, 0x68, 0x53, 0x3c, 0x46, 0x5b, 0xad, 0x2b, 0xa1, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x4f, 0x43, 0x50, 0x56, 0x5d, 0x91, 0xd9, 0xaa, 0x8c, 0x5f, 0x40, 0x48, 0x55, 0x04, 0x92, 0xad, 0x6d, 0x6f, 0xda, 0xbf, 0x66, 0xda, 0x5d, 0x1e, 0x2a, 0xf7, 0xbf, 0xe1, 0xa8, 0xaa, 0xda, 0xa0, 0xba, 0xa3, 0xde, 0x38, 0xa4, 0x1d, 0x97, 0x13, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x15, 0x5d, 0xa6, 0x44, 0x1e, 0xc0, 0x71, 0xef, 0x2d, 0x8e, 0x6c, 0xff, 0xba, 0xcc, 0x1c, 0x7c, },
.tag_len = 16,
.line = __LINE__,
.id = 242
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0x91, 0x8e, 0x3c, 0x19, 0xdb, 0xdf, 0xee, 0x2d, 0xb1, 0x81, 0x56, 0xc5, 0xb9, 0x3f, 0x3d, 0x75, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x83, 0x16, 0xa5, 0x31, 0x67, 0xb6, 0xde, 0x1a, 0x75, 0x75, 0x70, 0x06, 0x93, 0xff, 0xef, 0x27, 0x4f, 0x43, 0x50, 0x56, 0x5d, 0x91, 0xd9, 0xaa, 0x8c, 0x5f, 0x40, 0x48, 0x55, 0x04, 0x92, 0xad, 0x6d, 0x6f, 0xda, 0xbf, 0x66, 0xda, 0x5d, 0x1e, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x6c, 0x57, 0x4a, 0xa6, 0xa2, 0x49, 0x0c, 0xc3, 0xb2, 0xf2, 0xf8, 0xf0, 0xff, 0xbc, 0x56, 0xc4, },
.tag_len = 16,
.line = __LINE__,
.id = 243
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0x71, 0x7d, 0x90, 0x0b, 0x27, 0x04, 0x62, 0xb9, 0xdb, 0xf7, 0xe9, 0x41, 0x9e, 0x89, 0x06, 0x09, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x51, 0x75, 0x92, 0x75, 0x13, 0xe7, 0x51, 0xeb, 0x30, 0x9f, 0x45, 0xbc, 0x2e, 0xf2, 0x25, 0xf2, 0x83, 0x16, 0xa5, 0x31, 0x67, 0xb6, 0xde, 0x1a, 0x75, 0x75, 0x70, 0x06, 0x93, 0xff, 0xef, 0x27, 0x4f, 0x43, 0x50, 0x56, 0x5d, 0x91, 0xd9, 0xaa, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x80, 0x82, 0xa7, 0x61, 0xe1, 0xd7, 0x55, 0x34, 0x4b, 0xf2, 0x96, 0x22, 0x14, 0x4e, 0x7d, 0x39, },
.tag_len = 16,
.line = __LINE__,
.id = 244
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0xec, 0xd5, 0x21, 0x20, 0xaf, 0x24, 0x0e, 0x9b, 0x4b, 0xf3, 0xb9, 0xd1, 0xee, 0xb4, 0x94, 0x34, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x36, 0xb3, 0xfb, 0xec, 0xd0, 0x91, 0x78, 0xd0, 0x45, 0x27, 0xfb, 0x37, 0x54, 0x4f, 0x55, 0x79, 0xd2, 0x0d, 0x60, 0xa4, 0x12, 0x66, 0xf6, 0x85, 0xc4, 0x80, 0x98, 0xe1, 0xa5, 0x28, 0x04, 0xca, 0x38, 0x7d, 0x90, 0x70, 0x9d, 0x32, 0x68, 0xdd, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x03, 0x3e, 0x0e, 0xf2, 0x95, 0x3e, 0xbf, 0xd8, 0x42, 0x57, 0x37, 0xc7, 0xd3, 0x93, 0xf8, 0x9a, },
.tag_len = 16,
.line = __LINE__,
.id = 245
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0xb3, 0x7b, 0xba, 0xd1, 0x04, 0x92, 0x8a, 0xe8, 0x92, 0x21, 0xd3, 0x52, 0x0c, 0x26, 0x82, 0xe0, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x16, 0x92, 0x9b, 0x77, 0x30, 0x51, 0xf1, 0x2b, 0x0a, 0xda, 0xc9, 0x5f, 0x65, 0xe2, 0x1a, 0x7f, 0x36, 0xb3, 0xfb, 0xec, 0xd0, 0x91, 0x78, 0xd0, 0x45, 0x27, 0xfb, 0x37, 0x54, 0x4f, 0x55, 0x79, 0xd2, 0x0d, 0x60, 0xa4, 0x12, 0x66, 0xf6, 0x85, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xca, 0x44, 0x8b, 0xb7, 0xe5, 0x2e, 0x89, 0x7e, 0xca, 0x23, 0x4e, 0xf3, 0x43, 0xd0, 0x57, 0xd0, },
.tag_len = 16,
.line = __LINE__,
.id = 246
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0x53, 0x88, 0x16, 0xc3, 0xf8, 0x49, 0x06, 0x7c, 0xf8, 0x57, 0x6c, 0xd6, 0x2b, 0x90, 0xb9, 0x9c, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x6d, 0x3f, 0xae, 0xfa, 0xf6, 0x91, 0xd5, 0x81, 0x63, 0x84, 0x6f, 0x8d, 0x4b, 0x9f, 0xfd, 0x59, 0x16, 0x92, 0x9b, 0x77, 0x30, 0x51, 0xf1, 0x2b, 0x0a, 0xda, 0xc9, 0x5f, 0x65, 0xe2, 0x1a, 0x7f, 0x36, 0xb3, 0xfb, 0xec, 0xd0, 0x91, 0x78, 0xd0, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x84, 0xf4, 0x97, 0x40, 0xe6, 0x75, 0x7f, 0x63, 0xdd, 0x0d, 0xf7, 0xcb, 0x76, 0x56, 0xd0, 0xef, },
.tag_len = 16,
.line = __LINE__,
.id = 247
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0xd1, 0x0e, 0x63, 0x19, 0x43, 0xcd, 0x3b, 0xda, 0xba, 0xba, 0xb2, 0xbb, 0xd1, 0x39, 0x51, 0xc0, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xd6, 0x01, 0x96, 0xc2, 0xd1, 0x4f, 0xcf, 0x30, 0xc0, 0x99, 0x1d, 0x27, 0x21, 0xdd, 0xc5, 0x2d, 0x38, 0x5f, 0x40, 0x7a, 0x16, 0x69, 0x1d, 0xad, 0xe8, 0x2c, 0x90, 0x23, 0xc8, 0x55, 0xfd, 0x8e, 0x2e, 0x8f, 0xbb, 0x56, 0x21, 0x02, 0xf0, 0x18, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0x87, 0x7e, 0x15, 0xd9, 0x88, 0x9e, 0x69, 0xa9, 0x9f, 0xcc, 0x6d, 0x72, 0x74, 0x65, 0xc3, 0x91, },
.tag_len = 16,
.line = __LINE__,
.id = 248
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0x8e, 0xa0, 0xf8, 0xe8, 0xe8, 0x7b, 0xbf, 0xa9, 0x63, 0x68, 0xd8, 0x38, 0x33, 0xab, 0x47, 0x14, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x94, 0x8f, 0xbc, 0xec, 0xa1, 0x2a, 0x6e, 0x4f, 0xab, 0xb7, 0x9b, 0x6d, 0x96, 0x5e, 0x33, 0x6f, 0xd6, 0x01, 0x96, 0xc2, 0xd1, 0x4f, 0xcf, 0x30, 0xc0, 0x99, 0x1d, 0x27, 0x21, 0xdd, 0xc5, 0x2d, 0x38, 0x5f, 0x40, 0x7a, 0x16, 0x69, 0x1d, 0xad, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xcd, 0x57, 0x57, 0x62, 0x69, 0x45, 0x97, 0x6b, 0xa9, 0xf0, 0x26, 0x4b, 0xd6, 0xbe, 0xe8, 0x94, },
.tag_len = 16,
.line = __LINE__,
.id = 249
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0x7b, 0x2d, 0xf4, 0xfb, 0xed, 0x1d, 0xe2, 0x72, 0x7e, 0xb2, 0x48, 0x98, 0xe5, 0xde, 0xab, 0xb9, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0xa1, 0xa0, 0x12, 0x06, 0x60, 0xff, 0x52, 0xe6, 0xb1, 0x70, 0x0b, 0x12, 0xc5, 0x4d, 0x2d, 0x33, 0xb9, 0x4b, 0x00, 0xcd, 0x78, 0x82, 0xd8, 0x85, 0x7d, 0x84, 0xe6, 0xe1, 0x83, 0xa1, 0xde, 0xa6, 0xee, 0x85, 0xa7, 0xda, 0x84, 0xfb, 0xc3, 0x5d, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xb0, 0x15, 0xd7, 0x2d, 0xa6, 0x2c, 0x81, 0xcb, 0x4d, 0x26, 0x72, 0x53, 0xb2, 0x0d, 0xb9, 0xe5, },
.tag_len = 16,
.line = __LINE__,
.id = 250
},
{
.algo = TEE_ALG_AES_GCM, .mode = TEE_MODE_ENCRYPT, .key_type = TEE_TYPE_AES,
.key = (const uint8_t []){ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87, 0x98, 0xa9, 0xba, 0xcb, 0xdc, 0xed, 0xfe, 0x0f, },
.key_len = 32,
.nonce = (const uint8_t []){ 0x24, 0x83, 0x6f, 0x0a, 0x46, 0xab, 0x66, 0x01, 0xa7, 0x60, 0x22, 0x1b, 0x07, 0x4c, 0xbd, 0x6d, },
.nonce_len = 16,
.aad_incr = 0,
.aad = NULL,
.aad_len = 0,
.in_incr = 0,
.ptx = (const uint8_t []){ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
.ptx_len = 40,
.ctx = (const uint8_t []){ 0x5e, 0x34, 0x34, 0xb4, 0x5e, 0xdb, 0xf0, 0xd1, 0xf6, 0xe0, 0x2d, 0x11, 0x44, 0xdb, 0xf8, 0x67, 0xa1, 0xa0, 0x12, 0x06, 0x60, 0xff, 0x52, 0xe6, 0xb1, 0x70, 0x0b, 0x12, 0xc5, 0x4d, 0x2d, 0x33, 0xb9, 0x4b, 0x00, 0xcd, 0x78, 0x82, 0xd8, 0x85, },
.ctx_len = 40,
.tag = (const uint8_t []){ 0xee, 0x74, 0xcc, 0xb3, 0x0d, 0x64, 0x9e, 0xbf, 0x69, 0x16, 0xd0, 0x5a, 0x7d, 0xbe, 0x56, 0x96, },
.tag_len = 16,
.line = __LINE__,
.id = 251
},

View File

@@ -0,0 +1,966 @@
// SPDX-License-Identifier: BSD-2-Clause
/*
* Copyright (c) 2024, Huawei Technologies Co., Ltd
*/
#include <fcntl.h>
#include <math.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <tee_client_api.h>
#include <tee_client_api_extensions.h>
#include <time.h>
#include <unistd.h>
#include <utee_defines.h>
#include "crypto_common.h"
#include "xtest_helpers.h"
static TEEC_Context ctx;
static TEEC_Session sess;
static TEEC_SharedMemory in_shm = {
.flags = TEEC_MEM_INPUT | TEEC_MEM_OUTPUT
};
static TEEC_SharedMemory out_shm = {
.flags = TEEC_MEM_INPUT | TEEC_MEM_OUTPUT
};
static TEEC_SharedMemory hash_shm = {
.flags = TEEC_MEM_INPUT | TEEC_MEM_OUTPUT
};
static void errx(const char *msg, TEEC_Result res, uint32_t *orig)
{
fprintf(stderr, "%s: 0x%08x", msg, res);
if (orig)
fprintf(stderr, " (orig=%d)", (int)*orig);
fprintf(stderr, "\n");
exit(1);
}
static void check_res(TEEC_Result res, const char *errmsg, uint32_t *orig)
{
if (res != TEEC_SUCCESS)
errx(errmsg, res, orig);
}
#define CHECK(res, name, action) do { \
if ((res) != 0) { \
printf(name ": 0x%08x", (res)); \
action \
} \
} while(0)
static void open_ta(void)
{
TEEC_UUID uuid = TA_CRYPTO_PERF_UUID;
TEEC_Result res = TEEC_ERROR_GENERIC;
uint32_t err_origin = 0;
res = TEEC_InitializeContext(NULL, &ctx);
check_res(res, "TEEC_InitializeContext", NULL);
res = TEEC_OpenSession(&ctx, &sess, &uuid, TEEC_LOGIN_PUBLIC, NULL,
NULL, &err_origin);
check_res(res, "TEEC_OpenSession", &err_origin);
}
static void close_ta(void)
{
TEEC_CloseSession(&sess);
TEEC_FinalizeContext(&ctx);
}
/*
* Statistics
*
* We want to compute min, max, mean and standard deviation of processing time
*/
struct statistics {
int n;
double m;
double m2;
double min;
double max;
int initialized;
};
/* Take new sample into account (Knuth/Welford algorithm) */
static void update_stats(struct statistics *s, uint64_t t)
{
double x = (double)t;
double delta = x - s->m;
s->n++;
s->m += delta / s->n;
s->m2 += delta * (x - s->m);
if (!s->initialized) {
s->min = x;
s->max = x;
s->initialized = 1;
} else {
if (s->min > x)
s->min = x;
if (s->max < x)
s->max = x;
}
}
static double stddev(struct statistics *s)
{
if (s->n < 2)
return NAN;
return sqrt(s->m2 / s->n);
}
static void usage(const char *progname, uint32_t width_bits, uint32_t main_algo,
uint32_t mode, uint32_t salt_len, uint32_t size,
uint32_t crypto_algo, int warmup, uint32_t l, uint32_t n)
{
fprintf(stderr, "Usage: %s [-h]\n", progname);
fprintf(stderr, "Usage: %s [-a] [-k SIZE]", progname);
fprintf(stderr, " [-a algo] [-n LOOP] [-r|--no-inited] [-d WIDTH_BITS]");
fprintf(stderr, " [-k SIZE] [-a crypto_algo] [-s salt_len] [-v [-v]] [-w SEC]");
fprintf(stderr, "\n");
fprintf(stderr, "Asymmetric performance testing tool for OP-TEE\n");
fprintf(stderr, "\n");
fprintf(stderr, "Options:\n");
fprintf(stderr, " -h|--help Print this help and exit\n");
fprintf(stderr, " -a ALGO Asymmetric algorithm [DH]\n");
fprintf(stderr, " DH, RSA_GENKEYPAIR, RSA_NOPAD_ENCRYPT, RSA_NOPAD_DECRYPT\n");
fprintf(stderr, " RSAES_PKCS1_V1_5_ENCRYPT, RSAES_PKCS1_V1_5_DECRYPT\n");
fprintf(stderr, " RSAES_PKCS1_OAEP_SHA1_ENCRYPT, RSAES_PKCS1_OAEP_SHA1_DECRYPT\n");
fprintf(stderr, " RSAES_PKCS1_OAEP_SHA224_ENCRYPT, RSAES_PKCS1_OAEP_SHA224_DECRYPT\n");
fprintf(stderr, " RSAES_PKCS1_OAEP_SHA256_ENCRYPT, RSAES_PKCS1_OAEP_SHA256_DECRYPT\n");
fprintf(stderr, " RSAES_PKCS1_OAEP_SHA384_ENCRYPT, RSAES_PKCS1_OAEP_SHA384_DECRYPT\n");
fprintf(stderr, " RSAES_PKCS1_OAEP_SHA512_ENCRYPT, RSAES_PKCS1_OAEP_SHA512_DECRYPT\n");
fprintf(stderr, " RSASSA_PKCS1_V1_5_SHA1_SIGN, RSASSA_PKCS1_V1_5_SHA1_VERIFY\n");
fprintf(stderr, " RSASSA_PKCS1_V1_5_SHA224_SIGN, RSASSA_PKCS1_V1_5_SHA224_VERIFY\n");
fprintf(stderr, " RSASSA_PKCS1_V1_5_SHA256_SIGN, RSASSA_PKCS1_V1_5_SHA256_VERIFY\n");
fprintf(stderr, " RSASSA_PKCS1_V1_5_SHA384_SIGN, RSASSA_PKCS1_V1_5_SHA384_VERIFY\n");
fprintf(stderr, " RSASSA_PKCS1_V1_5_SHA512_SIGN, RSASSA_PKCS1_V1_5_SHA512_VERIFY\n");
fprintf(stderr, " RSASSA_PKCS1_PSS_MGF1_SHA1_SIGN, RSASSA_PKCS1_PSS_MGF1_SHA1_VERIFY\n");
fprintf(stderr, " RSASSA_PKCS1_PSS_MGF1_SHA224_SIGN, RSASSA_PKCS1_PSS_MGF1_SHA224_VERIFY\n");
fprintf(stderr, " RSASSA_PKCS1_PSS_MGF1_SHA256_SIGN, RSASSA_PKCS1_PSS_MGF1_SHA256_VERIFY\n");
fprintf(stderr, " RSASSA_PKCS1_PSS_MGF1_SHA384_SIGN, RSASSA_PKCS1_PSS_MGF1_SHA384_VERIFY\n");
fprintf(stderr, " RSASSA_PKCS1_PSS_MGF1_SHA512_SIGN, RSASSA_PKCS1_PSS_MGF1_SHA512_VERIFY\n");
fprintf(stderr, " ECDSA_SIGN, ECDSA_VERIFY, ECDH, X25519\n");
fprintf(stderr, " -l LOOP Inner loop iterations [%u]\n", l);
fprintf(stderr, " -n LOOP Outer test loop iterations [%u]\n", n);
fprintf(stderr, " -r|--random Get input data from /dev/urandom (default: all zeros)\n");
fprintf(stderr, " -k SIZE Plaintext byte length [%u]\n", size);
fprintf(stderr, " -d WIDTH_BITS Private key size in bits [%u]\n", width_bits);
fprintf(stderr, " ECC: 192, 224, 256, 384 or 521, DH: <= 2048, RSA: <= 4096\n");
fprintf(stderr, " -s SALT_LEN Salt length in bytes (only when ALGO is one of RSA SSA_PKCS1_PSS_*)[%u]\n", salt_len);
fprintf(stderr, " -w|--warmup SEC Warm-up time in seconds: execute a busy loop before [%d]\n", warmup);
fprintf(stderr, " -v Be verbose (use twice for greater effect)\n");
}
static void allocate_shm(TEEC_SharedMemory *shm, size_t sz)
{
TEEC_Result res = TEEC_ERROR_GENERIC;
shm->buffer = NULL;
shm->size = sz;
res = TEEC_AllocateSharedMemory(&ctx, shm);
check_res(res, "TEEC_AllocateSharedMemory()", NULL);
}
/* initial test buffer allocation (eventual registering to TEEC) */
static void alloc_buffers(size_t sz)
{
allocate_shm(&in_shm, sz);
allocate_shm(&out_shm, TEE_MAX_OUT_SIZE);
allocate_shm(&hash_shm, TEE_MAX_HASH_SIZE);
}
static void free_shm(void)
{
TEEC_ReleaseSharedMemory(&in_shm);
TEEC_ReleaseSharedMemory(&out_shm);
TEEC_ReleaseSharedMemory(&hash_shm);
}
static ssize_t read_random(void *in, size_t rsize)
{
static int rnd;
ssize_t s = 0;
if (!rnd) {
rnd = open("/dev/urandom", O_RDONLY);
if (rnd < 0) {
perror("open");
return 1;
}
}
s = read(rnd, in, rsize);
if (s < 0) {
perror("read");
return 1;
}
if ((size_t)s != rsize)
printf("read: requested %zu bytes, got %zd\n", rsize, s);
return 0;
}
static void get_current_time(struct timespec *ts)
{
if (clock_gettime(CLOCK_MONOTONIC, ts) < 0) {
perror("clock_gettime");
exit(1);
}
}
static uint64_t timespec_to_ns(struct timespec *ts)
{
return ((uint64_t)ts->tv_sec * 1000000000) + ts->tv_nsec;
}
static uint64_t timespec_diff_ns(struct timespec *start, struct timespec *end)
{
return timespec_to_ns(end) - timespec_to_ns(start);
}
static void prepare_obj(int width_bits, uint32_t main_algo)
{
uint32_t cmd = TA_CRYPTO_PERF_CMD_ASYM_PREPARE_OBJ;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
TEEC_Result res = TEEC_ERROR_GENERIC;
uint32_t ret_origin = 0;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, TEEC_NONE, TEEC_NONE,
TEEC_NONE);
op.params[0].value.a = main_algo;
op.params[0].value.b = width_bits;
res = TEEC_InvokeCommand(&sess, cmd, &op, &ret_origin);
check_res(res, "TEEC_InvokeCommand()", &ret_origin);
}
static void prepare_hash(int size, uint32_t main_algo)
{
uint32_t cmd = TA_CRYPTO_PERF_CMD_ASYM_PREPARE_HASH;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
TEEC_Result res = TEEC_ERROR_GENERIC;
uint32_t ret_origin = 0;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT,
TEEC_MEMREF_PARTIAL_INPUT,
TEEC_MEMREF_PARTIAL_INOUT, TEEC_NONE);
op.params[0].value.a = main_algo;
op.params[1].memref.parent = &in_shm;
op.params[1].memref.size = size;
op.params[2].memref.parent = &hash_shm;
op.params[2].memref.size = hash_shm.size;
res = TEEC_InvokeCommand(&sess, cmd, &op, &ret_origin);
check_res(res, "TEEC_InvokeCommand()", &ret_origin);
hash_shm.size = op.params[2].memref.size;
}
static void prepare_attrs(uint8_t *buf, size_t blen)
{
uint32_t cmd = TA_CRYPTO_PERF_CMD_ASYM_PREPARE_ATTRS;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
TEEC_Result res = TEEC_ERROR_GENERIC;
uint32_t ret_origin = 0;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_INOUT,
TEEC_NONE, TEEC_NONE, TEEC_NONE);
op.params[0].tmpref.buffer = buf;
op.params[0].tmpref.size = blen;
res = TEEC_InvokeCommand(&sess, cmd, &op, &ret_origin);
check_res(res, "TEEC_InvokeCommand()", &ret_origin);
}
static void free_attrs(void)
{
uint32_t cmd = TA_CRYPTO_PERF_CMD_ASYM_FREE_ATTRS;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
TEEC_Result res = TEEC_ERROR_GENERIC;
uint32_t ret_origin = 0;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_NONE, TEEC_NONE,
TEEC_NONE, TEEC_NONE);
res = TEEC_InvokeCommand(&sess, cmd, &op, &ret_origin);
check_res(res, "TEEC_InvokeCommand()", &ret_origin);
}
static void prepare_keypair(int width_bits, uint8_t *buf, size_t blen,
uint32_t mode, uint32_t algo, uint32_t main_algo)
{
uint32_t cmd = TA_CRYPTO_PERF_CMD_ASYM_PREPARE_KEYPAIR;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
TEEC_Result res = TEEC_ERROR_GENERIC;
uint32_t ret_origin = 0;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, TEEC_VALUE_INPUT,
TEEC_MEMREF_TEMP_INPUT, TEEC_NONE);
op.params[0].value.a = width_bits;
op.params[0].value.b = mode;
op.params[1].value.a = main_algo;
op.params[1].value.b = algo;
op.params[2].tmpref.buffer = buf;
op.params[2].tmpref.size = blen;
res = TEEC_InvokeCommand(&sess, cmd, &op, &ret_origin);
check_res(res, "TEEC_InvokeCommand()", &ret_origin);
}
static void prepare_enc_sign(uint32_t size, uint32_t mode,
uint8_t *buf, uint32_t blen)
{
uint32_t cmd = TA_CRYPTO_PERF_CMD_ASYM_PREPARE_ENC_SIGN;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
TEEC_Result res = TEEC_ERROR_GENERIC;
uint32_t ret_origin = 0;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_PARTIAL_INPUT,
TEEC_MEMREF_PARTIAL_OUTPUT,
TEEC_VALUE_INPUT,
TEEC_MEMREF_TEMP_INPUT);
op.params[0].memref.parent = (mode == MODE_DECRYPT) ?
&in_shm : &hash_shm;
op.params[0].memref.size = (mode == MODE_DECRYPT) ?
size : hash_shm.size;
op.params[1].memref.parent = &out_shm;
op.params[1].memref.size = out_shm.size;
op.params[2].value.a = mode;
op.params[3].tmpref.buffer = buf;
op.params[3].tmpref.size = blen;
res = TEEC_InvokeCommand(&sess, cmd, &op, &ret_origin);
check_res(res, "TEEC_InvokeCommand()", &ret_origin);
out_shm.size = op.params[1].memref.size;
}
static void do_warmup(int warmup)
{
struct timespec t0 = { };
struct timespec t = { };
int i = 0;
get_current_time(&t0);
do {
for (i = 0; i < 100000; i++)
;
get_current_time(&t);
} while (timespec_diff_ns(&t0, &t) < (uint64_t)warmup * 1000000000);
}
static const char *yesno(int v)
{
return (v ? "yes" : "no");
}
static double mb_per_sec(size_t size, double usec)
{
return (1000000000 / usec) * ((double)size / (1024 * 1024));
}
static uint32_t get_curve_id(uint32_t width_bits)
{
switch (width_bits) {
case ECC_CURVE_192:
return TEE_ECC_CURVE_NIST_P192;
case ECC_CURVE_224:
return TEE_ECC_CURVE_NIST_P224;
case ECC_CURVE_256:
return TEE_ECC_CURVE_NIST_P256;
case ECC_CURVE_384:
return TEE_ECC_CURVE_NIST_P384;
case ECC_CURVE_521:
return TEE_ECC_CURVE_NIST_P521;
default:
fprintf(stderr, "ECC curve is not supported!\n");
}
return TEE_CRYPTO_ELEMENT_NONE;
}
static int asym_perf_run_test(int mode, size_t size, uint32_t n,
uint32_t l, int is_random, uint32_t warmup,
uint32_t verbosity, uint32_t width_bits,
uint32_t main_algo, uint32_t salt_len,
uint32_t algo)
{
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t cmd = TA_CRYPTO_PERF_CMD_ASYM_PROCESS;
TEEC_Result res = TEEC_ERROR_GENERIC;
uint8_t keygen_dh_p[DH_MAX_SIZE] = { };
uint8_t keygen_dh_g[DH_G_SIZE] = { };
TEE_Attribute params[4] = { };
size_t param_count = 0;
uint32_t curve_id = TEE_CRYPTO_ELEMENT_NONE;
struct statistics stats = { };
struct timespec ts = { };
struct timespec t0 = { };
struct timespec t1 = { };
uint32_t ret_origin = 0;
uint8_t *buf = NULL;
size_t blen = 0;
double sd = 0;
int n0 = n;
if (clock_getres(CLOCK_MONOTONIC, &ts) < 0) {
perror("clock_getres");
return -1;
}
verbose("random=%s, ", yesno(is_random == CRYPTO_USE_RANDOM));
verbose("inner loops=%u, loops=%u, warm-up=%u s\n", l, n, warmup);
vverbose("Clock resolution is %jd ns\n", (intmax_t)ts.tv_sec *
1000000000 + ts.tv_nsec);
open_ta();
alloc_buffers(size);
if (is_random == CRYPTO_USE_ZEROS)
memset((uint8_t *)in_shm.buffer, 0, size);
else
read_random(in_shm.buffer, size);
if (mode == MODE_DECRYPT && main_algo == ALGO_RSA) {
/* Ensure N > M */
((unsigned char *)(in_shm.buffer))[0] = 0x00;
}
switch (main_algo) {
case ALGO_DH:
read_random(keygen_dh_p, BITS_TO_BYTES(width_bits));
read_random(keygen_dh_g, DH_G_SIZE);
/* make sure the p is full width */
keygen_dh_p[0] |= 0x2;
/* make sure keygen_dh_p is odd */
keygen_dh_p[BITS_TO_BYTES(width_bits) - 1] |= 0x1;
xtest_add_attr(&param_count, params, TEE_ATTR_DH_PRIME,
keygen_dh_p, BITS_TO_BYTES(width_bits));
xtest_add_attr(&param_count, params, TEE_ATTR_DH_BASE,
keygen_dh_g, DH_G_SIZE);
break;
case ALGO_ECDSA:
case ALGO_ECDH:
curve_id = get_curve_id(width_bits);
if (curve_id == TEE_CRYPTO_ELEMENT_NONE)
goto out;
xtest_add_attr_value(&param_count, params, TEE_ATTR_ECC_CURVE,
curve_id, 0);
break;
case ALGO_X25519:
width_bits = WIDTH_BITS_25519;
break;
default:
break;
}
prepare_obj(width_bits, main_algo);
res = pack_attrs(params, param_count, &buf, &blen);
CHECK(res, "pack_attrs", goto out;);
if (mode == MODE_GENKEYPAIR) {
if (blen)
prepare_attrs(buf, blen);
cmd = TA_CRYPTO_PERF_CMD_ASYM_PROCESS_GEN_KEYPAIR;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT,
TEEC_NONE, TEEC_NONE,
TEEC_NONE);
op.params[0].value.a = width_bits;
op.params[0].value.b = l;
} else {
prepare_keypair(width_bits, buf, blen, mode, algo, main_algo);
if (mode == MODE_SIGN || mode == MODE_VERIFY)
prepare_hash(size, main_algo);
if (main_algo == ALGO_RSA && algo >= RSASSA_PKCS1_PSS_MGF1_SHA1) {
params[0].attributeID = TEE_ATTR_RSA_PSS_SALT_LENGTH;
params[0].content.value.a = salt_len;
params[0].content.value.b = 0;
param_count = 1;
res = pack_attrs(params, param_count, &buf, &blen);
CHECK(res, "pack_attrs", goto out;);
}
if (blen)
prepare_attrs(buf, blen);
cmd = TA_CRYPTO_PERF_CMD_ASYM_PROCESS;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT,
TEEC_MEMREF_PARTIAL_INPUT,
TEEC_MEMREF_PARTIAL_OUTPUT,
TEEC_NONE);
op.params[0].value.a = l;
op.params[0].value.b = mode;
switch (mode) {
case MODE_ENCRYPT:
op.params[1].memref.parent = &in_shm;
op.params[1].memref.size = size;
op.params[2].memref.parent = &out_shm;
op.params[2].memref.size = out_shm.size;
break;
case MODE_SIGN:
op.params[1].memref.parent = &hash_shm;
op.params[1].memref.size = hash_shm.size;
op.params[2].memref.parent = &out_shm;
op.params[2].memref.size = out_shm.size;
break;
case MODE_DECRYPT:
prepare_enc_sign(size, mode, buf, blen);
op.params[1].memref.parent = &out_shm;
op.params[1].memref.size = out_shm.size;
op.params[2].memref.parent = &in_shm;
op.params[2].memref.size = size;
break;
case MODE_VERIFY:
prepare_enc_sign(size, mode, buf, blen);
op.params[1].memref.parent = &hash_shm;
op.params[1].memref.size = hash_shm.size;
op.params[2].memref.parent = &out_shm;
op.params[2].memref.size = out_shm.size;
break;
default:
fprintf(stderr, "Unexpected mode value\n");
goto out;
}
}
if (warmup)
do_warmup(warmup);
while (n-- > 0) {
if (mode == MODE_ENCRYPT && main_algo == ALGO_RSA) {
/* Ensure N > M */
((unsigned char *)(in_shm.buffer))[0] = 0x00;
/*
* Avoid the problem that the last encryption result is
* shorter than the plaintext.
*/
op.params[3].memref.size = out_shm.size;
}
get_current_time(&t0);
res = TEEC_InvokeCommand(&sess, cmd, &op, &ret_origin);
check_res(res, "TEEC_InvokeCommand()", &ret_origin);
get_current_time(&t1);
update_stats(&stats, timespec_diff_ns(&t0, &t1));
if (n % (n0 / 10) == 0)
vverbose("#");
}
vverbose("\n");
sd = stddev(&stats);
printf("%.3f ms/op\n", stats.m / 1000000 / l);
printf("min=%gus max=%gus mean=%gus stddev=%gus (cv %g%%) (%gMiB/s)\n",
stats.min / 1000, stats.max / 1000, stats.m / 1000,
sd / 1000, 100 * sd / stats.m, mb_per_sec(size, stats.m));
verbose("2-sigma interval: %g..%gus (%g..%gMiB/s)\n",
(stats.m - 2 * sd) / 1000, (stats.m + 2 * sd) / 1000,
mb_per_sec(size, stats.m + 2 * sd),
mb_per_sec(size, stats.m - 2 * sd));
out:
free_attrs();
free(buf);
free_shm();
close_ta();
return res;
}
#define NEXT_ARG(i) \
do { \
if (++i == argc) { \
fprintf(stderr, "%s: %s: missing argument\n", \
argv[0], argv[i - 1]); \
return 1; \
} \
} while (0)
#define USAGE() usage(argv[0], width_bits, main_algo, mode, \
salt_len, size, crypto_algo, warmup, l, n)
static int get_rsa_hash_len(uint32_t algo)
{
switch (algo) {
case RSAES_PKCS1_OAEP_SHA1:
case RSASSA_PKCS1_V1_5_SHA1:
case RSASSA_PKCS1_PSS_MGF1_SHA1:
return SHA1_LEN;
case RSAES_PKCS1_OAEP_SHA224:
case RSASSA_PKCS1_V1_5_SHA224:
case RSASSA_PKCS1_PSS_MGF1_SHA224:
return SHA224_LEN;
case RSAES_PKCS1_OAEP_SHA256:
case RSASSA_PKCS1_V1_5_SHA256:
case RSASSA_PKCS1_PSS_MGF1_SHA256:
return SHA256_LEN;
case RSAES_PKCS1_OAEP_SHA384:
case RSASSA_PKCS1_V1_5_SHA384:
case RSASSA_PKCS1_PSS_MGF1_SHA384:
return SHA384_LEN;
case RSAES_PKCS1_OAEP_SHA512:
case RSASSA_PKCS1_V1_5_SHA512:
case RSASSA_PKCS1_PSS_MGF1_SHA512:
return SHA512_LEN;
default:
fprintf(stderr, "The algo[%u] is not valid!\n", algo);
}
return -1;
}
static int check_rsa_cipher_params(uint32_t crypto_algo, int width_bits, int size)
{
int width_bytes = BITS_TO_BYTES(width_bits);
int hash_len = 0;
if (crypto_algo == RSA_NOPAD) {
if (size > width_bytes) {
fprintf(stderr, "The size or algo is not valid!\n");
return -1;
}
} else if (crypto_algo == RSAES_PKCS1_V1_5) {
if ((size + PKCS_V1_5_MIN) > width_bytes) {
fprintf(stderr, "The size or algo is not valid!\n");
return -1;
}
} else if (crypto_algo > RSAES_PKCS1_V1_5) {
hash_len = get_rsa_hash_len(crypto_algo);
if (hash_len == -1)
return -1;
if (OAEP_HASH_LEN(hash_len) >= (width_bytes - OAEP_OTHER_LEN)) {
fprintf(stderr, "The width_bits or algo is not valid!\n");
return -1;
} else if (size > (width_bytes - OAEP_HASH_LEN(hash_len) -
OAEP_OTHER_LEN)) {
fprintf(stderr, "The size or algo is not valid!\n");
return -1;
}
} else {
return -1;
}
return 0;
}
static int check_rsa_hash_params(uint32_t crypto_algo, int width_bits, int size,
int salt_len)
{
int width_bytes = BITS_TO_BYTES(width_bits);
int salt_temp = 0;
int hash_len = get_rsa_hash_len(crypto_algo);
if (hash_len == -1)
return -1;
switch (crypto_algo) {
case RSASSA_PKCS1_V1_5_SHA1:
if (width_bytes < hash_len + DERCODE_SHA1_LEN + PKCS_V1_5_MIN) {
fprintf(stderr, "The size or algo is not valid!\n");
return -1;
}
return 0;
case RSASSA_PKCS1_V1_5_SHA224:
case RSASSA_PKCS1_V1_5_SHA256:
case RSASSA_PKCS1_V1_5_SHA384:
case RSASSA_PKCS1_V1_5_SHA512:
if (width_bytes < hash_len + DERCODE_SHA_LEN + PKCS_V1_5_MIN) {
fprintf(stderr, "The size or algo is not valid!\n");
return -1;
}
return 0;
case RSASSA_PKCS1_PSS_MGF1_SHA1:
case RSASSA_PKCS1_PSS_MGF1_SHA224:
case RSASSA_PKCS1_PSS_MGF1_SHA256:
case RSASSA_PKCS1_PSS_MGF1_SHA384:
case RSASSA_PKCS1_PSS_MGF1_SHA512:
salt_temp = (salt_len == 0 ? hash_len : salt_len);
if (salt_temp > width_bytes ||
width_bytes < hash_len + salt_temp + PSS_OTHER_LEN) {
fprintf(stderr, "The size or algo is not valid!\n");
return -1;
}
return 0;
default:
return -1;
}
}
int asym_perf_runner_cmd_parser(int argc, char *argv[])
{
int verbosity = CRYPTO_DEF_VERBOSITY;
int is_random = CRYPTO_USE_ZEROS;
unsigned int n = CRYPTO_DEF_COUNT / 10;
unsigned int l = CRYPTO_DEF_LOOPS;
int warmup = CRYPTO_DEF_WARMUP;
int mode = MODE_GENKEYPAIR;
int width_bits = 2048;
int main_algo = ALGO_DH;
int crypto_algo = -1;
int size = 256;
int salt_len = 0;
int i = 0;
/* Parse command line */
for (i = 1; i < argc; i++) {
if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) {
USAGE();
return 0;
}
}
for (i = 1; i < argc; i++) {
if (!strcmp(argv[i], "-a")) {
NEXT_ARG(i);
if (!strcasecmp(argv[i], "DH")) {
main_algo = ALGO_DH;
mode = MODE_GENKEYPAIR;
} else if (!strcasecmp(argv[i], "RSA_GENKEYPAIR")) {
main_algo = ALGO_RSA;
mode = MODE_GENKEYPAIR;
} else if (!strcasecmp(argv[i], "RSA_NOPAD_ENCRYPT")) {
main_algo = ALGO_RSA;
mode = MODE_ENCRYPT;
crypto_algo = RSA_NOPAD;
} else if (!strcasecmp(argv[i], "RSA_NOPAD_DECRYPT")) {
main_algo = ALGO_RSA;
mode = MODE_DECRYPT;
crypto_algo = RSA_NOPAD;
} else if (!strcasecmp(argv[i], "RSAES_PKCS1_V1_5_ENCRYPT")) {
main_algo = ALGO_RSA;
mode = MODE_ENCRYPT;
crypto_algo = RSAES_PKCS1_V1_5;
size -= PKCS_V1_5_MIN;
} else if (!strcasecmp(argv[i], "RSAES_PKCS1_V1_5_DECRYPT")) {
main_algo = ALGO_RSA;
mode = MODE_DECRYPT;
crypto_algo = RSAES_PKCS1_V1_5;
size -= PKCS_V1_5_MIN;
} else if (!strcasecmp(argv[i], "RSAES_PKCS1_OAEP_SHA1_ENCRYPT")) {
main_algo = ALGO_RSA;
mode = MODE_ENCRYPT;
crypto_algo = RSAES_PKCS1_OAEP_SHA1;
size -= OAEP_HASH_LEN(SHA1_LEN) + OAEP_OTHER_LEN;
} else if (!strcasecmp(argv[i], "RSAES_PKCS1_OAEP_SHA1_DECRYPT")) {
main_algo = ALGO_RSA;
mode = MODE_DECRYPT;
crypto_algo = RSAES_PKCS1_OAEP_SHA1;
size -= OAEP_HASH_LEN(SHA1_LEN) + OAEP_OTHER_LEN;
} else if (!strcasecmp(argv[i], "RSAES_PKCS1_OAEP_SHA224_ENCRYPT")) {
main_algo = ALGO_RSA;
mode = MODE_ENCRYPT;
crypto_algo = RSAES_PKCS1_OAEP_SHA224;
size -= OAEP_HASH_LEN(SHA224_LEN) + OAEP_OTHER_LEN;
} else if (!strcasecmp(argv[i], "RSAES_PKCS1_OAEP_SHA224_DECRYPT")) {
main_algo = ALGO_RSA;
mode = MODE_DECRYPT;
crypto_algo = RSAES_PKCS1_OAEP_SHA224;
size -= OAEP_HASH_LEN(SHA224_LEN) + OAEP_OTHER_LEN;
} else if (!strcasecmp(argv[i], "RSAES_PKCS1_OAEP_SHA256_ENCRYPT")) {
main_algo = ALGO_RSA;
mode = MODE_ENCRYPT;
crypto_algo = RSAES_PKCS1_OAEP_SHA256;
size -= OAEP_HASH_LEN(SHA256_LEN) + OAEP_OTHER_LEN;
} else if (!strcasecmp(argv[i], "RSAES_PKCS1_OAEP_SHA256_DECRYPT")) {
main_algo = ALGO_RSA;
mode = MODE_DECRYPT;
crypto_algo = RSAES_PKCS1_OAEP_SHA256;
size -= OAEP_HASH_LEN(SHA256_LEN) + OAEP_OTHER_LEN;
} else if (!strcasecmp(argv[i], "RSAES_PKCS1_OAEP_SHA384_ENCRYPT")) {
main_algo = ALGO_RSA;
mode = MODE_ENCRYPT;
crypto_algo = RSAES_PKCS1_OAEP_SHA384;
size -= OAEP_HASH_LEN(SHA384_LEN) + OAEP_OTHER_LEN;
} else if (!strcasecmp(argv[i], "RSAES_PKCS1_OAEP_SHA384_DECRYPT")) {
main_algo = ALGO_RSA;
mode = MODE_DECRYPT;
crypto_algo = RSAES_PKCS1_OAEP_SHA384;
size -= OAEP_HASH_LEN(SHA384_LEN) + OAEP_OTHER_LEN;
} else if (!strcasecmp(argv[i], "RSAES_PKCS1_OAEP_SHA512_ENCRYPT")) {
main_algo = ALGO_RSA;
mode = MODE_ENCRYPT;
crypto_algo = RSAES_PKCS1_OAEP_SHA512;
size -= OAEP_HASH_LEN(SHA512_LEN) + OAEP_OTHER_LEN;
} else if (!strcasecmp(argv[i], "RSAES_PKCS1_OAEP_SHA512_DECRYPT")) {
main_algo = ALGO_RSA;
mode = MODE_DECRYPT;
crypto_algo = RSAES_PKCS1_OAEP_SHA512;
size -= OAEP_HASH_LEN(SHA512_LEN) + OAEP_OTHER_LEN;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_V1_5_SHA1_SIGN")) {
main_algo = ALGO_RSA;
mode = MODE_SIGN;
crypto_algo = RSASSA_PKCS1_V1_5_SHA1;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_V1_5_SHA1_VERIFY")) {
main_algo = ALGO_RSA;
mode = MODE_VERIFY;
crypto_algo = RSASSA_PKCS1_V1_5_SHA1;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_V1_5_SHA224_SIGN")) {
main_algo = ALGO_RSA;
mode = MODE_SIGN;
crypto_algo = RSASSA_PKCS1_V1_5_SHA224;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_V1_5_SHA224_VERIFY")) {
main_algo = ALGO_RSA;
mode = MODE_VERIFY;
crypto_algo = RSASSA_PKCS1_V1_5_SHA224;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_V1_5_SHA256_SIGN")) {
main_algo = ALGO_RSA;
mode = MODE_SIGN;
crypto_algo = RSASSA_PKCS1_V1_5_SHA256;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_V1_5_SHA256_VERIFY")) {
main_algo = ALGO_RSA;
mode = MODE_VERIFY;
crypto_algo = RSASSA_PKCS1_V1_5_SHA256;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_V1_5_SHA384_SIGN")) {
main_algo = ALGO_RSA;
mode = MODE_SIGN;
crypto_algo = RSASSA_PKCS1_V1_5_SHA384;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_V1_5_SHA384_VERIFY")) {
main_algo = ALGO_RSA;
mode = MODE_VERIFY;
crypto_algo = RSASSA_PKCS1_V1_5_SHA384;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_V1_5_SHA512_SIGN")) {
main_algo = ALGO_RSA;
mode = MODE_SIGN;
crypto_algo = RSASSA_PKCS1_V1_5_SHA512;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_V1_5_SHA512_VERIFY")) {
main_algo = ALGO_RSA;
mode = MODE_VERIFY;
crypto_algo = RSASSA_PKCS1_V1_5_SHA512;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_PSS_MGF1_SHA1_SIGN")) {
main_algo = ALGO_RSA;
mode = MODE_SIGN;
crypto_algo = RSASSA_PKCS1_PSS_MGF1_SHA1;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_PSS_MGF1_SHA1_VERIFY")) {
main_algo = ALGO_RSA;
mode = MODE_VERIFY;
crypto_algo = RSASSA_PKCS1_PSS_MGF1_SHA1;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_PSS_MGF1_SHA224_SIGN")) {
main_algo = ALGO_RSA;
mode = MODE_SIGN;
crypto_algo = RSASSA_PKCS1_PSS_MGF1_SHA224;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_PSS_MGF1_SHA224_VERIFY")) {
main_algo = ALGO_RSA;
mode = MODE_VERIFY;
crypto_algo = RSASSA_PKCS1_PSS_MGF1_SHA224;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_PSS_MGF1_SHA256_SIGN")) {
main_algo = ALGO_RSA;
mode = MODE_SIGN;
crypto_algo = RSASSA_PKCS1_PSS_MGF1_SHA256;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_PSS_MGF1_SHA256_VERIFY")) {
main_algo = ALGO_RSA;
mode = MODE_VERIFY;
crypto_algo = RSASSA_PKCS1_PSS_MGF1_SHA256;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_PSS_MGF1_SHA384_SIGN")) {
main_algo = ALGO_RSA;
mode = MODE_SIGN;
crypto_algo = RSASSA_PKCS1_PSS_MGF1_SHA384;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_PSS_MGF1_SHA384_VERIFY")) {
main_algo = ALGO_RSA;
mode = MODE_VERIFY;
crypto_algo = RSASSA_PKCS1_PSS_MGF1_SHA384;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_PSS_MGF1_SHA512_SIGN")) {
main_algo = ALGO_RSA;
mode = MODE_SIGN;
crypto_algo = RSASSA_PKCS1_PSS_MGF1_SHA512;
} else if (!strcasecmp(argv[i], "RSASSA_PKCS1_PSS_MGF1_SHA512_VERIFY")) {
main_algo = ALGO_RSA;
mode = MODE_VERIFY;
crypto_algo = RSASSA_PKCS1_PSS_MGF1_SHA512;
} else if (!strcasecmp(argv[i], "ECDSA_SIGN")) {
main_algo = ALGO_ECDSA;
mode = MODE_SIGN;
width_bits = 256;
} else if (!strcasecmp(argv[i], "ECDSA_VERIFY")) {
main_algo = ALGO_ECDSA;
mode = MODE_VERIFY;
width_bits = 256;
} else if (!strcasecmp(argv[i], "ECDH")) {
main_algo = ALGO_ECDH;
width_bits = 256;
mode = MODE_GENKEYPAIR;
} else if (!strcasecmp(argv[i], "X25519")) {
main_algo = ALGO_X25519;
width_bits = 256;
mode = MODE_GENKEYPAIR;
} else {
fprintf(stderr, "%s, invalid main_algo\n",
argv[0]);
USAGE();
return 1;
}
} else if (!strcmp(argv[i], "-l")) {
NEXT_ARG(i);
l = atoi(argv[i]);
} else if (!strcmp(argv[i], "-n")) {
NEXT_ARG(i);
n = atoi(argv[i]);
} else if (!strcmp(argv[i], "--random") ||
!strcmp(argv[i], "-r")) {
is_random = CRYPTO_USE_RANDOM;
} else if (!strcmp(argv[i], "-k")) {
NEXT_ARG(i);
size = atoi(argv[i]);
} else if (!strcmp(argv[i], "-d")) {
NEXT_ARG(i);
width_bits = atoi(argv[i]);
} else if (!strcmp(argv[i], "-s")) {
NEXT_ARG(i);
salt_len = atoi(argv[i]);
} else if (!strcmp(argv[i], "-v")) {
verbosity++;
} else if (!strcmp(argv[i], "--warmup") ||
!strcmp(argv[i], "-w")) {
NEXT_ARG(i);
warmup = atoi(argv[i]);
} else {
fprintf(stderr, "%s: invalid argument: %s\n",
argv[0], argv[i]);
USAGE();
return 1;
}
}
if (main_algo == ALGO_RSA) {
if (mode == MODE_ENCRYPT || mode == MODE_DECRYPT) {
if (check_rsa_cipher_params(crypto_algo, width_bits, size)) {
USAGE();
return -1;
}
} else if (mode == MODE_SIGN || mode == MODE_VERIFY) {
if (check_rsa_hash_params(crypto_algo, width_bits, size,
salt_len)) {
USAGE();
return -1;
}
}
}
if (mode == MODE_GENKEYPAIR)
size = BITS_TO_BYTES(width_bits);
return asym_perf_run_test(mode, size, n, l, is_random, warmup,
verbosity, width_bits, main_algo,
salt_len, crypto_algo);
}

View File

@@ -0,0 +1,145 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2015, Linaro Limited
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "xtest_test.h"
#include "xtest_helpers.h"
#include <ta_storage_benchmark.h>
#include <util.h>
#define DO_VERIFY 0
#define DEFAULT_DATA_SIZE (2 * 1024 * 1024) /* 2MB */
#define DEFAULT_CHUNK_SIZE (1 * 1024) /* 1KB */
#define DEFAULT_COUNT (10)
size_t data_size_table[] = {
256,
512,
1024,
2 * 1024,
4 * 1024,
16 * 1024,
512 * 1024,
1024 * 1024,
0
};
static void xtest_tee_benchmark_1001(ADBG_Case_t *Case_p);
static void xtest_tee_benchmark_1002(ADBG_Case_t *Case_p);
static void xtest_tee_benchmark_1003(ADBG_Case_t *Case_p);
static TEEC_Result run_test_with_args(enum storage_benchmark_cmd cmd,
uint32_t arg0, uint32_t arg1, uint32_t arg2,
uint32_t arg3, uint32_t *out0, uint32_t *out1)
{
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
TEEC_Result res = TEEC_ERROR_GENERIC;
TEEC_Session sess = { };
uint32_t orig = 0;
res = xtest_teec_open_session(&sess, &storage_benchmark_ta_uuid, NULL, &orig);
if (res != TEEC_SUCCESS)
return res;
op.params[0].value.a = arg0;
op.params[0].value.b = arg1;
op.params[1].value.a = arg2;
op.params[1].value.b = arg3;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT,
TEEC_VALUE_INPUT, TEEC_VALUE_OUTPUT, TEEC_NONE);
res = TEEC_InvokeCommand(&sess, cmd, &op, &orig);
if (out0)
*out0 = op.params[2].value.a;
if (out1)
*out1 = op.params[2].value.b;
TEEC_CloseSession(&sess);
return res;
}
struct test_record {
size_t data_size;
float spent_time;
float speed_in_kb;
};
static TEEC_Result run_chunk_access_test(enum storage_benchmark_cmd cmd,
uint32_t data_size, uint32_t chunk_size, struct test_record *rec)
{
TEE_Result res = TEEC_ERROR_GENERIC;
uint32_t spent_time = 0;
res = run_test_with_args(cmd, data_size, chunk_size, DO_VERIFY, 0,
&spent_time, NULL);
rec->data_size = data_size;
rec->spent_time = (float)spent_time / 1000.0;
rec->speed_in_kb = ((float)data_size / 1024.0) / rec->spent_time;
return res;
}
static void show_test_result(struct test_record records[], size_t size)
{
size_t i = 0;
printf("-----------------+---------------+----------------\n");
printf(" Data Size (B) \t | Time (s)\t | Speed (kB/s)\t \n");
printf("-----------------+---------------+----------------\n");
for (i = 0; i < size; i++) {
printf(" %8zd \t | %8.3f \t | %8.3f\n",
records[i].data_size, records[i].spent_time,
records[i].speed_in_kb);
}
printf("-----------------+---------------+----------------\n");
}
static void chunk_test(ADBG_Case_t *c, enum storage_benchmark_cmd cmd)
{
uint32_t chunk_size = DEFAULT_CHUNK_SIZE;
struct test_record records[ARRAY_SIZE(data_size_table) - 1];
size_t i = 0;
for (i = 0; data_size_table[i]; i++) {
ADBG_EXPECT_TEEC_SUCCESS(c,
run_chunk_access_test(cmd, data_size_table[i],
chunk_size, &records[i]));
}
show_test_result(records, ARRAY_SIZE(records));
}
static void xtest_tee_benchmark_1001(ADBG_Case_t *c)
{
chunk_test(c, TA_STORAGE_BENCHMARK_CMD_TEST_WRITE);
}
static void xtest_tee_benchmark_1002(ADBG_Case_t *c)
{
chunk_test(c, TA_STORAGE_BENCHMARK_CMD_TEST_READ);
}
static void xtest_tee_benchmark_1003(ADBG_Case_t *c)
{
chunk_test(c, TA_STORAGE_BENCHMARK_CMD_TEST_REWRITE);
}
ADBG_CASE_DEFINE(benchmark, 1001, xtest_tee_benchmark_1001,
"TEE Trusted Storage Performance Test (WRITE)");
ADBG_CASE_DEFINE(benchmark, 1002, xtest_tee_benchmark_1002,
"TEE Trusted Storage Performance Test (READ)");
ADBG_CASE_DEFINE(benchmark, 1003, xtest_tee_benchmark_1003,
"TEE Trusted Storage Performance Test (REWRITE)");

View File

@@ -0,0 +1,97 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2015, Linaro Limited
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "xtest_test.h"
#include "xtest_helpers.h"
#include <crypto_common.h>
#include <util.h>
/* SHA bechmarks */
static void xtest_tee_benchmark_2001(ADBG_Case_t *Case_p);
static void xtest_tee_benchmark_2002(ADBG_Case_t *Case_p);
/* AES benchmarks */
static void xtest_tee_benchmark_2011(ADBG_Case_t *Case_p);
static void xtest_tee_benchmark_2012(ADBG_Case_t *Case_p);
/* ----------------------------------------------------------------------- */
/* -------------------------- SHA Benchmarks ----------------------------- */
/* ----------------------------------------------------------------------- */
static void xtest_tee_benchmark_2001(ADBG_Case_t *c)
{
UNUSED(c);
int algo = TA_SHA_SHA1; /* Algorithm */
size_t size = 1024; /* Buffer size */
int offset = 0; /* Buffer offset wrt. alloc'ed address */
hash_perf_run_test(algo, size, CRYPTO_DEF_COUNT,
CRYPTO_DEF_LOOPS, CRYPTO_USE_RANDOM, offset,
CRYPTO_DEF_WARMUP, CRYPTO_DEF_VERBOSITY);
}
static void xtest_tee_benchmark_2002(ADBG_Case_t *c)
{
UNUSED(c);
int algo = TA_SHA_SHA256; /* Algorithm */
size_t size = 4096; /* Buffer size */
int offset = 0; /* Buffer offset wrt. alloc'ed address */
hash_perf_run_test(algo, size, CRYPTO_DEF_COUNT,
CRYPTO_DEF_LOOPS, CRYPTO_USE_RANDOM, offset,
CRYPTO_DEF_WARMUP, CRYPTO_DEF_VERBOSITY);
}
ADBG_CASE_DEFINE(benchmark, 2001, xtest_tee_benchmark_2001,
"TEE SHA Performance test (TA_SHA_SHA1)");
ADBG_CASE_DEFINE(benchmark, 2002, xtest_tee_benchmark_2002,
"TEE SHA Performance test (TA_SHA_SHA226)");
/* ----------------------------------------------------------------------- */
/* -------------------------- AES Benchmarks ----------------------------- */
/* ----------------------------------------------------------------------- */
static void xtest_tee_benchmark_2011(ADBG_Case_t *c)
{
UNUSED(c);
int mode = TA_AES_ECB; /* AES mode */
int decrypt = 0; /* Encrypt */
int keysize = AES_128;
size_t size = 1024; /* Buffer size */
aes_perf_run_test(mode, keysize, decrypt, size, CRYPTO_DEF_UNIT_SIZE,
CRYPTO_DEF_COUNT, CRYPTO_DEF_LOOPS, CRYPTO_USE_RANDOM,
AES_PERF_INPLACE, CRYPTO_DEF_WARMUP, CRYPTO_DEF_VERBOSITY);
}
static void xtest_tee_benchmark_2012(ADBG_Case_t *c)
{
UNUSED(c);
int mode = TA_AES_CBC; /* AES mode */
int decrypt = 0; /* Encrypt */
int keysize = AES_256;
size_t size = 1024; /* Buffer size */
aes_perf_run_test(mode, keysize, decrypt, size, CRYPTO_DEF_UNIT_SIZE,
CRYPTO_DEF_COUNT, CRYPTO_DEF_LOOPS, CRYPTO_USE_RANDOM,
AES_PERF_INPLACE, CRYPTO_DEF_WARMUP, CRYPTO_DEF_VERBOSITY);
}
ADBG_CASE_DEFINE(benchmark, 2011, xtest_tee_benchmark_2011,
"TEE AES Performance test (TA_AES_ECB)");
ADBG_CASE_DEFINE(benchmark, 2012, xtest_tee_benchmark_2012,
"TEE AES Performance test (TA_AES_CBC)");

View File

@@ -0,0 +1,58 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2023, Linaro Limited
*/
#include <err.h>
#include <ta_storage.h>
#include <tee_client_api.h>
#include <stdlib.h>
#include <util.h>
#include "clear_storage.h"
static int clear_storage_for_ta(TEEC_UUID *uuid)
{
TEEC_Result res = TEEC_ERROR_GENERIC;
TEEC_Context ctx = { };
TEEC_Session sess = { };
TEEC_Operation op = { };
uint32_t eo = 0;
res = TEEC_InitializeContext(NULL, &ctx);
if (res)
errx(EXIT_FAILURE, "TEEC_InitializeContext: %#"PRIx32, res);
res = TEEC_OpenSession(&ctx, &sess, uuid, TEEC_LOGIN_PUBLIC, NULL,
NULL, &eo);
if (res)
errx(EXIT_FAILURE,
"TEEC_OpenSession: res %#"PRIx32" err_orig %#"PRIx32,
res, eo);
op.paramTypes = TEEC_PARAM_TYPES(TEEC_NONE, TEEC_NONE, TEEC_NONE,
TEEC_NONE);
res = TEEC_InvokeCommand(&sess, TA_STORAGE_CMD_CLEAR_STORAGE, &op, &eo);
if (res)
errx(EXIT_FAILURE,
"TEEC_InvokeCommand: res %#"PRIx32" err_orig %#"PRIx32,
res, eo);
TEEC_CloseSession(&sess);
TEEC_FinalizeContext(&ctx);
return 0;
}
int clear_storage(void)
{
TEEC_UUID uuid[] = { TA_STORAGE_UUID, TA_STORAGE2_UUID };
size_t i = 0;
int res = 0;
for (i = 0; i < ARRAY_SIZE(uuid); i++) {
res = clear_storage_for_ta(uuid + i);
if (res)
break;
}
return res;
}

View File

@@ -0,0 +1,11 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2023, Linaro Limited
*/
#ifndef CLEAR_STORAGE_H
#define CLEAR_STORAGE_H
int clear_storage(void);
#endif /*CLEAR_STORAGE_H*/

View File

@@ -0,0 +1,53 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* Copyright (c) 2015, Linaro Limited
* All rights reserved.
*/
#ifndef XTEST_CRYPTO_COMMON_H
#define XTEST_CRYPTO_COMMON_H
#include "ta_crypto_perf.h"
#define AES_PERF_INPLACE 0
#define CRYPTO_DEF_LOOPS 1 /* Default amount of inner loops */
#define CRYPTO_USE_ZEROS 0 /* Init input data to zero */
#define CRYPTO_USE_RANDOM 1 /* Get input data from /dev/urandom */
#define CRYPTO_NOT_INITED 2 /* Input data are not initialized */
#define CRYPTO_DEF_WARMUP 2 /* Start with a 2-second busy loop */
#define CRYPTO_DEF_COUNT 5000 /* Default number of measurements */
#define CRYPTO_DEF_VERBOSITY 0
#define CRYPTO_DEF_UNIT_SIZE 0 /* Process whole buffer */
#define _verbose(lvl, ...) \
do { \
if (verbosity >= lvl) { \
printf(__VA_ARGS__); \
fflush(stdout); \
} \
} while (0)
#define verbose(...) _verbose(1, __VA_ARGS__)
#define vverbose(...) _verbose(2, __VA_ARGS__)
int aes_perf_runner_cmd_parser(int argc, char *argv[]);
void aes_perf_run_test(int mode, int keysize, int decrypt, size_t size,
size_t unit, unsigned int n, unsigned int l,
int random_in, int in_place, int warmup, int verbosity);
int hash_perf_runner_cmd_parser(int argc, char *argv[]);
void hash_perf_run_test(int algo, size_t size, unsigned int n,
unsigned int l, int random_in, int offset,
int warmup, int verbosity);
int asym_perf_runner_cmd_parser(int argc, char *argv[]);
#ifdef CFG_SECURE_DATA_PATH
int sdp_basic_runner_cmd_parser(int argc, char *argv[]);
#endif
#endif /* XTEST_CRYPTO_PERF_H */

View File

@@ -0,0 +1,534 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2022-2023, Arm Limited and Contributors. All rights reserved.
*/
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include "include/uapi/linux/arm_ffa_user.h"
#include "xtest_helpers.h"
#include "xtest_test.h"
#define FFA_DRIVER_FS_PATH "/sys/kernel/debug/arm_ffa_user"
#define SPMC_TEST_OK 0xaa
#define INCORRECT_ENDPOINT_ID 0xffff
#define NORMAL_WORLD_ENDPOINT_ID 0
#define FFA_USER_REQ_VER_MAJOR 5
#define FFA_USER_REQ_VER_MINOR 0
#define FFA_USER_REQ_VER_PATCH 1
/* Get the 32 least significant bits of a handle.*/
#define MEM_SHARE_HANDLE_LOW(x) ((x) & 0xffffffff)
/* Get the 32 most significant bits of a handle.*/
#define MEM_SHARE_HANDLE_HIGH(x) (((x) >> 32) & 0xffffffff)
#define MEM_SHARE_HANDLE_LOW_INDEX 1
#define MEM_SHARE_HANDLE_HIGH_INDEX 2
#define MEM_SHARE_HANDLE_ENDPOINT_INDEX 3
enum sp_tests {
EP_TEST_SP,
EP_TEST_SP_COMMUNICATION,
EP_TEST_SP_INCREASE,
EP_TRY_R_ACCESS,
EP_TRY_W_ACCESS,
EP_RETRIEVE,
EP_RELINQUISH,
EP_SP_MEM_SHARING,
EP_SP_MEM_SHARING_MULTI,
EP_SP_MEM_SHARING_EXC,
EP_SP_MEM_INCORRECT_ACCESS,
EP_SP_NOP
};
static int ffa_fd = -1;
static const char test_endpoint1_uuid[] =
"5c9edbc3-7b3a-4367-9f83-7c191ae86a37";
static const char test_endpoint2_uuid[] =
"7817164c-c40c-4d1a-867a-9bb2278cf41a";
static const char test_endpoint3_uuid[] =
"23eb0100-e32a-4497-9052-2f11e584afa6";
static struct ffa_ioctl_ep_desc test_endpoint1 = {
.uuid_ptr = (uint64_t)test_endpoint1_uuid,
};
static struct ffa_ioctl_ep_desc test_endpoint2 = {
.uuid_ptr = (uint64_t)test_endpoint2_uuid,
};
static struct ffa_ioctl_ep_desc test_endpoint3 = {
.uuid_ptr = (uint64_t)test_endpoint3_uuid,
};
static bool check_ffa_user_version(void)
{
FILE *f = NULL;
int ver_major = -1;
int ver_minor = -1;
int ver_patch = -1;
int scan_cnt = 0;
f = fopen("/sys/module/arm_ffa_user/version", "r");
if (f) {
scan_cnt = fscanf(f, "%d.%d.%d",
&ver_major, &ver_minor, &ver_patch);
fclose(f);
if (scan_cnt != 3) {
printf("error: failed to parse arm_ffa_user version\n");
return false;
}
} else {
printf("error: failed to read arm_ffa_user module info - %s\n",
strerror(errno));
return false;
}
if (ver_major != FFA_USER_REQ_VER_MAJOR)
goto err;
if (ver_minor < FFA_USER_REQ_VER_MINOR)
goto err;
if (ver_minor == FFA_USER_REQ_VER_MINOR)
if (ver_patch < FFA_USER_REQ_VER_PATCH)
goto err;
return true;
err:
printf("error: Incompatible arm_ffa_user driver detected.");
printf("Found v%d.%d.%d wanted >= v%d.%d.%d)\n",
ver_major, ver_minor, ver_patch, FFA_USER_REQ_VER_MAJOR,
FFA_USER_REQ_VER_MINOR, FFA_USER_REQ_VER_PATCH);
return false;
}
static void close_debugfs(void)
{
int err = 0;
if (ffa_fd >= 0) {
err = close(ffa_fd);
if (err < 0)
Do_ADBG_Log("Error: Could not close the FF-A driver");
}
ffa_fd = -1;
}
static bool init_sp_xtest(ADBG_Case_t *c)
{
if (!check_ffa_user_version())
return false;
if (ffa_fd < 0) {
ffa_fd = open(FFA_DRIVER_FS_PATH, O_RDWR);
if (ffa_fd < 0) {
Do_ADBG_Log("Error: Could not open the FF-A driver");
return false;
}
}
return true;
}
static int start_sp_test(uint16_t endpoint, enum sp_tests test,
struct ffa_ioctl_msg_args *args)
{
args->dst_id = endpoint;
args->args[0] = test;
return ioctl(ffa_fd, FFA_IOC_MSG_SEND, args);
}
static uint16_t get_endpoint_id(uint64_t endp)
{
struct ffa_ioctl_ep_desc sid = { .uuid_ptr = endp };
/* Get ID of destination SP based on UUID */
if (ioctl(ffa_fd, FFA_IOC_GET_PART_ID, &sid))
return INCORRECT_ENDPOINT_ID;
return sid.id;
}
static void xtest_ffa_spmc_test_1001(ADBG_Case_t *c)
{
struct ffa_ioctl_msg_args args = { 0 };
uint16_t endpoint1_id = 0;
uint16_t endpoint2_id = 0;
int rc = 0;
Do_ADBG_BeginSubCase(c, "SP1 comms check");
if (!init_sp_xtest(c)) {
Do_ADBG_Log("Failed to initialise test, skipping SP test");
goto out;
}
endpoint1_id = get_endpoint_id(test_endpoint1.uuid_ptr);
if (endpoint1_id == INCORRECT_ENDPOINT_ID) {
Do_ADBG_Log("Could not contact xtest_1 sp, skipping SP test");
Do_ADBG_Log("Add xtest_1 sp to the image to enable tests");
goto out;
}
memset(&args, 0, sizeof(args));
rc = start_sp_test(endpoint1_id, EP_TEST_SP, &args);
if (!ADBG_EXPECT_COMPARE_SIGNED(c, rc, ==, 0))
goto out;
if (!ADBG_EXPECT_COMPARE_UNSIGNED(c, args.args[0], ==, SPMC_TEST_OK))
goto out;
Do_ADBG_EndSubCase(c, "SP1 comms check");
Do_ADBG_BeginSubCase(c, "Sp2 comms check");
endpoint2_id = get_endpoint_id(test_endpoint2.uuid_ptr);
if (endpoint2_id == INCORRECT_ENDPOINT_ID) {
Do_ADBG_Log("Could not contact xtest_2 sp, skipping SP test");
Do_ADBG_Log("Add xtest_2 sp to the image to enable tests");
goto out;
}
memset(&args, 0, sizeof(args));
rc = start_sp_test(endpoint2_id, EP_TEST_SP, &args);
if (!ADBG_EXPECT_COMPARE_SIGNED(c, rc, ==, 0))
goto out;
if (!ADBG_EXPECT_COMPARE_UNSIGNED(c, args.args[0], ==, SPMC_TEST_OK))
goto out;
Do_ADBG_EndSubCase(c, "Sp2 comms check");
/* Test SP to SP messaging. */
Do_ADBG_BeginSubCase(c, "SP to SP messaging check");
memset(&args, 0, sizeof(args));
args.args[1] = endpoint2_id;
rc = start_sp_test(endpoint1_id, EP_TEST_SP_COMMUNICATION, &args);
ADBG_EXPECT_COMPARE_SIGNED(c, rc, ==, 0);
ADBG_EXPECT_COMPARE_UNSIGNED(c, args.args[0], ==, SPMC_TEST_OK);
memset(&args, 0, sizeof(args));
args.args[1] = endpoint1_id;
rc = start_sp_test(endpoint2_id, EP_TEST_SP_COMMUNICATION, &args);
ADBG_EXPECT_COMPARE_SIGNED(c, rc, ==, 0);
ADBG_EXPECT_COMPARE_UNSIGNED(c, args.args[0], ==, SPMC_TEST_OK);
out:
Do_ADBG_EndSubCase(c, NULL);
close_debugfs();
}
ADBG_CASE_DEFINE(ffa_spmc, 1001, xtest_ffa_spmc_test_1001,
"Test FF-A communication");
static void check_alive(ADBG_Case_t *c, uint16_t endpoint)
{
struct ffa_ioctl_msg_args args = {};
int rc = 0;
args.dst_id = endpoint;
rc = start_sp_test(endpoint, EP_SP_NOP, &args);
ADBG_EXPECT_COMPARE_SIGNED(c, rc, ==, 0);
ADBG_EXPECT_COMPARE_UNSIGNED(c, args.args[0], ==, SPMC_TEST_OK);
}
static int share_mem(uint16_t endpoint, uint64_t *handle)
{
int status = false;
struct ffa_ioctl_shm_desc shm_desc = { .dst_id = endpoint,
.size = 0x1000 };
status = ioctl(ffa_fd, FFA_IOC_SHM_INIT, &shm_desc);
if (!status)
*handle = shm_desc.handle;
return status;
}
static int set_up_mem(struct ffa_ioctl_ep_desc *endp,
struct ffa_ioctl_msg_args *args,
uint64_t *handle, ADBG_Case_t *c)
{
uint16_t endpoint = 0;
int rc = 0;
endpoint = get_endpoint_id(endp->uuid_ptr);
*handle = 0;
/* Share memory with SP*/
rc = share_mem(endpoint, handle);
ADBG_EXPECT_COMPARE_SIGNED(c, rc, ==, 0);
if (!ADBG_EXPECT_NOT_NULL(c, handle))
return TEEC_ERROR_GENERIC;
/* SP will retrieve the memory region. */
memset(args, 0, sizeof(*args));
args->dst_id = endpoint;
args->args[MEM_SHARE_HANDLE_LOW_INDEX] = MEM_SHARE_HANDLE_LOW(*handle);
args->args[MEM_SHARE_HANDLE_HIGH_INDEX] =
MEM_SHARE_HANDLE_HIGH(*handle);
args->args[MEM_SHARE_HANDLE_ENDPOINT_INDEX] = NORMAL_WORLD_ENDPOINT_ID;
rc = start_sp_test(endpoint, EP_RETRIEVE, args);
ADBG_EXPECT_COMPARE_SIGNED(c, rc, ==, 0);
ADBG_EXPECT_COMPARE_UNSIGNED(c, args->args[0], ==, SPMC_TEST_OK);
return TEEC_SUCCESS;
}
static void xtest_ffa_spmc_test_1002(ADBG_Case_t *c)
{
struct ffa_ioctl_msg_args args = { 0 };
uint64_t handle = 0;
uint16_t endpoint1_id = 0;
int rc = 0;
struct ffa_ioctl_shm_desc shm_desc = { 0 };
if (!init_sp_xtest(c)) {
Do_ADBG_Log("Failed to initialise test, skipping SP test");
goto out;
}
endpoint1_id = get_endpoint_id(test_endpoint1.uuid_ptr);
if (endpoint1_id == INCORRECT_ENDPOINT_ID) {
Do_ADBG_Log("Could not contact xtest_1 sp, skipping SP test");
Do_ADBG_Log("Add xtest_1 sp to the image to enable tests");
goto out;
}
memset(&args, 0, sizeof(args));
rc = start_sp_test(endpoint1_id, EP_TEST_SP, &args);
ADBG_EXPECT_COMPARE_SIGNED(c, rc, ==, 0);
if (!ADBG_EXPECT_COMPARE_UNSIGNED(c, args.args[0], ==, SPMC_TEST_OK))
goto out;
/* Set up memory and have the SP retrieve it. */
Do_ADBG_BeginSubCase(c, "Test memory set-up");
memset(&args, 0, sizeof(args));
if (set_up_mem(&test_endpoint1, &args, &handle, c)) {
Do_ADBG_EndSubCase(c, "Test memory set-up");
goto out;
}
Do_ADBG_EndSubCase(c, "Test memory set-up");
/* Retrieve it again. */
Do_ADBG_BeginSubCase(c, "Test retrieve memory second time");
memset(&args, 0, sizeof(args));
args.dst_id = endpoint1_id;
args.args[MEM_SHARE_HANDLE_LOW_INDEX] = MEM_SHARE_HANDLE_LOW(handle);
args.args[MEM_SHARE_HANDLE_HIGH_INDEX] = MEM_SHARE_HANDLE_HIGH(handle);
args.args[MEM_SHARE_HANDLE_ENDPOINT_INDEX] = NORMAL_WORLD_ENDPOINT_ID;
rc = start_sp_test(endpoint1_id, EP_RETRIEVE, &args);
ADBG_EXPECT_COMPARE_SIGNED(c, rc, ==, 0);
Do_ADBG_EndSubCase(c, "Test retrieve memory second time");
/*Access it. */
Do_ADBG_BeginSubCase(c, "Test accessing memory");
memset(&args, 0, sizeof(args));
rc = start_sp_test(endpoint1_id, EP_TRY_R_ACCESS, &args);
ADBG_EXPECT_COMPARE_SIGNED(c, rc, ==, 0);
ADBG_EXPECT_COMPARE_UNSIGNED(c, args.args[0], ==, SPMC_TEST_OK);
Do_ADBG_EndSubCase(c, "Test accessing memory");
/*RELINQUISH the memory area.*/
Do_ADBG_BeginSubCase(c, "Test relinquish memory");
memset(&args, 0, sizeof(args));
args.args[MEM_SHARE_HANDLE_LOW_INDEX] = MEM_SHARE_HANDLE_LOW(handle);
args.args[MEM_SHARE_HANDLE_HIGH_INDEX] = MEM_SHARE_HANDLE_HIGH(handle);
rc = start_sp_test(endpoint1_id, EP_RELINQUISH, &args);
ADBG_EXPECT_COMPARE_SIGNED(c, rc, ==, 0);
ADBG_EXPECT_COMPARE_UNSIGNED(c, args.args[0], ==, SPMC_TEST_OK);
check_alive(c, endpoint1_id);
Do_ADBG_EndSubCase(c, "Test relinquish memory");
/* Try to reclaim the mem with the SP still having access to it. */
Do_ADBG_BeginSubCase(c, "Test incorrect reclaim");
shm_desc.handle = handle;
shm_desc.dst_id = endpoint1_id;
rc = ioctl(ffa_fd, FFA_IOC_SHM_DEINIT, &shm_desc);
ADBG_EXPECT_COMPARE_SIGNED(c, rc, <, 0);
Do_ADBG_EndSubCase(c, "Test incorrect reclaim");
/*RELINQUISH the memory area.*/
Do_ADBG_BeginSubCase(c, "Test relinquish memory second time");
memset(&args, 0, sizeof(args));
args.args[MEM_SHARE_HANDLE_LOW_INDEX] = MEM_SHARE_HANDLE_LOW(handle);
args.args[MEM_SHARE_HANDLE_HIGH_INDEX] = MEM_SHARE_HANDLE_HIGH(handle);
rc = start_sp_test(endpoint1_id, EP_RELINQUISH, &args);
ADBG_EXPECT_COMPARE_SIGNED(c, rc, ==, 0);
ADBG_EXPECT_COMPARE_UNSIGNED(c, args.args[0], ==, SPMC_TEST_OK);
check_alive(c, endpoint1_id);
Do_ADBG_EndSubCase(c, "Test relinquish memory second time");
/* Try to reclaim again this time it should work. */
Do_ADBG_BeginSubCase(c, "Test correct reclaim");
shm_desc.handle = handle;
shm_desc.dst_id = endpoint1_id;
rc = ioctl(ffa_fd, FFA_IOC_SHM_DEINIT, &shm_desc);
ADBG_EXPECT_COMPARE_SIGNED(c, rc, >=, 0);
check_alive(c, endpoint1_id);
Do_ADBG_EndSubCase(c, "Test correct reclaim");
/* SP will try to retrieve invalid memory region. */
Do_ADBG_BeginSubCase(c, "Test retrieve invalid memory region");
memset(&args, 0, sizeof(args));
args.args[MEM_SHARE_HANDLE_LOW_INDEX] = MEM_SHARE_HANDLE_LOW(handle);
args.args[MEM_SHARE_HANDLE_HIGH_INDEX] = MEM_SHARE_HANDLE_HIGH(handle);
args.args[MEM_SHARE_HANDLE_ENDPOINT_INDEX] = NORMAL_WORLD_ENDPOINT_ID;
rc = start_sp_test(endpoint1_id, EP_RETRIEVE, &args);
ADBG_EXPECT_COMPARE_SIGNED(c, rc, ==, 0);
ADBG_EXPECT_COMPARE_UNSIGNED(c, args.args[0], !=, SPMC_TEST_OK);
check_alive(c, endpoint1_id);
Do_ADBG_EndSubCase(c, "Test retrieve invalid memory region");
out:
close_debugfs();
}
ADBG_CASE_DEFINE(ffa_spmc, 1002, xtest_ffa_spmc_test_1002,
"Test FF-A memory: share memory from Normal World to SP");
static void xtest_ffa_spmc_test_1003(ADBG_Case_t *c)
{
struct ffa_ioctl_msg_args args = { 0 };
uint16_t endpoint1 = 0;
uint16_t endpoint2 = 0;
int rc = 0;
if (!init_sp_xtest(c)) {
Do_ADBG_Log("Failed to initialise test, skipping SP test");
goto out;
}
endpoint1 = get_endpoint_id(test_endpoint1.uuid_ptr);
if (endpoint1 == INCORRECT_ENDPOINT_ID) {
Do_ADBG_Log("Could not contact xtest_1 sp, skipping SP test");
Do_ADBG_Log("Add xtest_1 sp to the image to enable tests");
goto out;
}
/* Test SP to SP memory sharing. */
endpoint2 = get_endpoint_id(test_endpoint2.uuid_ptr);
if (endpoint2 == INCORRECT_ENDPOINT_ID) {
Do_ADBG_Log("Could not contact xtest_2 sp, skipping SP test");
Do_ADBG_Log("Add xtest_2 sp to the image to enable tests");
goto out;
}
memset(&args, 0, sizeof(args));
args.args[1] = endpoint2;
rc = start_sp_test(endpoint1, EP_SP_MEM_SHARING, &args);
ADBG_EXPECT_COMPARE_SIGNED(c, rc, ==, 0);
ADBG_EXPECT_COMPARE_UNSIGNED(c, args.args[0], ==, SPMC_TEST_OK);
out:
close_debugfs();
}
ADBG_CASE_DEFINE(ffa_spmc, 1003, xtest_ffa_spmc_test_1003,
"Test FF-A memory: SP to SP");
static void xtest_ffa_spmc_test_1004(ADBG_Case_t *c)
{
struct ffa_ioctl_msg_args args = { 0 };
uint16_t endpoint1 = 0;
uint16_t endpoint2 = 0;
int rc = 0;
if (!init_sp_xtest(c)) {
Do_ADBG_Log("Failed to initialise test, skipping SP test");
goto out;
}
endpoint1 = get_endpoint_id(test_endpoint1.uuid_ptr);
if (endpoint1 == INCORRECT_ENDPOINT_ID) {
Do_ADBG_Log("Could not contact xtest_1 sp, skipping SP test");
Do_ADBG_Log("Add xtest_1 sp to the image to enable tests");
goto out;
}
/* Test SP to SP memory sharing. */
endpoint2 = get_endpoint_id(test_endpoint2.uuid_ptr);
if (endpoint2 == INCORRECT_ENDPOINT_ID) {
Do_ADBG_Log("Could not contact xtest_2 sp, skipping SP test");
Do_ADBG_Log("Add xtest_2 sp to the image to enable tests");
goto out;
}
Do_ADBG_BeginSubCase(c, "Test sharing with exc access");
memset(&args, 0, sizeof(args));
args.args[1] = endpoint2;
rc = start_sp_test(endpoint1, EP_SP_MEM_SHARING_EXC, &args);
ADBG_EXPECT_COMPARE_SIGNED(c, rc, ==, 0);
ADBG_EXPECT_COMPARE_UNSIGNED(c, args.args[0], ==, SPMC_TEST_OK);
Do_ADBG_EndSubCase(c, "Test sharing with exc access");
Do_ADBG_BeginSubCase(c, "Test sharing with incorrect access");
memset(&args, 0, sizeof(args));
args.args[1] = endpoint2;
rc = start_sp_test(endpoint1, EP_SP_MEM_INCORRECT_ACCESS, &args);
ADBG_EXPECT_COMPARE_SIGNED(c, rc, ==, 0);
ADBG_EXPECT_COMPARE_UNSIGNED(c, args.args[0], ==, SPMC_TEST_OK);
Do_ADBG_EndSubCase(c, "Test sharing with incorrect access");
out:
close_debugfs();
}
ADBG_CASE_DEFINE(ffa_spmc, 1004, xtest_ffa_spmc_test_1004,
"Test FF-A memory: Access and flags");
static void xtest_ffa_spmc_test_1005(ADBG_Case_t *c)
{
struct ffa_ioctl_msg_args args = { 0 };
uint16_t endpoint1 = 0;
uint16_t endpoint2 = 0;
uint16_t endpoint3 = 0;
int rc = 0;
if (!init_sp_xtest(c)) {
Do_ADBG_Log("Failed to initialise test, skipping SP test");
goto out;
}
endpoint1 = get_endpoint_id(test_endpoint1.uuid_ptr);
if (endpoint1 == INCORRECT_ENDPOINT_ID) {
Do_ADBG_Log("Could not contact xtest_1 sp, skipping SP test");
Do_ADBG_Log("Add xtest_1 sp to the image to enable tests");
goto out;
}
endpoint2 = get_endpoint_id(test_endpoint2.uuid_ptr);
if (endpoint2 == INCORRECT_ENDPOINT_ID) {
Do_ADBG_Log("Could not contact xtest_2 sp, skipping SP test");
Do_ADBG_Log("Add xtest_2 sp to the image to enable tests");
goto out;
}
endpoint3 = get_endpoint_id(test_endpoint3.uuid_ptr);
if (endpoint3 == INCORRECT_ENDPOINT_ID) {
Do_ADBG_Log("Could not contact xtest_3 sp, skipping SP test");
Do_ADBG_Log("Add xtest_3 sp to the image to enable tests");
goto out;
}
memset(&args, 0, sizeof(args));
args.args[1] = endpoint2;
args.args[2] = endpoint3;
rc = start_sp_test(endpoint1, EP_SP_MEM_SHARING_MULTI, &args);
ADBG_EXPECT_COMPARE_SIGNED(c, rc, ==, 0);
ADBG_EXPECT_COMPARE_UNSIGNED(c, args.args[0], ==, SPMC_TEST_OK);
out:
close_debugfs();
}
ADBG_CASE_DEFINE(regression, 1005, xtest_ffa_spmc_test_1005,
"Test FF-A memory: multiple receiver");

View File

@@ -0,0 +1,137 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2014, STMicroelectronics International N.V. -->
<!-- All rights reserved. -->
<!-- Copyright (c) 2020, Linaro Limied-->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are met: -->
<!-- -->
<!-- 1. Redistributions of source code must retain the above copyright notice, -->
<!-- this list of conditions and the following disclaimer. -->
<!-- -->
<!-- 2. Redistributions in binary form must reproduce the above copyright notice, -->
<!-- this list of conditions and the following disclaimer in the documentation -->
<!-- and/or other materials provided with the distribution. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -->
<!-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -->
<!-- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -->
<!-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -->
<!-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -->
<!-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -->
<!-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -->
<!-- POSSIBILITY OF SUCH DAMAGE. -->
<xsl:stylesheet version="1.0"
xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:param name="target"/>
<xsl:template match="package">
<xsl:text>
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
* Copyright (c) 2020, Linaro Limited
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License Version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include "xml_client_api.h"
</xsl:text>
<xsl:for-each select="initial-state/scenario">
/*<xsl:value-of select="substring(substring-after(./@name, '('), 0, 9)" />*/
static void gp_test_teec_<xsl:value-of select="position()+10000" />(ADBG_Case_t *c __maybe_unused)
{
<xsl:for-each select="./preamble/call/operation">
<xsl:apply-templates select="."></xsl:apply-templates>
</xsl:for-each>
<xsl:for-each select="./body/call/operation">
<xsl:apply-templates select="."></xsl:apply-templates>
</xsl:for-each>
<xsl:for-each select="./postamble/call/operation">
<xsl:apply-templates select="."></xsl:apply-templates>
</xsl:for-each>
}
</xsl:for-each>
<xsl:for-each select="initial-state/scenario">
<xsl:variable name="position" select="position()+10000" />
ADBG_CASE_DEFINE(gp, <xsl:value-of select="$position" />, gp_test_teec_<xsl:value-of select="$position" /><xsl:text>, "</xsl:text><xsl:value-of select="substring(substring-after(./@name, '('), 0, 9)" /><xsl:text>");</xsl:text>
</xsl:for-each>
</xsl:template>
<xsl:template match="operation">
<xsl:choose>
<xsl:when test="(contains(./argument[last()]/parameter/@name, 'xpected') and not(contains(./@name, 'Invoke')) and not(contains(./@name, 'checkMemoryContent_sharedMemory')) and not(contains(./@name, 'checkMemoryContent_tmpMemory')) and not(contains(./@name, 'checkContent_Parameter_value')) and not(contains(./@name, 'OpenSession')) and not(contains(./@name, 'InitializeContext')))"> ADBG_EXPECT(c, <xsl:for-each select="./argument"><xsl:if test="position()=last()"><xsl:apply-templates select="value"></xsl:apply-templates></xsl:if></xsl:for-each>, <xsl:apply-templates select="./@name"></xsl:apply-templates><xsl:for-each select="./argument/value"><xsl:if test="position()>1 and not(position()=last())">, </xsl:if><xsl:if test="not(position()=last())"><xsl:apply-templates select="."></xsl:apply-templates></xsl:if>
</xsl:for-each>));
</xsl:when>
<xsl:otherwise>
<xsl:text> </xsl:text><xsl:apply-templates select="./@name"></xsl:apply-templates><xsl:for-each select="./argument"><xsl:if test="position()>1">, </xsl:if>
<xsl:apply-templates select="./value"></xsl:apply-templates>
</xsl:for-each>);
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="value">
<xsl:choose>
<xsl:when test="(contains(./@name, 'UUID'))"><xsl:text>&amp;</xsl:text><xsl:value-of select="./@name" />
</xsl:when>
<xsl:otherwise>
<!--xsl:text>&amp;</xsl:text--><xsl:value-of select="./@name" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="parameter">
<xsl:value-of select="./@name" />
</xsl:template>
<xsl:template match="@name">
<xsl:choose>
<xsl:when test=".='InitializeContext'"><xsl:text>XML_</xsl:text><xsl:value-of select="." /><xsl:text>(c, </xsl:text>
</xsl:when>
<xsl:when test=".='OpenSession'"><xsl:text>XML_</xsl:text><xsl:value-of select="." /><xsl:text>(c, </xsl:text>
</xsl:when>
<xsl:when test=".='Invoke_Remember_Expected_ParamTypes'"><xsl:text>INVOKE_REMEMBER_EXP_PARAM_TYPES</xsl:text><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='Invoke_Store_Expected_Param_Info'"><xsl:text>INVOKE_STORE_EXP_PARAM_INFO</xsl:text><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='AllocateSharedMemory'"><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='RegisterSharedMemory'"><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='AllocateTempMemory'"><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='ReleaseTempMemory'"><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='PARAM_TYPES'"><xsl:text>OPERATION_TEEC_PARAM_TYPES</xsl:text><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test="(contains(., 'Invoke') and not(contains(., 'Remember_Expected_ParamTypes')))"><xsl:text>XML_InvokeCommand</xsl:text><xsl:text>(c, </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>TEEC_</xsl:text><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

View File

@@ -0,0 +1,133 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2014, STMicroelectronics International N.V. -->
<!-- All rights reserved. -->
<!-- Copyright (c) 2020, Linaro Limited -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are met: -->
<!-- -->
<!-- 1. Redistributions of source code must retain the above copyright notice, -->
<!-- this list of conditions and the following disclaimer. -->
<!-- -->
<!-- 2. Redistributions in binary form must reproduce the above copyright notice, -->
<!-- this list of conditions and the following disclaimer in the documentation -->
<!-- and/or other materials provided with the distribution. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -->
<!-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -->
<!-- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -->
<!-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -->
<!-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -->
<!-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -->
<!-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -->
<!-- POSSIBILITY OF SUCH DAMAGE. -->
<xsl:stylesheet version="1.0"
xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:param name="target"/>
<xsl:template match="package">
<xsl:text>
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License Version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include "xml_crypto_api.h"
</xsl:text>
<xsl:for-each select="initial-state/scenario">
/*<xsl:value-of select="substring(substring-after(./@name, '('), 0, 9)" />*/
static void xtest_tee_<xsl:value-of select="position()+50000" />(ADBG_Case_t *c)
{
declare_local_vars
<xsl:for-each select="./preamble/call/operation">
<xsl:apply-templates select="."></xsl:apply-templates>
</xsl:for-each>
<xsl:for-each select="./body/call/operation|./body/call/observations/operation">
<xsl:apply-templates select="."></xsl:apply-templates>
</xsl:for-each>
<xsl:for-each select="./verification/call/operation">
<xsl:apply-templates select="."></xsl:apply-templates>
</xsl:for-each>
<xsl:for-each select="./postamble/call/operation">
<xsl:apply-templates select="."></xsl:apply-templates>
</xsl:for-each>
<xsl:if test="position()=last()"><xsl:text>
crypto_reset();</xsl:text></xsl:if>
}
</xsl:for-each>
<xsl:for-each select="initial-state/scenario">
<xsl:variable name="position" select="position()+50000" />
ADBG_CASE_DEFINE(gp, <xsl:value-of select="$position" />, xtest_tee_<xsl:value-of select="$position" /><xsl:text>, "</xsl:text><xsl:value-of select="substring(substring-after(./@name, '('), 0, 9)" /><xsl:text>");</xsl:text>
</xsl:for-each>
</xsl:template>
<xsl:template match="operation">
<xsl:choose>
<!--Call an operation with ADBG_EXPECT() macro.-->
<xsl:when test="(contains(./argument[last()]/parameter/@name, 'xpected'))"> ADBG_EXPECT_TEEC_RESULT(c, <xsl:for-each select="./argument"><xsl:if test="position()=last()"><xsl:apply-templates select="value"></xsl:apply-templates></xsl:if></xsl:for-each>, <xsl:apply-templates select="./@name"></xsl:apply-templates><xsl:for-each select="./argument/value"><xsl:if test="position()>1 and not(position()=last())">, </xsl:if><xsl:if test="not(position()=last())"><xsl:apply-templates select="."></xsl:apply-templates></xsl:if>
</xsl:for-each>));
</xsl:when>
<xsl:otherwise>
<xsl:text> </xsl:text><xsl:apply-templates select="./@name"></xsl:apply-templates><xsl:for-each select="./argument"><xsl:if test="position()>1">, </xsl:if>
<xsl:apply-templates select="./value"></xsl:apply-templates>
</xsl:for-each>);
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="value">
<xsl:choose>
<xsl:when test="(contains(./@name, 'UUID'))"><xsl:text>&amp;</xsl:text><xsl:value-of select="./@name" />
</xsl:when>
<xsl:when test="(contains(../type/@name, 'ALL_ATTRIBUTE_VALUES'))"><xsl:value-of select="./@name" /><xsl:text>, sizeof(</xsl:text><xsl:value-of select="./@name" /><xsl:text>)</xsl:text>
</xsl:when>
<xsl:when test="(../type/@name='ALL_TEE_NAMES' and ./@name='NULL')"><xsl:text>xtest_tee_name</xsl:text> </xsl:when>
<xsl:when test="(../type/@name='ALL_TEE_OBJECT_HANDLES' and ./@name='NULL')"><xsl:text>OBJECT_HANDLE_NULL</xsl:text> </xsl:when>
<xsl:otherwise>
<!--xsl:text>&amp;</xsl:text--><xsl:value-of select="./@name" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="parameter">
<xsl:value-of select="./@name" />
</xsl:template>
<xsl:template match="@name">
<xsl:choose>
<xsl:when test="(contains(., 'Invoke'))"><xsl:value-of select="." /><xsl:text>(c, </xsl:text> </xsl:when>
<xsl:when test="(contains(., 'Macro'))"><xsl:value-of select="." /><xsl:text>(c, </xsl:text> </xsl:when>
<xsl:when test="(contains(., 'Check'))"><xsl:value-of select="." /><xsl:text>(c, </xsl:text> </xsl:when>
<xsl:when test="(contains(., '_flag'))"><xsl:value-of select="." /><xsl:text>(</xsl:text> </xsl:when>
<xsl:when test="(contains(., 'add_attribute'))"><xsl:value-of select="." /><xsl:text>(</xsl:text> </xsl:when>
<xsl:otherwise>
<xsl:text>TEEC_</xsl:text><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

View File

@@ -0,0 +1,148 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2014, STMicroelectronics International N.V. -->
<!-- All rights reserved. -->
<!-- Copyright (c) 2020, Linaro Limited -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are met: -->
<!-- -->
<!-- 1. Redistributions of source code must retain the above copyright notice, -->
<!-- this list of conditions and the following disclaimer. -->
<!-- -->
<!-- 2. Redistributions in binary form must reproduce the above copyright notice, -->
<!-- this list of conditions and the following disclaimer in the documentation -->
<!-- and/or other materials provided with the distribution. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -->
<!-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -->
<!-- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -->
<!-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -->
<!-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -->
<!-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -->
<!-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -->
<!-- POSSIBILITY OF SUCH DAMAGE. -->
<xsl:stylesheet version="1.0"
xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:param name="target"/>
<xsl:template match="package">
<xsl:text>
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License Version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include "xml_datastorage_api.h"
</xsl:text>
<xsl:for-each select="initial-state/scenario">
/*<xsl:value-of select="substring(substring-after(./@name, '('), 0, 9)" />*/
static void xtest_tee_<xsl:value-of select="position()+30000" />(ADBG_Case_t *c)
{
declare_local_vars
<xsl:for-each select="./preamble/call/operation">
<xsl:apply-templates select="."></xsl:apply-templates>
</xsl:for-each>
<xsl:for-each select="./body/call/operation|./body/call/observations/operation">
<xsl:apply-templates select="."></xsl:apply-templates>
</xsl:for-each>
<xsl:for-each select="./verification/call/operation">
<xsl:apply-templates select="."></xsl:apply-templates>
</xsl:for-each>
<xsl:for-each select="./postamble/call/operation">
<xsl:apply-templates select="."></xsl:apply-templates>
</xsl:for-each>
}
</xsl:for-each>
<xsl:for-each select="initial-state/scenario">
<xsl:variable name="position" select="position()+30000" />
ADBG_CASE_DEFINE(gp, <xsl:value-of select="$position" />, xtest_tee_<xsl:value-of select="$position" /><xsl:text>, "</xsl:text><xsl:value-of select="substring(substring-after(./@name, '('), 0, 9)" /><xsl:text>");</xsl:text>
</xsl:for-each>
</xsl:template>
<xsl:template match="operation">
<xsl:choose>
<!--Call an operation with ADBG_EXPECT() macro.-->
<xsl:when test="(contains(./argument[last()]/parameter/@name, 'xpected') and not(contains(./@name, 'OpenSession')) and not(contains(./@name, 'InitializeContext')) and not(contains(./@name, 'Invoke_TruncateReadObjectData')) and not(contains(./@name, 'Invoke_TruncateReadObjectData')) and not(contains(./@name, 'Check_ObjectBufferAttribute')) and not(contains(./@name, 'Check_ObjectValueAttribute')))"> ADBG_EXPECT(c, <xsl:for-each select="./argument"><xsl:if test="position()=last()"><xsl:apply-templates select="value"></xsl:apply-templates></xsl:if></xsl:for-each>, <xsl:apply-templates select="./@name"></xsl:apply-templates><xsl:for-each select="./argument/value"><xsl:if test="position()>1 and not(position()=last())">, </xsl:if><xsl:if test="not(position()=last())"><xsl:apply-templates select="."></xsl:apply-templates></xsl:if>
</xsl:for-each>));
</xsl:when>
<xsl:otherwise>
<xsl:text> </xsl:text><xsl:apply-templates select="./@name"></xsl:apply-templates><xsl:for-each select="./argument"><xsl:if test="position()>1">, </xsl:if>
<xsl:apply-templates select="./value"></xsl:apply-templates>
</xsl:for-each>);
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="value">
<xsl:choose>
<xsl:when test="(contains(./@name, 'UUID'))"><xsl:text>&amp;</xsl:text><xsl:value-of select="./@name" />
</xsl:when>
<xsl:when test="(contains(../type/@name, 'ALL_ATTRIBUTE_VALUES'))"><xsl:value-of select="./@name" /><xsl:text>, sizeof(</xsl:text><xsl:value-of select="./@name" /><xsl:text>)</xsl:text>
</xsl:when>
<xsl:when test="(../type/@name='ALL_TEE_NAMES' and ./@name='NULL')"><xsl:text>xtest_tee_name</xsl:text>
</xsl:when>
<xsl:when test="(../type/@name='ALL_TEE_OBJECT_HANDLES' and ./@name='NULL')"><xsl:text>OBJECT_HANDLE_NULL</xsl:text>
</xsl:when>
<xsl:when test="(../type/@name='ALL_TTA_STORED_OBJECT_ENUMERATORS' and ./@name='NULL')"><xsl:text>OBJECT_HANDLE_NULL</xsl:text>
</xsl:when>
<xsl:when test="(../type/@name='ALL_TTA_STORED_ATTRIBUTES' and ./@name='NONE')"><xsl:text>ATTRIBUTE_NONE</xsl:text>
</xsl:when>
<xsl:otherwise>
<!--xsl:text>&amp;</xsl:text--><xsl:value-of select="./@name" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="parameter">
<xsl:value-of select="./@name" />
</xsl:template>
<xsl:template match="@name">
<xsl:choose>
<xsl:when test=".='InitializeContext'"><xsl:text>XML_</xsl:text><xsl:value-of select="." /><xsl:text>(c, </xsl:text>
</xsl:when>
<xsl:when test=".='OpenSession'"><xsl:text>XML_</xsl:text><xsl:value-of select="." /><xsl:text>(c, </xsl:text>
</xsl:when>
<xsl:when test=".='SelectApp'"><xsl:text>TEEC_</xsl:text><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='CloseSession'"><xsl:text>TEEC_</xsl:text><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='FinalizeContext'"><xsl:text>TEEC_</xsl:text><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='Check_GeneratedDHAttributes'"><xsl:value-of select="." /><xsl:text>(c</xsl:text>
</xsl:when>
<xsl:when test=".='Check_GeneratedRSAAttributes'"><xsl:value-of select="." /><xsl:text>(c</xsl:text>
</xsl:when>
<xsl:when test=".='SetUp_TEE'"><xsl:text>TEEC_SetUp_TEE(</xsl:text> </xsl:when>
<xsl:when test=".='TearDown_TEE'"><xsl:text>TEEC_TearDown_TEE(</xsl:text> </xsl:when>
<xsl:otherwise>
<xsl:value-of select="." /><xsl:text>(c, </xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

View File

@@ -0,0 +1,140 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2014, STMicroelectronics International N.V. -->
<!-- All rights reserved. -->
<!-- Copyright (c) 2020, Linaro Limited -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are met: -->
<!-- -->
<!-- 1. Redistributions of source code must retain the above copyright notice, -->
<!-- this list of conditions and the following disclaimer. -->
<!-- -->
<!-- 2. Redistributions in binary form must reproduce the above copyright notice, -->
<!-- this list of conditions and the following disclaimer in the documentation -->
<!-- and/or other materials provided with the distribution. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -->
<!-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -->
<!-- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -->
<!-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -->
<!-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -->
<!-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -->
<!-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -->
<!-- POSSIBILITY OF SUCH DAMAGE. -->
<xsl:stylesheet version="1.0"
xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:param name="target"/>
<xsl:template match="package">
<xsl:text>
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License Version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include "xml_internal_api.h"
</xsl:text>
<xsl:for-each select="initial-state/scenario">
/*<xsl:value-of select="substring(substring-after(./@name, '('), 0, 9)" />*/
static void xtest_tee_<xsl:value-of select="position()+20000" />(ADBG_Case_t *c)
{
<xsl:for-each select="./preamble/call/operation">
<xsl:apply-templates select="."></xsl:apply-templates>
</xsl:for-each>
<xsl:for-each select="./body/call/operation">
<xsl:apply-templates select="."></xsl:apply-templates>
</xsl:for-each>
<xsl:for-each select="./postamble/call/operation">
<xsl:apply-templates select="."></xsl:apply-templates>
</xsl:for-each>
}
</xsl:for-each>
<xsl:for-each select="initial-state/scenario">
<xsl:variable name="position" select="position()+20000" />
ADBG_CASE_DEFINE(gp, <xsl:value-of select="$position" />, xtest_tee_<xsl:value-of select="$position" /><xsl:text>, "</xsl:text><xsl:value-of select="substring(substring-after(./@name, '('), 0, 9)" /><xsl:text>");</xsl:text>
</xsl:for-each>
</xsl:template>
<xsl:template match="operation">
<xsl:choose>
<!--Call an operation with ADBG_EXPECT() macro.-->
<xsl:when test="(contains(./argument[last()]/parameter/@name, 'xpected') and not(contains(./@name, 'OpenSession')) and not(contains(./@name, 'InitializeContext')))"> ADBG_EXPECT(c, <xsl:for-each select="./argument"><xsl:if test="position()=last()"><xsl:apply-templates select="value"></xsl:apply-templates></xsl:if></xsl:for-each>, <xsl:apply-templates select="./@name"></xsl:apply-templates><xsl:for-each select="./argument/value"><xsl:if test="position()>1 and not(position()=last())">, </xsl:if><xsl:if test="not(position()=last())"><xsl:apply-templates select="."></xsl:apply-templates></xsl:if>
</xsl:for-each>));
</xsl:when>
<xsl:when test="(contains(./@name, 'Invoke_ProcessInvokeTAOpenSession'))"> ADBG_EXPECT(c, <xsl:for-each select="./argument"><xsl:if test="position()=last()"><xsl:apply-templates select="value"></xsl:apply-templates></xsl:if></xsl:for-each>, <xsl:apply-templates select="./@name"></xsl:apply-templates><xsl:for-each select="./argument/value"><xsl:if test="position()>1 and not(position()=last())">, </xsl:if><xsl:if test="not(position()=last())"><xsl:apply-templates select="."></xsl:apply-templates></xsl:if>
</xsl:for-each>));
</xsl:when>
<xsl:otherwise>
<xsl:text> </xsl:text><xsl:apply-templates select="./@name"></xsl:apply-templates><xsl:for-each select="./argument"><xsl:if test="position()>1">, </xsl:if>
<xsl:apply-templates select="./value"></xsl:apply-templates>
</xsl:for-each>);
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="value">
<xsl:choose>
<xsl:when test="((contains(./@name, 'UUID')) and not(contains(./@name, 'VALUE_PREDEFINED_UUID')) and not(contains(./@name, 'CMD_TEE_GetPropertyAsUUID_withoutEnum')))"><xsl:text>&amp;</xsl:text><xsl:value-of select="./@name" />
</xsl:when>
<xsl:when test="(../type/@name='ALL_TEE_NAMES' and ./@name='NULL')"><xsl:text>xtest_tee_name</xsl:text>
</xsl:when>
<xsl:otherwise>
<!--xsl:text>&amp;</xsl:text--><xsl:value-of select="./@name" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="parameter">
<xsl:value-of select="./@name" />
</xsl:template>
<xsl:template match="@name">
<xsl:choose>
<xsl:when test=".='RequestCancellation'"><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='InitializeContext'"><xsl:text>XML_</xsl:text><xsl:value-of select="." /><xsl:text>(c, </xsl:text>
</xsl:when>
<xsl:when test=".='OpenSession'"><xsl:text>XML_</xsl:text><xsl:value-of select="." /><xsl:text>(c, </xsl:text>
</xsl:when>
<xsl:when test=".='SelectApp'"><xsl:text>TEEC_</xsl:text><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='CloseSession'"><xsl:text>TEEC_</xsl:text><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='FinalizeContext'"><xsl:text>TEEC_</xsl:text><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='createThread'"><xsl:text>TEEC_</xsl:text><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='PARAM_TYPES'"><xsl:text>OPERATION_TEEC_</xsl:text><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='SetUp_TEE'"><xsl:text>TEEC_SetUp_TEE(</xsl:text> </xsl:when>
<xsl:when test=".='TearDown_TEE'"><xsl:text>TEEC_TearDown_TEE(</xsl:text> </xsl:when>
<xsl:otherwise>
<xsl:value-of select="." /><xsl:text>(c, </xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

View File

@@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2014, STMicroelectronics International N.V. -->
<!-- All rights reserved. -->
<!-- Copyright (c) 2020, Linaro Limited -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are met: -->
<!-- -->
<!-- 1. Redistributions of source code must retain the above copyright notice, -->
<!-- this list of conditions and the following disclaimer. -->
<!-- -->
<!-- 2. Redistributions in binary form must reproduce the above copyright notice, -->
<!-- this list of conditions and the following disclaimer in the documentation -->
<!-- and/or other materials provided with the distribution. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -->
<!-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -->
<!-- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -->
<!-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -->
<!-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -->
<!-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -->
<!-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -->
<!-- POSSIBILITY OF SUCH DAMAGE. -->
<xsl:stylesheet version="1.0"
xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:param name="target"/>
<xsl:template match="package">
<xsl:text>
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License Version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include "xml_timearithm_api.h"
</xsl:text>
<xsl:for-each select="initial-state/scenario">
/*<xsl:value-of select="substring(substring-after(./@name, '('), 0, 9)" />*/
static void xtest_tee_<xsl:value-of select="position()+40000" />(ADBG_Case_t *c)
{
<xsl:for-each select="./preamble/call/operation">
<xsl:apply-templates select="."></xsl:apply-templates>
</xsl:for-each>
<xsl:for-each select="./body/call/operation|./body/call/observations/operation">
<xsl:apply-templates select="."></xsl:apply-templates>
</xsl:for-each>
<xsl:for-each select="./verification/call/operation">
<xsl:apply-templates select="."></xsl:apply-templates>
</xsl:for-each>
<xsl:for-each select="./postamble/call/operation">
<xsl:apply-templates select="."></xsl:apply-templates>
</xsl:for-each>
}
</xsl:for-each>
<xsl:for-each select="initial-state/scenario">
<xsl:variable name="position" select="position()+40000" />
ADBG_CASE_DEFINE(gp, <xsl:value-of select="$position" />, xtest_tee_<xsl:value-of select="$position" /><xsl:text>, "</xsl:text><xsl:value-of select="substring(substring-after(./@name, '('), 0, 9)" /><xsl:text>");</xsl:text>
</xsl:for-each>
</xsl:template>
<xsl:template match="operation">
<xsl:choose>
<!--Call an operation with ADBG_EXPECT() macro.-->
<xsl:when test="(contains(./argument[last()]/parameter/@name, 'xpected') and not(contains(./@name, 'OpenSession')) and not(contains(./@name, 'InitializeContext')))"> ADBG_EXPECT_TEEC_RESULT(c, <xsl:for-each select="./argument"><xsl:if test="position()=last()"><xsl:apply-templates select="value"></xsl:apply-templates></xsl:if></xsl:for-each>, <xsl:apply-templates select="./@name"></xsl:apply-templates><xsl:for-each select="./argument/value"><xsl:if test="position()>1 and not(position()=last())">, </xsl:if><xsl:if test="not(position()=last())"><xsl:apply-templates select="."></xsl:apply-templates></xsl:if>
</xsl:for-each>));
</xsl:when>
<xsl:otherwise>
<xsl:text> </xsl:text><xsl:apply-templates select="./@name"></xsl:apply-templates><xsl:for-each select="./argument"><xsl:if test="position()>1">, </xsl:if>
<xsl:apply-templates select="./value"></xsl:apply-templates>
</xsl:for-each>);
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="value">
<xsl:choose>
<!--xsl:when test=".='IN_sharedMem_size'"><xsl:value-of select="./@name" />
</xsl:when-->
<xsl:when test="((contains(./@name, 'UUID')) and not(contains(./@name, 'VALUE_PREDEFINED_UUID')) and not(contains(./@name, 'CMD_TEE_GetPropertyAsUUID_withoutEnum')))"><xsl:text>&amp;</xsl:text><xsl:value-of select="./@name" />
</xsl:when>
<xsl:when test="(../type/@name='ALL_TEE_NAMES' and ./@name='NULL')"><xsl:text>xtest_tee_name</xsl:text>
</xsl:when>
<xsl:when test="(../type/@name='ALL_STORED_VALUES_ROLES')"><xsl:text>STORED_VALUE_</xsl:text><xsl:value-of select="./@name" />
</xsl:when>
<xsl:when test="(contains(../type/@name, 'ALL_BIG_INT_VALUES'))"><xsl:value-of select="./@name" /><xsl:text>, sizeof(</xsl:text><xsl:value-of select="./@name" /><xsl:text>)</xsl:text>
</xsl:when>
<xsl:otherwise>
<!--xsl:text>&amp;</xsl:text--><xsl:value-of select="./@name" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="parameter">
<xsl:value-of select="./@name" />
</xsl:template>
<xsl:template match="@name">
<xsl:choose>
<xsl:when test=".='RequestCancellation'"><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='InitializeContext'"><xsl:text>XML_</xsl:text><xsl:value-of select="." /><xsl:text>(c, </xsl:text>
</xsl:when>
<xsl:when test=".='OpenSession'"><xsl:text>XML_</xsl:text><xsl:value-of select="." /><xsl:text>(c, </xsl:text>
</xsl:when>
<xsl:when test=".='SelectApp'"><xsl:text>TEEC_</xsl:text><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='CloseSession'"><xsl:text>TEEC_</xsl:text><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='FinalizeContext'"><xsl:text>TEEC_</xsl:text><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='createThread'"><xsl:text>TEEC_</xsl:text><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='Test_Tool_Erase_Persistent_Time'"><xsl:value-of select="." /><xsl:text>(c, SESSION01, CMD_TEE_SetTAPersistentTime_and_GetTAPersistentTime</xsl:text>
</xsl:when>
<xsl:when test=".='PARAM_TYPES'"><xsl:text>OPERATION_TEEC_</xsl:text><xsl:value-of select="." /><xsl:text>(</xsl:text>
</xsl:when>
<xsl:when test=".='SetUp_TEE'"><xsl:text>TEEC_SetUp_TEE(</xsl:text> </xsl:when>
<xsl:when test=".='TearDown_TEE'"><xsl:text>TEEC_TearDown_TEE(</xsl:text> </xsl:when>
<xsl:otherwise>
<xsl:value-of select="." /><xsl:text>(c, </xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

View File

@@ -0,0 +1,378 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
* Copyright (c) 2020, Linaro Limited
*/
#ifndef XML_CLIENT_API_H_
#define XML_CLIENT_API_H_
#include <assert.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <tee_api_defines.h>
#include <tee_client_api.h>
#include <unistd.h>
#include <xml_common_api.h>
#include "xtest_helpers.h"
#include "xtest_test.h"
/* ta_testingClientAPI_test.h*/
#define COMMAND_TTA_Remember_Expected_ParamTypes 0x00000002
#define COMMAND_TTA_Copy_ParamIn_to_ParamOut 0x00000001
#define COMMAND_TTA_Check_ParamTypes 0x00000003
#define COMMAND_TTA_To_Be_Cancelled 0x00000004
#define COMMAND_TTA_Success 0x00000005
#define COMMAND_TTA_Panic 0x00000006
/* ta_answerSuccessTo_OpenSession_Invoke_test.h */
#define COMMAND_TTA_Remember_Expected_ParamTypes 0x00000002
#define COMMAND_TTA_Copy_ParamIn_to_ParamOut 0x00000001
#define COMMAND_TTA_Check_ParamTypes 0x00000003
/* ta_testingClientAPI_test.h */
#define COMMAND_TTA_Remember_Expected_ParamTypes 0x00000002
#define COMMAND_TTA_Copy_ParamIn_to_ParamOut 0x00000001
#define COMMAND_TTA_Check_ParamTypes 0x00000003
#define COMMAND_TTA_To_Be_Cancelled 0x00000004
#define COMMAND_TTA_Success 0x00000005
#define COMMAND_TTA_Panic 0x00000006
#define INVALID_CONNECTION_METHODS 0x0A
#define COMMAND_TTA_Check_Expected_ParamTypes COMMAND_TTA_Check_ParamTypes
#define COMMAND_TTA_Check_Update_Params 0xFFFF0002u
#define COMMAND_TTA_Store_Expected_Param_Info 0xFFFF0001u
#define CLIENT_APP01 NULL
#define TEEC_UNDEFINED_ERROR 0xDEADDEAD
#define TEEC_ORIGIN_ANY_NOT_TRUSTED_APP 0x00000005
#define OFFSET0 0
#define OFFSET_02 0x64
#define BIG_SIZE 1024
#define IGNORE 0xFEFEFEFE
#define VALUE01 0x01234567
#define VALUE02 0xFEDCBA98
#define SIZE_OVER_MEMORY 0xFFFFFFFE
#define SIZE_VALUE01 4
#define SIZE_LESSER_THAN_SIZE_02 0x1B58
#define SIZE_GREATER_THAN_SIZE_02 0x2328
#define ZERO 0
#define SIZE_02 0x2000
#define ALLOC_SIZE_02 0x2800
#define BYTE_01 1
#define BYTE_02 2
#define BYTE_03 3
#define BYTE_04 4
#define VALUE_A_IN_0 0x01234567
#define VALUE_A_IN_1 0xF9E8D7C6
#define VALUE_A_IN_2 0xE01C083D
#define VALUE_A_IN_3 0xDCA65016
#define VALUE_A_OUT_0 0xABCD0248
#define VALUE_A_OUT_1 0x03579EF4
#define VALUE_A_OUT_2 0x344C64BC
#define VALUE_A_OUT_3 0x3590BBD9
#define VALUE_B_IN_0 0x89ABCDEF
#define VALUE_B_IN_1 0x1248DCBA
#define VALUE_B_IN_2 0x5E816B61
#define VALUE_B_IN_3 0x4C899A96
#define VALUE_B_OUT_0 0x1A2B3C4D
#define VALUE_B_OUT_1 0x1439F7A2
#define VALUE_B_OUT_2 0x6EC61CAE
#define VALUE_B_OUT_3 0xB2639F77
#define TEEC_MEM_INOUT (TEEC_MEM_INPUT | TEEC_MEM_OUTPUT)
static TEEC_SharedMemory share_mem[4];
static TEEC_SharedMemory *SHARE_MEM01 = share_mem;
static TEEC_SharedMemory *SHARE_MEM02 = share_mem + 1;
static TEEC_SharedMemory *SHARE_MEM03 = share_mem + 2;
static TEEC_SharedMemory *SHARE_MEM04 = share_mem + 3;
static TEEC_SharedMemory *SHARE_MEM_NULL_BUFFER;
static TEEC_Session session[2];
static TEEC_Session *SESSION01 = session;
static TEEC_Session *SESSION02 = session + 1;
static TEEC_Context context[2];
static TEEC_Context *CONTEXT01 = context;
static TEEC_Context *CONTEXT02 = context + 1;
static TEEC_Operation operation[1];
static TEEC_Operation *OPERATION01 = operation;
/* "ItIsNotTotosTEEs" */
static const char *INVALID_NOT_EXISTING_TEE = "ItIsNotTotosTEEs\0";
/** ALL_TEMPORARY_MEMORIES */
static uint8_t *TEMP_MEM01;
static uint8_t *TEMP_MEM02;
static uint8_t *TEMP_MEM03;
static uint8_t *TEMP_MEM04;
static uint8_t *TEMP_MEM_NULL_BUFFER;
static TEEC_UUID UUID_TTA_answerErrorTo_OpenSession = {
0x534D4152, 0x5443, 0x534C,
{ 0x54, 0x45, 0x52, 0x52, 0x54, 0x4F, 0x4F, 0x53 }
};
static TEEC_UUID UUID_TTA_answerSuccessTo_OpenSession_Invoke = {
0x534D4152, 0x542D, 0x4353,
{ 0x4C, 0x54, 0x2D, 0x54, 0x41, 0x2D, 0x53, 0x55 }
};
static TEEC_UUID UUID_Unknown = {
0x534D4152, 0x542D, 0x4355,
{ 0x4E, 0x4B, 0x2D, 0x4E, 0x4F, 0x2D, 0x57, 0x4E }
};
static TEEC_UUID UUID_TTA_testingClientAPI_Parameters_OpenSession = {
0x534D4152, 0x5443, 0x534C,
{ 0x54, 0x43, 0x4C, 0x49, 0x50, 0x4F, 0x50, 0x53 }
};
static TEEC_UUID UUID_TTA_testingClientAPI = {
0x534D4152, 0x542D, 0x4353,
{ 0x4C, 0x54, 0x2D, 0x54, 0x41, 0x2D, 0x53, 0x54 }
};
static TEEC_UUID UUID_TTA_answerErrorTo_Invoke = {
0x534D4152, 0x542D, 0x4353,
{ 0x4C, 0x54, 0x2D, 0x54, 0x41, 0x2D, 0x45, 0x52 }
};
/* TTA_testingClientAPI_Parameters_Invoke */
static TEEC_UUID UUID_TTA_testingClientAPI_Parameters = {
0x534D4152, 0x5443, 0x534C,
{ 0x54, 0x43, 0x4C, 0x49, 0x50, 0x41, 0x52, 0x41 }
};
/*Registers the TEEC_SharedMemory to the TEE*/
static TEEC_Result RegisterSharedMemory(TEEC_Context *ctx,
TEEC_SharedMemory *shm,
uint32_t size, uint32_t flags)
{
shm->flags = flags;
shm->size = size;
shm->buffer = malloc(size);
return TEEC_RegisterSharedMemory(ctx, shm);
}
/*Allocates temporary memory area*/
#define AllocateTempMemory(temp_mem, size) \
temp_mem = malloc(size)
/*Releases temporary memory area*/
#define ReleaseTempMemory(temp_mem) \
do { \
if (temp_mem != NULL) { \
free(temp_mem); \
temp_mem = NULL; \
} \
} while (0)
/* Assigns a and b to the value parameter */
static inline void TEEC_prepare_OperationEachParameter_value(TEEC_Operation *op,
size_t n,
uint32_t a,
uint32_t b)
{
if (IGNORE != a)
op->params[n].value.a = a;
if (IGNORE != b)
op->params[n].value.b = b;
}
/*Define TEEC_SharedMemory memory content.*/
#define TEEC_defineMemoryContent_sharedMemory(sh_mem, val, size_val) \
memcpy(sh_mem->buffer, &val, size_val)
/*Define temp memory content.*/
#define TEEC_defineMemoryContent_tmpMemory(buf, val, size_val) \
memcpy(buf, &(val), size_val)
#define INVOKE_REMEMBER_EXP_PARAM_TYPES(session, cmd, p0, p1, p2, p3, exp) \
do { \
uint32_t ret_orig = 0; \
\
memset(OPERATION01, 0x00, sizeof(TEEC_Operation)); \
OPERATION01->paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, \
TEEC_NONE, \
TEEC_NONE, \
TEEC_NONE); \
OPERATION01->params[0].value.a = \
TEEC_PARAM_TYPES((p0), (p1), (p2), (p3)); \
ADBG_EXPECT(c, exp, \
TEEC_InvokeCommand(session, cmd, OPERATION01, \
&ret_orig)); \
ADBG_EXPECT_TEEC_ERROR_ORIGIN(c, TEEC_ORIGIN_TRUSTED_APP, \
ret_orig); \
} while (0)
static void store_param_info(TEEC_Operation *op, uint32_t param_num,
uint32_t pt, uint32_t size_in, uint32_t value_in,
uint32_t size_out, uint32_t value_out)
{
memset(op, 0, sizeof(*op));
op->params[0].value.a = param_num;
op->params[0].value.b = pt;
switch (pt) {
case TEE_PARAM_TYPE_MEMREF_INPUT:
case TEE_PARAM_TYPE_MEMREF_OUTPUT:
case TEE_PARAM_TYPE_MEMREF_INOUT:
op->paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT,
TEEC_VALUE_INPUT,
TEEC_VALUE_INPUT,
TEEC_NONE);
if (size_in != IGNORE)
op->params[1].value.a = size_in;
if (value_in != IGNORE)
op->params[1].value.b = value_in;
if (size_out != IGNORE)
op->params[2].value.a = size_out;
if (value_out != IGNORE)
op->params[2].value.b = value_out;
break;
default:
op->paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, TEEC_NONE,
TEEC_NONE, TEEC_NONE);
break;
}
}
#define INVOKE_STORE_EXP_PARAM_INFO(session, cmd, paramNumber, paramType, \
sizeIN, valueIN, sizeOUT, valueOUT, \
expReturnOrigin, expTEEC_Result) \
do { \
uint32_t ret_orig = 0; \
\
store_param_info(OPERATION01, paramNumber, paramType, sizeIN, \
valueIN, sizeOUT, valueOUT); \
ADBG_EXPECT(c, expTEEC_Result, \
TEEC_InvokeCommand(session, cmd, OPERATION01, \
&ret_orig)); \
ADBG_EXPECT_TEEC_ERROR_ORIGIN(c, expReturnOrigin, ret_orig); \
} while (0)
static void init_mem(uint8_t *buf, size_t buf_size, size_t begin_size,
size_t middle_size, uint8_t begin_value,
uint8_t middle_value, uint8_t end_value)
{
memset(buf, begin_value, begin_size);
memset(buf + begin_size, middle_value, middle_size);
memset(buf + begin_size + middle_size, end_value,
buf_size - begin_size - middle_size);
}
#define TEEC_initialize_memory(shm, tmpMem, offset, _size, value_beginning, \
value_middle, value_end) \
do { \
if ((unsigned long)shm != IGNORE) {\
TEEC_SharedMemory *__shm = (void *)(long)shm; \
init_mem(__shm->buffer, __shm->size, offset, _size, \
value_beginning, value_middle, value_end); \
assert(tempMem == IGNORE); \
} else if ((unsigned long)tmpMem != IGNORE) {\
/* \
* We can't tell the size of tmpMem, so we assume \
* it's offset + size large. \
*/ \
init_mem((void *)(long)tmpMem, offset + _size, offset, \
_size, value_beginning, value_middle, \
value_end); \
} else { \
assert(0); \
} \
} while (0)
static void TEEC_prepare_OperationEachParameter_memref(TEEC_Operation *op,
size_t param_num,
TEEC_SharedMemory *shm,
size_t offs, size_t sz)
{
op->params[param_num] = (TEEC_Parameter){
.memref = {
.parent = shm, .size = sz, .offset = offs,
}
};
}
static void TEEC_prepare_OperationEachParameter_tmpref(TEEC_Operation *op,
size_t param_num,
void *buf, size_t sz)
{
op->params[param_num] = (TEEC_Parameter){
.tmpref = {
.buffer = buf, .size = sz,
}
};
}
/*Compares two memories and checks if their length and content is the same */
#define TEEC_checkMemoryContent_sharedMemory(op, param_num, shrm, exp_buf, \
exp_blen) \
do { \
if ((exp_buf) == IGNORE) { \
ADBG_EXPECT((c), exp_blen, \
(op)->params[(param_num)].memref.size); \
} else { \
ADBG_EXPECT_COMPARE_POINTER((c), (shrm), ==, \
(op)->params[(param_num)].\
memref.parent); \
ADBG_EXPECT_BUFFER((c), &(exp_buf), (exp_blen), \
(shrm)->buffer, \
(op)->params[(param_num)].\
memref.size); \
} \
} while (0)
/*
* Compares the content of the memory cells in OP with the expected value
* contained.
*/
#define TEEC_checkMemoryContent_tmpMemory(op, param_num, \
buf, exp_buf, exp_blen) \
do { \
if ((exp_buf) == 0) { \
ADBG_EXPECT((c), exp_blen, \
(op)->params[(param_num)].tmpref.size); \
} else { \
ADBG_EXPECT_COMPARE_POINTER((c), (buf), ==, \
(op)->params[(param_num)].\
tmpref.buffer); \
ADBG_EXPECT_BUFFER((c), &(exp_buf), (exp_blen), \
(buf), \
(op)->params[(param_num)].\
memref.size); \
} \
} while (0)
/*
* Compares the content of the memory cells in OP with the expected value
* contained.
*/
#define TEEC_checkContent_Parameter_value(op, param_num, exp_a, exp_b) \
do { \
if (IGNORE != exp_a) \
ADBG_EXPECT((c), exp_a, \
(op)->params[(param_num)].value.a); \
if (IGNORE != exp_b) \
ADBG_EXPECT((c), exp_b, \
(op)->params[(param_num)].value.b); \
} while (0)
/*Invoke command using TEEC_InvokeCommand and check the returned value.*/
#define XML_InvokeCommand(c, session, cmd, operation, returnOrigin, expected) \
do { \
uint32_t ret_orig = 0; \
\
ADBG_EXPECT(c, expected, \
TEEC_InvokeCommand(session, cmd, operation, \
&ret_orig)); \
if (returnOrigin) \
ADBG_EXPECT(c, (unsigned long)returnOrigin, ret_orig); \
} while (0)
#endif /* XML_CLIENT_API_H_ */

View File

@@ -0,0 +1,281 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
* Copyright (c) 2020, Linaro Limited
*/
#ifndef XML_COMMON_API_H_
#define XML_COMMON_API_H_
#include <adbg.h>
#include <tee_client_api.h>
#include "xtest_helpers.h"
#include "xtest_test.h"
#define BIT(n) (1ul << (n))
#ifndef MAX
#define MAX(a, b) ((a) > (b) ? (a) : (b))
#endif
#define ALLOCATE_SHARED_MEMORY(context, sharedMemory, sharedMemorySize, \
memoryType, exit_label) \
res = AllocateSharedMemory(context, sharedMemory, sharedMemorySize, \
memoryType); \
if (!ADBG_EXPECT_TEEC_SUCCESS(c, res)) \
goto exit_label; \
memset(sharedMemory->buffer, 0, sharedMemorySize);
#define ALLOCATE_AND_FILL_SHARED_MEMORY(context, sharedMemory, \
sharedMemorySize, \
memoryType, copySize, data, \
exit_label) \
res = AllocateSharedMemory(context, sharedMemory, sharedMemorySize, \
memoryType); \
if (!ADBG_EXPECT_TEEC_SUCCESS(c, res)) \
goto exit_label; \
memset(sharedMemory->buffer, 0, sharedMemorySize); \
if (data != NULL) { \
memcpy(sharedMemory->buffer, data, copySize); \
}
#define ALLOCATE_AND_FILL_SHARED_MEMORY_6(a,b,c,d,e,f) \
ALLOCATE_AND_FILL_SHARED_MEMORY(a,b,c,d,c,e,f)
#define SET_SHARED_MEMORY_OPERATION_PARAMETER(parameterNumber, \
sharedMemoryOffset, \
sharedMemory, \
sharedMemorySize) \
op.params[parameterNumber].memref.offset = sharedMemoryOffset; \
op.params[parameterNumber].memref.size = sharedMemorySize; \
op.params[parameterNumber].memref.parent = sharedMemory;
/*Open session using TEEC_OpenSession and
check the returned value and/or returned origin.*/
#define XML_OpenSession(c, context, session, destination, connectionMethod, \
connectionData, operation, returnOrigin, expected) \
do { \
uint32_t ret_orig = 0; \
\
XML_VERIFY(c, expected, \
TEEC_OpenSession(context, session, destination, \
connectionMethod, connectionData, \
operation, &ret_orig)); \
if (!(unsigned long)(returnOrigin) || \
(unsigned long)(returnOrigin) == \
TEEC_ORIGIN_ANY_NOT_TRUSTED_APP) \
ADBG_EXPECT_NOT(c, (unsigned long)returnOrigin, \
ret_orig); \
else \
ADBG_EXPECT(c, (unsigned long)returnOrigin, ret_orig); \
} while (0)
/* XML_VERIFY macro define.
*
* Use ADBG_EXPECT or ADBG_EXPECT_NOT depending on the expected return value.
*
* ADBG_EXPECT() -> IF(EXP == GOT) RETURN TRUE
* ADBG_EXPECT() -> IF(EXP != GOT) RETURN TRUE
*/
#define XML_VERIFY(c, exp, got) \
do { \
if (exp == TEEC_UNDEFINED_ERROR) \
ADBG_EXPECT_NOT(c, exp, got); \
else \
ADBG_EXPECT(c, exp, got); \
} while (0)
/*Initialize context using TEEC_InitializeContext and
check the returned value.*/
#define XML_InitializeContext(c, name, context, expected) \
XML_VERIFY(c, expected, TEEC_InitializeContext(name, context))
#define OPERATION_TEEC_PARAM_TYPES(op, p0, p1, p2, p3) \
do { \
op->paramTypes = TEEC_PARAM_TYPES(p0, p1, p2, p3); \
} while (0)
/*dummy functions*/
#define TEEC_SetUp_TEE() /*do nothing for now*/
#define TEEC_TearDown_TEE(a) /*do nothing for now*/
#define TEEC_SelectApp(a, b) /*do nothing for now*/
#define TEEC_createThread(a, b) /*do nothing for now*/
struct attr_value {
uint8_t buf[1024];
size_t buf_size;
uint32_t attr_id;
};
#define MAX_NUM_SAVED_ATTR_VALUES 8
static struct attr_value saved_attr[MAX_NUM_SAVED_ATTR_VALUES] __maybe_unused;
static TEEC_Result __maybe_unused
Invoke_Simple_Function(ADBG_Case_t *c __unused, TEEC_Session *sess,
uint32_t cmdId)
{
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t org;
return TEEC_InvokeCommand(sess, cmdId, &op, &org);
}
static TEEC_Result __maybe_unused
Invoke_Simple_Function_v1(ADBG_Case_t *c __unused, TEEC_Session *sess,
uint32_t cmd, uint32_t a, uint32_t b)
{
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t org;
op.params[0].value.a = a;
op.params[0].value.b = b;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, TEEC_NONE,
TEEC_NONE, TEEC_NONE);
return TEEC_InvokeCommand(sess, cmd, &op, &org);
}
static TEEC_Result __maybe_unused
Invoke_Simple_Function_v2(ADBG_Case_t *c __unused, TEEC_Session *sess,
uint32_t cmd, uint32_t a0, uint32_t b0,
uint32_t a1, uint32_t b1)
{
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t org;
op.params[0].value.a = a0;
op.params[0].value.b = b0;
op.params[1].value.a = a1;
op.params[1].value.b = b1;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, TEEC_VALUE_INPUT,
TEEC_NONE, TEEC_NONE);
return TEEC_InvokeCommand(sess, cmd, &op, &org);
}
static TEEC_Result __maybe_unused
Invoke_Simple_Function_v3(ADBG_Case_t *c __unused, TEEC_Session *sess,
uint32_t cmd, uint32_t a0, uint32_t b0, uint32_t a1,
uint32_t b1, uint32_t a2, uint32_t b2)
{
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t org;
op.params[0].value.a = a0;
op.params[0].value.b = b0;
op.params[1].value.a = a1;
op.params[1].value.b = b1;
op.params[2].value.a = a2;
op.params[2].value.b = b2;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, TEEC_VALUE_INPUT,
TEEC_VALUE_INPUT, TEEC_NONE);
return TEEC_InvokeCommand(sess, cmd, &op, &org);
}
static TEEC_Result __maybe_unused
Invoke_Simple_Function_v4(ADBG_Case_t *c __unused, TEEC_Session *sess,
uint32_t cmd, uint32_t a0, uint32_t b0, uint32_t a1,
uint32_t b1, uint32_t a2, uint32_t b2, uint32_t a3,
uint32_t b3)
{
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t org;
op.params[0].value.a = a0;
op.params[0].value.b = b0;
op.params[1].value.a = a1;
op.params[1].value.b = b1;
op.params[2].value.a = a2;
op.params[2].value.b = b2;
op.params[3].value.a = a3;
op.params[3].value.b = b3;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, TEEC_VALUE_INPUT,
TEEC_VALUE_INPUT, TEEC_VALUE_INPUT);
return TEEC_InvokeCommand(sess, cmd, &op, &org);
}
static TEEC_Result __maybe_unused AllocateSharedMemory(TEEC_Context *ctx,
TEEC_SharedMemory *shm,
uint32_t size,
uint32_t flags)
{
shm->flags = flags;
shm->size = size;
return TEEC_AllocateSharedMemory(ctx, shm);
}
static TEEC_Result GetObjectBufferAttribute_helper(ADBG_Case_t *c,
TEEC_Session *sess,
size_t n,
uint32_t cmd, uint32_t obj,
uint32_t attr_id,
bool buffer_is_null,
uint32_t buffer_size)
{
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
TEEC_Result res = TEE_SUCCESS;
uint32_t org = 0;
static TEEC_SharedMemory shm = { };
uint32_t memref_type = TEEC_MEMREF_TEMP_OUTPUT;
if (!ADBG_EXPECT_COMPARE_SIGNED(c, n, <, MAX_NUM_SAVED_ATTR_VALUES))
return TEEC_ERROR_BAD_PARAMETERS;
if (!ADBG_EXPECT_COMPARE_SIGNED(c, buffer_size, <=,
sizeof(saved_attr[n].buf)))
return TEEC_ERROR_BAD_PARAMETERS;
if (!buffer_is_null) {
shm.size = buffer_size;
shm.flags = TEEC_MEM_OUTPUT;
res = TEEC_AllocateSharedMemory(sess->imp.ctx, &shm);
if (!ADBG_EXPECT_TEEC_SUCCESS(c, res))
return res;
SET_SHARED_MEMORY_OPERATION_PARAMETER(1, 0, &shm, shm.size);
memref_type = TEEC_MEMREF_PARTIAL_OUTPUT;
}
op.params[0].value.a = obj;
op.params[0].value.b = attr_id;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, memref_type,
TEEC_NONE, TEEC_NONE);
res = TEEC_InvokeCommand(sess, cmd, &op, &org);
if (!buffer_is_null) {
if (res) {
memset(saved_attr + n, 0, sizeof(saved_attr[n]));
} else {
memcpy(saved_attr[n].buf, shm.buffer,
sizeof(saved_attr[n].buf));
saved_attr[n].buf_size = op.params[1].memref.size;
saved_attr[n].attr_id = attr_id;
}
TEEC_ReleaseSharedMemory(&shm);
}
return res;
}
static TEEC_Result __maybe_unused
Invoke_GetObjectBufferAttribute(ADBG_Case_t *c, TEEC_Session *sess,
uint32_t cmd, uint32_t obj, uint32_t attr_id,
bool buffer_is_null, uint32_t buffer_size)
{
return GetObjectBufferAttribute_helper(c, sess, 0, cmd, obj, attr_id,
buffer_is_null, buffer_size);
}
static TEEC_Result __maybe_unused
Invoke_FreeTransientObject(ADBG_Case_t *c, TEEC_Session *sess, uint32_t cmd,
uint32_t obj_handle)
{
return Invoke_Simple_Function_v1(c, sess, cmd, obj_handle, 0);
}
#endif /* XML_COMMON_API_H_ */

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,733 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
* Copyright (c) 2020, Linaro Limited
*/
#ifndef XML_INTERNAL_API_H_
#define XML_INTERNAL_API_H_
#include <arpa/inet.h>
#include <assert.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <tee_api_defines.h>
#include <tee_client_api.h>
#include <unistd.h>
#include "xml_common_api.h"
#include "xtest_helpers.h"
#include "xtest_test.h"
#define Invoke_MaskUnmaskCancellations Invoke_Simple_Function
#define Invoke_ProcessTAInvoke_Payload_Value Invoke_Simple_Function
#define Invoke_ProcessTAInvoke_Payload_Value_In_Out Invoke_Simple_Function
#define Invoke_ProcessTAInvoke_Payload_Memref Invoke_Simple_Function
#define Invoke_GetPropertyAsBool_withoutEnum Invoke_GetPropertyAsXXX_withoutEnum
#define Invoke_GetPropertyAsU32_withoutEnum Invoke_GetPropertyAsXXX_withoutEnum
#define Invoke_GetPropertyAsUUID_withoutEnum Invoke_GetPropertyAsXXX_withoutEnum
#define Invoke_GetPropertyAsIdentity_withoutEnum \
Invoke_GetPropertyAsXXX_withoutEnum
#define Invoke_GetPropertyAsBinaryBlock_withoutEnum \
Invoke_GetPropertyAsXXX_withoutEnum
#define Invoke_GetPropertyAsString_withoutEnum \
Invoke_GetPropertyAsXXX_withoutEnum
#define Invoke_GetPropertyAsXXXX_fromEnum Invoke_StartPropertyEnumerator
#define Invoke_FreePropertyEnumerator Invoke_ResetPropertyEnumerator
#define Invoke_GetNextProperty_enumNotStarted Invoke_ResetPropertyEnumerator
#define Invoke_ProcessTAInvoke_DeadErrorSuccess \
Invoke_ProcessInvokeTAOpenSession
#define CLIENT_APP01 NULL
#define TEEC_UNDEFINED_ERROR 0xDEADDEAD
#define TEEC_ORIGIN_ANY_NOT_TRUSTED_APP 0x00000005
/* same as TEE_ORIGIN_NOT_TRUSTED_APP */
#define SIZE_ZERO 0
#define TEE_ERROR_TOO_SHORT_BUFFER TEE_ERROR_SHORT_BUFFER
#define CMD_TEE_GetPropertyAsString_withoutEnum 0x00000010
#define CMD_TEE_GetPropertyAsBool_withoutEnum 0x00000015
#define CMD_TEE_GetPropertyAsInt_withoutEnum 0x00000020
#define CMD_TEE_GetPropertyAsBinaryBlock_withoutEnum 0x00000025
#define CMD_TEE_GetPropertyAsUUID_withoutEnum 0x00000030
#define CMD_TEE_GetPropertyAsIdentity_withoutEnum 0x00000035
#define CMD_TEE_GetPropertyAsXXXX_fromEnum 0x00000045
#define CMD_TEE_AllocatePropertyEnumerator 0x00000060
#define CMD_TEE_StartPropertyEnumerator 0x00000065
#define CMD_TEE_ResetPropertyEnumerator 0x00000070
#define CMD_TEE_FreePropertyEnumerator 0x00000075
#define CMD_TEE_GetPropertyName 0x00000080
#define CMD_TEE_Malloc 0x00000100
#define CMD_TEE_Realloc 0x00000110
#define CMD_TEE_MemMove 0x00000120
#define CMD_TEE_MemCompare 0x00000130
#define CMD_TEE_MemFill 0x00000140
#define CMD_TEE_Panic 0x00000104
#define CMD_TEE_CheckMemoryAccessRight 0x00000103
#define CMD_TEE_GetCancellationFlag_RequestedCancel 0x00000105
#define CMD_TEE_MaskUnmaskCancellations 0x00000106
#define CMD_TEE_Free 0x00000107
#define CMD_ProcessInvokeTAOpenSession 0x00000200
#define CMD_ProcessTAInvokeTA_simple 0x00000201
#define CMD_ProcessTAInvokeTA_PayloadValue 0x00000202
#define CMD_TEE_GetNextPropertyEnumerator_notStarted 0x00000203
#define CMD_ProcessTAInvokeTA_PayloadMemref 0x00000204
#define CMD_ProcessTAInvokeTA_PayloadValue_In_Out 0x00000205
#define CMD_TEE_OpenTASession 0x00000300
#define CMD_TEE_InvokeTACommand 0x00000301
#define CMD_TEE_CloseTASession 0x00000302
#define CMD_SUCCESS 1
#define CMD_SET_PANIC_ON_DESTROY 1
static TEEC_SharedMemory share_mem[2];
static TEEC_SharedMemory *SHARE_MEM01 = share_mem;
static TEEC_SharedMemory *SHARE_MEM02 = share_mem + 1;
static TEEC_Session session[2];
static TEEC_Session *SESSION01 = session;
static TEEC_Session *SESSION02 = session + 1;
static TEEC_Context context[2];
static TEEC_Context *CONTEXT01 = context;
static TEEC_Context *CONTEXT02 = context + 1;
#define TA_SESSION01 0
#define TA_SESSION02 1
#define TA_SESSION_NULL 0xffffffff
static uint32_t BIG_SIZE = 1024;
static char *NO_DATA;
static uint64_t enumerator1;
static uint64_t *ENUMERATOR1 = &enumerator1;
#define ANY_OWNER_NOT_SET 0
#define ANY_OWNER_SET TEE_MEMORY_ACCESS_ANY_OWNER
#define ANY_OWNER_SET_ACCESS_READ (TEE_MEMORY_ACCESS_ANY_OWNER | \
TEE_MEMORY_ACCESS_READ)
#define ANY_OWNER_SET_ACCESS_WRITE (TEE_MEMORY_ACCESS_ANY_OWNER | \
TEE_MEMORY_ACCESS_WRITE)
#define ANY_OWNER_SET_ACCESS_READ_WRITE (TEE_MEMORY_ACCESS_ANY_OWNER | \
TEE_MEMORY_ACCESS_READ | \
TEE_MEMORY_ACCESS_WRITE)
#define SMALL_SIZE 0xA
#define CMD_TEE_GetInstanceData 0x00000101
#define CMD_TEE_SetInstanceData 0x00000102
#define CMD_TEE_GetPropertyAsU32_withoutEnum 0x00000020
#define NORMAL_SIZE_BUFFER 1
#define TOO_SHORT_BUFFER 0
#define CASE_NOT_NULL 1
#define CASE_NULL 0
#define CASE_BUFFER1_DIFFERS_FIRST 1
#define CASE_BUFFER2_DIFFERS_FIRST 2
#define CASE_EQUAL 0
#define CASE_ERROR_ICA2 3
#define CASE_PAYLOAD_VALUE 4
#define CASE_SUCCESS_ICA2 2
#define CASE_TARGET_DEAD_ICA2 1
#define CASE_CANCEL_TIMEOUT 2
#define CASE_ITEM_NOT_FOUND 3
#define CASE_SUCCESS 0
#define CASE_TARGET_BUSY 4
#define CASE_TARGET_DEAD 1
#define RESULT_EQUAL 0
#define RESULT_INTEGER_GREATER_THAN_ZERO 1
#define RESULT_INTEGER_LOWER_THAN_ZERO 2
#define HINT_ZERO 0
#define SIZE_OVER_MEMORY 0xFFFFFFFE
#define TEE_ORIGIN_NOT_TRUSTED_APP 5
/* same as TEEC_ORIGIN_ANY_NOT_TRUSTED_APP */
#define TEE_PROPSET_IMPLEMENTATION TEE_PROPSET_TEE_IMPLEMENTATION
static char VALUE_PREDEFINED_STRING[] = "this is a test string";
static char VALUE_PREDEFINED_U32[] = "48059";
static char VALUE_PREDEFINED_UUID[] = "534D4152-542D-4353-4C54-2D54412D3031";
static char VALUE_PREDEFINED_IDENTITY[] =
"F0000000:534D4152-542D-4353-4C54-2D54412D3031";
static char *VALUE_NONE;
static char VALUE_PREDEFINED_BINARY_BLOCK[] =
"VGhpcyBpcyBhIHRleHQgYmluYXJ5IGJsb2Nr";
static char VALUE_PREDEFINED_BOOLEAN[] = "true";
static uint8_t CHAR1[] = { 0x10 };
static char GPD_CLIENT_identity[] = "gpd.client.identity\0";
static char GPD_TA_appID[] = "gpd.ta.appID\0";
static char GPD_TA_dataSize[] = "gpd.ta.dataSize\0";
static char GPD_TA_instanceKeepAlive[] = "gpd.ta.instanceKeepAlive\0";
static char GPD_TA_multiSession[] = "gpd.ta.multiSession\0";
static char GPD_TA_singleInstance[] = "gpd.ta.singleInstance\0";
static char GPD_TA_stackSize[] = "gpd.ta.stackSize\0";
static char GPD_TEE_ARITH_maxBigIntSize[] = "gpd.tee.arith.maxBigIntSize\0";
static char GPD_TEE_SYSTEM_TIME_protectionLevel[] =
"gpd.tee.systemTime.protectionLevel\0";
static char GPD_TEE_TA_PERSISTENT_TIME_protectionLevel[] =
"gpd.tee.TAPersistentTime.protectionLevel\0";
static char GPD_TEE_apiversion[] = "gpd.tee.apiversion\0";
static char GPD_TEE_description[] = "gpd.tee.description\0";
static char GPD_TEE_deviceID[] = "gpd.tee.deviceID\0";
static char PROPERTY_NAME_NOT_VALID_ENCODING[] = "gpd.\t\n\r\0";
static char PROPERTY_NAME_UNKNOWN[] = "unknown\0";
static char SMC_TA_testuuid[] = "smc.ta.testuuid\0";
static char SMC_TA_testbinaryblock[] = "smc.ta.testbinaryblock\0";
static char SMC_TA_testbooltrue[] = "smc.ta.testbooltrue\0";
static char SMC_TA_testidentity[] = "smc.ta.testidentity\0";
static char SMC_TA_teststring[] = "smc.ta.teststring\0";
static char SMC_TA_testu32[] = "smc.ta.testu32\0";
static char STRING_SAMPLE_SIZE_4_CHAR[] = "TEE\0";
/** ALL_TEEC_UUID
*
* These constants are the UUID of existing
* Trusted Applications
*/
static TEEC_UUID UUID_TTA_testingInternalAPI_TrustedCoreFramework = {
0x534D4152, 0x542D, 0x4353,
{ 0x4C, 0x54, 0x2D, 0x54, 0x41, 0x2D, 0x30, 0x31 }
};
static TEEC_UUID UUID_TTA_testingInternalAPI_TrustedCoreFramework_ICA = {
0x534D4152, 0x5443, 0x534C,
{ 0x54, 0x41, 0x54, 0x43, 0x46, 0x49, 0x43, 0x41 }
};
static TEEC_UUID UUID_TTA_testingInternalAPI_TrustedCoreFramework_ICA2 = {
0x534D4152, 0x5443, 0x534C,
{ 0x54, 0x54, 0x43, 0x46, 0x49, 0x43, 0x41, 0x32 }
};
static TEEC_UUID
UUID_TTA_testingInternalAPI_TrustedCoreFramework_MultipleInstanceTA = {
0x534D4152, 0x5443, 0x534C,
{ 0x4D, 0x4C, 0x54, 0x49, 0x4E, 0x53, 0x54, 0x43 }
};
static TEEC_UUID
UUID_TTA_testingInternalAPI_TrustedCoreFramework_SingleInstanceTA = {
0x534D4152, 0x5443, 0x534C,
{ 0x53, 0x47, 0x4C, 0x49, 0x4E, 0x53, 0x54, 0x43 }
};
static TEEC_UUID UUID_Unknown = {
0x534D4152, 0x542D, 0x4355,
{ 0x4E, 0x4B, 0x2D, 0x4E, 0x4F, 0x2D, 0x57, 0x4E }
};
static TEEC_UUID
UUID_TTA_testingInternalAPI_TrustedCoreFramework_PanicAtCloseSession = {
0x534D4152, 0x5443, 0x534C,
{ 0x43, 0x4C, 0x4F, 0x50, 0x41, 0x4E, 0x49, 0x43 }
};
static TEEC_UUID
UUID_TTA_testingInternalAPI_TrustedCoreFramework_PanicAtCreation = {
0x534D4152, 0x5443, 0x534C,
{ 0x54, 0x43, 0x52, 0x50, 0x41, 0x4E, 0x49, 0x43 }
};
static uint64_t value_to_u64(TEEC_Value *val)
{
return ((uint64_t)val->b << 32) | val->a;
}
static TEEC_Value u64_to_value(uint64_t u)
{
return (TEEC_Value){ .a = u , .b = u >> 32 };
}
static void __maybe_unused *cancellation_thread(void *arg)
{
TEEC_RequestCancellation((TEEC_Operation *)arg);
return NULL;
}
#define RequestCancellation(op) \
(void)ADBG_EXPECT(c, 0, \
pthread_create(&THREAD02, NULL, cancellation_thread, \
(void *)op)); \
(void)ADBG_EXPECT(c, 0, pthread_join(THREAD02, NULL));
static TEEC_Result Invoke_MemFill(ADBG_Case_t *c, TEEC_Session *sess,
uint32_t cmdId, uint32_t memoryFillSize,
uint8_t *charFill)
{
return Invoke_Simple_Function_v2(c, sess, cmdId, memoryFillSize, 0,
*charFill, 0);
}
static TEEC_Result Invoke_GetPropertyAsXXX_withoutEnum(
ADBG_Case_t *c, TEEC_Session *sess, uint32_t cmdId,
TEE_PropSetHandle propSet, char *name, uint32_t kindBuffer,
char *expectedValue)
{
TEEC_Result res = TEE_ERROR_NOT_SUPPORTED;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t org;
uint32_t nameLen = 0;
uint32_t expectedValueLen = 0;
nameLen = strlen(name) + 1;
ALLOCATE_AND_FILL_SHARED_MEMORY(sess->imp.ctx, SHARE_MEM01, BIG_SIZE,
TEEC_MEM_INPUT, nameLen, name, mem01_exit)
if (kindBuffer == TOO_SHORT_BUFFER) {
ALLOCATE_SHARED_MEMORY(sess->imp.ctx, SHARE_MEM02, 1,
TEEC_MEM_OUTPUT, mem02_exit)
} else {
ALLOCATE_SHARED_MEMORY(sess->imp.ctx, SHARE_MEM02, BIG_SIZE,
TEEC_MEM_OUTPUT, mem02_exit)
}
op.params[0].value.a = (unsigned long)propSet;
SET_SHARED_MEMORY_OPERATION_PARAMETER(1, 0, SHARE_MEM01, nameLen)
SET_SHARED_MEMORY_OPERATION_PARAMETER(2, 0, SHARE_MEM02,
SHARE_MEM02->size)
op.paramTypes = TEEC_PARAM_TYPES(
TEEC_VALUE_INPUT, TEEC_MEMREF_PARTIAL_INPUT,
TEEC_MEMREF_PARTIAL_OUTPUT, TEEC_NONE);
res = TEEC_InvokeCommand(sess, cmdId, &op, &org);
if (res)
goto exit;
if (expectedValue != VALUE_NONE) {
expectedValueLen = strlen(expectedValue);
if (cmdId != CMD_TEE_GetPropertyAsBool_withoutEnum &&
cmdId != CMD_TEE_GetPropertyAsIdentity_withoutEnum &&
cmdId != CMD_TEE_GetPropertyAsUUID_withoutEnum &&
cmdId != CMD_TEE_GetPropertyAsU32_withoutEnum)
expectedValueLen++;
if (!ADBG_EXPECT_BUFFER(c, expectedValue, expectedValueLen,
op.params[2].memref.parent->buffer,
op.params[2].memref.size))
res = TEEC_ERROR_GENERIC;
}
exit:
TEEC_ReleaseSharedMemory(SHARE_MEM02);
mem02_exit:
TEEC_ReleaseSharedMemory(SHARE_MEM01);
mem01_exit:
return res;
}
static TEEC_Result Invoke_MemCompare(
ADBG_Case_t *c, TEEC_Session *sess, uint32_t cmdId,
uint32_t memorySize, uint32_t Case, uint32_t compareResult)
{
TEEC_Result res = TEE_ERROR_NOT_SUPPORTED;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t org;
uint32_t outValue = 0;
op.params[0].value.a = memorySize;
op.params[1].value.a = Case;
op.params[2].value.a = outValue;
op.paramTypes = TEEC_PARAM_TYPES(
TEEC_VALUE_INPUT, TEEC_VALUE_INPUT, TEEC_VALUE_OUTPUT,
TEEC_NONE);
res = TEEC_InvokeCommand(sess, cmdId, &op, &org);
if (res != TEEC_SUCCESS)
goto exit;
if (compareResult == RESULT_EQUAL) {
(void)ADBG_EXPECT_COMPARE_SIGNED(c, op.params[2].value.a, ==,
0);
} else if (compareResult == RESULT_INTEGER_GREATER_THAN_ZERO) {
(void)ADBG_EXPECT_COMPARE_SIGNED(c,
(int32_t)op.params[2].value.a,
>, 0);
} else if (compareResult == RESULT_INTEGER_LOWER_THAN_ZERO) {
(void)ADBG_EXPECT_COMPARE_SIGNED(c,
(int32_t)op.params[2].value.a,
<, 0);
}
exit:
return res;
}
static TEEC_Result Invoke_SetInstanceData(ADBG_Case_t *c,
TEEC_Session *sess, uint32_t cmdId,
char *data)
{
TEEC_Result res = TEE_ERROR_NOT_SUPPORTED;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
size_t data_size = strlen(data) + 1;
uint32_t org;
ALLOCATE_AND_FILL_SHARED_MEMORY(sess->imp.ctx, SHARE_MEM01, BIG_SIZE,
TEEC_MEM_INPUT,
data_size, data, mem01_exit)
SET_SHARED_MEMORY_OPERATION_PARAMETER(0, 0, SHARE_MEM01, data_size)
op.paramTypes = TEEC_PARAM_TYPES(
TEEC_MEMREF_PARTIAL_INPUT, TEEC_NONE, TEEC_NONE, TEEC_NONE);
res = TEEC_InvokeCommand(sess, cmdId, &op, &org);
TEEC_ReleaseSharedMemory(SHARE_MEM01);
mem01_exit:
return res;
}
static TEEC_Result Invoke_GetInstanceData(
ADBG_Case_t *c, TEEC_Session *sess, uint32_t cmdId, char *expectedData,
uint32_t expectedDataSize)
{
TEEC_Result res = TEE_ERROR_NOT_SUPPORTED;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t org;
ALLOCATE_SHARED_MEMORY(sess->imp.ctx, SHARE_MEM01, BIG_SIZE,
TEEC_MEM_OUTPUT, mem01_exit)
SET_SHARED_MEMORY_OPERATION_PARAMETER(0, 0, SHARE_MEM01,
SHARE_MEM01->size)
op.paramTypes = TEEC_PARAM_TYPES(
TEEC_MEMREF_PARTIAL_OUTPUT, TEEC_NONE, TEEC_NONE, TEEC_NONE);
res = TEEC_InvokeCommand(sess, cmdId, &op, &org);
if (res != TEEC_SUCCESS)
goto exit;
if (res != TEE_ERROR_GENERIC) {
if (!ADBG_EXPECT_BUFFER(c, expectedData, expectedDataSize,
SHARE_MEM01->buffer,
op.params[0].memref.size))
res = TEE_ERROR_GENERIC;
}
exit:
TEEC_ReleaseSharedMemory(SHARE_MEM01);
mem01_exit:
return res;
}
static TEEC_Result Invoke_ProcessInvokeTAOpenSession(
ADBG_Case_t *c, TEEC_Session *sess, uint32_t cmdId,
uint32_t TACmd, TEEC_UUID *UUID, uint32_t returnOrigin)
{
TEEC_Result res = TEE_ERROR_NOT_SUPPORTED;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
TEEC_UUID swapped_uuid = *UUID;
uint32_t org;
swapped_uuid.timeLow = htonl(swapped_uuid.timeLow);
swapped_uuid.timeMid = htons(swapped_uuid.timeMid);
swapped_uuid.timeHiAndVersion = htons(swapped_uuid.timeHiAndVersion);
ALLOCATE_AND_FILL_SHARED_MEMORY(sess->imp.ctx, SHARE_MEM01, BIG_SIZE,
TEEC_MEM_INPUT, 16, &swapped_uuid,
mem01_exit)
op.params[0].value.a = TACmd;
SET_SHARED_MEMORY_OPERATION_PARAMETER(1, 0, SHARE_MEM01, 16)
op.params[2].value.a = returnOrigin;
op.paramTypes = TEEC_PARAM_TYPES(
TEEC_VALUE_INPUT, TEEC_MEMREF_PARTIAL_INPUT, TEEC_VALUE_OUTPUT,
TEEC_NONE);
res = TEEC_InvokeCommand(sess, cmdId, &op, &org);
if (TEE_ORIGIN_NOT_TRUSTED_APP == returnOrigin) {
ADBG_EXPECT_COMPARE_UNSIGNED(c, op.params[2].value.a, !=,
TEE_ORIGIN_TRUSTED_APP);
} else {
ADBG_EXPECT_COMPARE_UNSIGNED(c, op.params[2].value.a, ==,
returnOrigin);
}
TEEC_ReleaseSharedMemory(SHARE_MEM01);
mem01_exit:
return res;
}
static TEEC_Result Invoke_CheckMemoryAccessRight(ADBG_Case_t *c,
TEEC_Session *sess,
uint32_t cmdId,
uint32_t memoryParamType,
uint32_t memoryAccessFlags)
{
TEEC_Result res = TEE_ERROR_NOT_SUPPORTED;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t org;
uint32_t memory_flag;
switch (memoryParamType) {
case TEEC_MEMREF_TEMP_INPUT:
case TEEC_MEMREF_PARTIAL_INPUT:
memory_flag = TEEC_MEM_INPUT;
break;
case TEEC_MEMREF_TEMP_OUTPUT:
case TEEC_MEMREF_PARTIAL_OUTPUT:
memory_flag = TEEC_MEM_OUTPUT;
break;
case TEEC_MEMREF_TEMP_INOUT:
case TEEC_MEMREF_PARTIAL_INOUT:
case TEEC_MEMREF_WHOLE:
memory_flag = TEEC_MEM_INPUT | TEEC_MEM_OUTPUT;
break;
default:
memory_flag = 0;
break;
}
ALLOCATE_SHARED_MEMORY(sess->imp.ctx, SHARE_MEM01, BIG_SIZE,
memory_flag, mem01_exit)
op.params[0].value.a = memoryAccessFlags;
SET_SHARED_MEMORY_OPERATION_PARAMETER(1, 0, SHARE_MEM01,
SHARE_MEM01->size)
op.paramTypes = TEEC_PARAM_TYPES(
TEEC_VALUE_INPUT, memoryParamType, TEEC_NONE, TEEC_NONE);
res = TEEC_InvokeCommand(sess, cmdId, &op, &org);
TEEC_ReleaseSharedMemory(SHARE_MEM01);
mem01_exit:
return res;
}
static TEEC_Result Invoke_MemMove(ADBG_Case_t *c, TEEC_Session *sess,
uint32_t cmdId, uint32_t memorySize)
{
return Invoke_Simple_Function_v1(c, sess, cmdId, memorySize, 0);
}
static TEEC_Result Invoke_AllocatePropertyEnumerator(ADBG_Case_t *c,
TEEC_Session *sess,
uint32_t cmdId,
uint64_t *enumerator)
{
TEEC_Result res = TEE_ERROR_NOT_SUPPORTED;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t org;
op.paramTypes = TEEC_PARAM_TYPES(
TEEC_VALUE_OUTPUT, TEEC_NONE, TEEC_NONE, TEEC_NONE);
res = TEEC_InvokeCommand(sess, cmdId, &op, &org);
if (res != TEEC_SUCCESS)
goto exit;
*enumerator = value_to_u64(&op.params[0].value);
exit:
return res;
}
static TEEC_Result Invoke_StartPropertyEnumerator(ADBG_Case_t *c,
TEEC_Session *sess,
uint32_t cmdId,
uint64_t *enumerator,
TEE_PropSetHandle propSet)
{
return Invoke_Simple_Function_v2(c, sess, cmdId, *enumerator,
*enumerator >> 32,
(unsigned long)propSet, 0);
}
static TEEC_Result Invoke_ResetPropertyEnumerator(ADBG_Case_t *c,
TEEC_Session *sess,
uint32_t cmdId,
uint64_t *enumerator)
{
return Invoke_Simple_Function_v1(c, sess, cmdId, *enumerator,
*enumerator >> 32);
}
static TEEC_Result Invoke_GetPropertyName(ADBG_Case_t *c, TEEC_Session *sess,
uint32_t cmdId, uint64_t *enumerator,
char *propertyName,
uint32_t kindBuffer)
{
TEEC_Result res = TEE_ERROR_NOT_SUPPORTED;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t org;
uint32_t strLen = 0;
if (kindBuffer == TOO_SHORT_BUFFER) {
ALLOCATE_SHARED_MEMORY(sess->imp.ctx, SHARE_MEM01, 1,
TEEC_MEM_OUTPUT, mem01_exit)
} else {
ALLOCATE_SHARED_MEMORY(sess->imp.ctx, SHARE_MEM01, BIG_SIZE,
TEEC_MEM_OUTPUT, mem01_exit)
}
op.params[0].value = u64_to_value(*enumerator);
SET_SHARED_MEMORY_OPERATION_PARAMETER(1, 0, SHARE_MEM01,
SHARE_MEM01->size)
op.paramTypes = TEEC_PARAM_TYPES(
TEEC_VALUE_INPUT, TEEC_MEMREF_PARTIAL_OUTPUT, TEEC_NONE,
TEEC_NONE);
res = TEEC_InvokeCommand(sess, cmdId, &op, &org);
if (res != TEEC_SUCCESS)
goto exit;
strLen = strlen(propertyName) + 1;
(void)ADBG_EXPECT_COMPARE_SIGNED(c, op.params[1].memref.size, ==,
strLen);
(void)ADBG_EXPECT_COMPARE_SIGNED(c,
0, ==,
memcmp(SHARE_MEM01->buffer,
propertyName, strLen));
exit:
TEEC_ReleaseSharedMemory(SHARE_MEM01);
mem01_exit:
return res;
}
static TEEC_Result Invoke_Malloc(ADBG_Case_t *c, TEEC_Session *sess,
uint32_t cmdId, uint32_t memorySize,
uint32_t hint)
{
return Invoke_Simple_Function_v2(c, sess, cmdId, memorySize, 0, hint,
0);
}
static TEEC_Result Invoke_Panic(ADBG_Case_t *c, TEEC_Session *sess,
uint32_t cmdId)
{
TEEC_Result res = TEE_ERROR_NOT_SUPPORTED;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t org;
op.paramTypes = TEEC_PARAM_TYPES(
TEEC_NONE, TEEC_NONE, TEEC_NONE, TEEC_NONE);
res = TEEC_InvokeCommand(sess, cmdId, &op, &org);
if (res != TEEC_SUCCESS)
goto exit;
ADBG_EXPECT_COMPARE_SIGNED(c, org, ==, TEE_ORIGIN_TEE);
exit:
return res;
}
static TEEC_Result Invoke_Realloc(ADBG_Case_t *c, TEEC_Session *sess,
uint32_t cmdId, uint32_t oldMemorySize,
uint32_t newMemorySize)
{
return Invoke_Simple_Function_v2(c, sess, cmdId, oldMemorySize, 0,
newMemorySize, 0);
}
static TEEC_Result Invoke_Free(ADBG_Case_t *c, TEEC_Session *sess,
uint32_t cmdId, uint32_t Case)
{
return Invoke_Simple_Function_v1(c, sess, cmdId, Case, 0);
}
static TEEC_Result Invoke_OpenTASession(ADBG_Case_t *c, TEEC_Session *sess,
uint32_t cmd_id, uint32_t ta_session,
TEEC_UUID *uuid, uint32_t exp_eo)
{
TEEC_Result res = TEEC_SUCCESS;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t eo = 0;
TEEC_UUID swapped_uuid = *uuid;
TEEC_SharedMemory shm = {
.flags = TEEC_MEM_INPUT,
.buffer = &swapped_uuid,
.size = sizeof(*uuid),
};
swapped_uuid.timeLow = htonl(swapped_uuid.timeLow);
swapped_uuid.timeMid = htons(swapped_uuid.timeMid);
swapped_uuid.timeHiAndVersion = htons(swapped_uuid.timeHiAndVersion);
res = TEEC_RegisterSharedMemory(sess->imp.ctx, &shm);
if (!ADBG_EXPECT_TEEC_SUCCESS(c, res))
return res;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT,
TEEC_MEMREF_PARTIAL_INPUT,
TEEC_VALUE_OUTPUT, TEEC_NONE);
op.params[0].value.a = ta_session;
op.params[1].memref.offset = 0;
op.params[1].memref.size = sizeof(*uuid);
op.params[1].memref.parent = &shm;
res = TEEC_InvokeCommand(sess, cmd_id, &op, &eo);
TEEC_ReleaseSharedMemory(&shm);
if (!ADBG_EXPECT(c, TEE_ORIGIN_TRUSTED_APP, eo))
return TEEC_ERROR_GENERIC;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, res))
return res;
ADBG_EXPECT(c, exp_eo, op.params[2].value.b);
return op.params[2].value.a;
}
static TEEC_Result Invoke_InvokeTACommand(ADBG_Case_t *c, TEEC_Session *sess,
uint32_t cmd_id, uint32_t ta_session,
uint32_t ta_cmd_id, uint32_t exp_eo)
{
TEEC_Result res = TEEC_SUCCESS;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t eo = 0;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, TEEC_VALUE_OUTPUT,
TEEC_NONE, TEEC_NONE);
op.params[0].value.a = ta_session;
op.params[0].value.b = ta_cmd_id;
res = TEEC_InvokeCommand(sess, cmd_id, &op, &eo);
if (!ADBG_EXPECT(c, TEE_ORIGIN_TRUSTED_APP, eo))
return TEEC_ERROR_GENERIC;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, res))
return res;
ADBG_EXPECT(c, exp_eo, op.params[1].value.b);
return op.params[1].value.a;
}
static TEEC_Result Invoke_CloseTASession(ADBG_Case_t *c, TEEC_Session *sess,
uint32_t cmd_id, uint32_t ta_session)
{
TEEC_Result res = TEEC_SUCCESS;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t eo = 0;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, TEEC_NONE,
TEEC_NONE, TEEC_NONE);
op.params[0].value.a = ta_session;
res = TEEC_InvokeCommand(sess, cmd_id, &op, &eo);
ADBG_EXPECT(c, TEE_ORIGIN_TRUSTED_APP, eo);
return res;
}
#endif /* XML_INTERNAL_API_H_ */

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,26 @@
From 2bdbcc524e8f14c85c46a0e915e195e6d086ba02 Mon Sep 17 00:00:00 2001
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Mon, 22 Jun 2020 17:50:40 +0200
Subject: [PATCH 03/11] TTA_TCF: patch
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
---
TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.h b/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.h
index 688e8cf74597..f46667883162 100644
--- a/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.h
+++ b/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.h
@@ -59,7 +59,7 @@ bool areStringsIdentical(const char *string1, size_t length1, const char *string
bool areStringsIdenticalWithZeroTerminated(const char *string1, size_t length1, const char *zeroTerminatedString);
bool areUUIDsIdentical(TEE_UUID *UUID1, TEE_UUID *UUID2);
bool areIdentitiesIdentical(TEE_Identity *Identity1, TEE_Identity *Identity2);
-bool areBinaryBlocksIdentical(const char *BinaryBlock1, uint32_t nLength1, const char *BinaryBlock2, uint32_t nLength2);
+bool areBinaryBlocksIdentical(const char *BinaryBlock1, size_t nLength1, const char *BinaryBlock2, size_t nLength2);
bool isPropertySet (TEE_PropSetHandle propsetOrEnumerator);
void getUUIDFromBuffer(TEE_UUID *pTargetUUID, char uuidvalue[16]);
enum propType getPropertyType(const char *propString, size_t propStringLength);
--
2.25.1

View File

@@ -0,0 +1,26 @@
From 1664c3124576d8b2065206e99016bfa6a5d9ac34 Mon Sep 17 00:00:00 2001
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 23 Jun 2020 13:43:40 +0200
Subject: [PATCH 04/11] TTA_Arithmetical: patch
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
---
.../TTA_Arithmetical/code_files/TTA_Arithmetical_protocol.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/TTAs_Internal_API_1_1_1/TTA_Arithmetical/TTA_Arithmetical/code_files/TTA_Arithmetical_protocol.h b/TTAs_Internal_API_1_1_1/TTA_Arithmetical/TTA_Arithmetical/code_files/TTA_Arithmetical_protocol.h
index 063f4b59e218..13cb801eeb20 100644
--- a/TTAs_Internal_API_1_1_1/TTA_Arithmetical/TTA_Arithmetical/code_files/TTA_Arithmetical_protocol.h
+++ b/TTAs_Internal_API_1_1_1/TTA_Arithmetical/TTA_Arithmetical/code_files/TTA_Arithmetical_protocol.h
@@ -61,7 +61,7 @@ typedef struct {
TTA_Internal_Data* SetUpTTAInternalData(void);
void ResetTTAInternalData(TTA_Internal_Data *pInternalData);
-TEE_BigIntFMM* AllocateAndInitializeFMM(uint32_t nModulusSizeInBytes);
+TEE_BigIntFMM* AllocateAndInitializeFMM(size_t nModulusSizeInBytes);
TEE_BigInt* AllocateAndInitialize(uint32_t nSizeInBytes);
uint32_t CmdGetBigIntSignInUint32(TEE_BigInt *pBigInt);
TEE_Result CmdTEEBigIntCmp(
--
2.25.1

View File

@@ -0,0 +1,28 @@
From 83990e0e151d164f0d9e69053305fad2429f8cdc Mon Sep 17 00:00:00 2001
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Mon, 29 Jun 2020 12:48:11 +0200
Subject: [PATCH 05/11] GP_defs.h: enable debug prints
Enables debug prints using the *MSG() macros.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
---
TTAs_Internal_API_1_1_1/GP_defs.h | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/TTAs_Internal_API_1_1_1/GP_defs.h b/TTAs_Internal_API_1_1_1/GP_defs.h
index 3d6ef1d53c78..91995187cae2 100644
--- a/TTAs_Internal_API_1_1_1/GP_defs.h
+++ b/TTAs_Internal_API_1_1_1/GP_defs.h
@@ -1,4 +1,5 @@
-#define SLogTrace(...)
-#define SLogError(...)
-#define SLogWarning(...)
+#include <trace.h>
+#define SLogTrace DMSG
+#define SLogError EMSG
+#define SLogWarning IMSG
#define S_VAR_NOT_USED(x) do { (void)(x); } while (0)
--
2.25.1

View File

@@ -0,0 +1,192 @@
From 1f8d4686cd7c42ad59c9411e1dd7ceea97f5de9d Mon Sep 17 00:00:00 2001
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 7 Jul 2020 17:19:50 +0200
Subject: [PATCH 06/11] TTA_TCF: fix CmdTEEGetPropertyA*_withoutEnum()
Property name must not reside in non-secure shared memory when passed as
argument to TEE_GetPropertyAs*().
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
---
.../TTA_TCF/TTA_TCF/code_files/TTA_TCF.c | 56 +++++++++++++------
1 file changed, 39 insertions(+), 17 deletions(-)
diff --git a/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.c b/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.c
index b7c44c67fe32..8d1df25dea69 100644
--- a/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.c
+++ b/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.c
@@ -311,7 +311,7 @@ TEE_Result CmdTEEGetPropertyAsString_withoutEnum(
{
/** VARIABLES **/
TEE_PropSetHandle nPropSet;
- char* pPropName;
+ char pPropName[PROPERTY_NAME_MAX_SIZE];
char* pOutputName;
TEE_Result cmdResult;
@@ -330,12 +330,15 @@ TEE_Result CmdTEEGetPropertyAsString_withoutEnum(
/* Read the input parameter */
nPropSet = (TEE_PropSetHandle)pParams[0].value.a;
- pPropName = pParams[1].memref.buffer;
- if (pPropName == NULL)
+ if (!pParams[1].memref.buffer ||
+ pParams[1].memref.size >= sizeof(pPropName))
{
SLogError("CmdTEEGetPropertyAsString_withoutEnum: property name Input parameter is NULL");
return TRUSTED_APP_ERROR_BAD_PARAMETERS;
}
+ TEE_MemMove(pPropName, pParams[1].memref.buffer,
+ pParams[1].memref.size);
+ pPropName[pParams[1].memref.size] = 0;
/* Read the output parameters */
pOutputName = pParams[2].memref.buffer;
@@ -359,7 +362,7 @@ TEE_Result CmdTEEGetPropertyAsBool_withoutEnum(
{
/** VARIABLES **/
TEE_PropSetHandle nPropSet;
- char* pPropName;
+ char pPropName[PROPERTY_NAME_MAX_SIZE];
char nTrue[4] = "true";
char nFalse[5] = "false";
bool nOutputBool;
@@ -381,12 +384,16 @@ TEE_Result CmdTEEGetPropertyAsBool_withoutEnum(
/* Read the input parameter */
nPropSet = (TEE_PropSetHandle)pParams[0].value.a;
- pPropName = pParams[1].memref.buffer;
if (pPropName == NULL)
+ if (!pParams[1].memref.buffer ||
+ pParams[1].memref.size >= sizeof(pPropName))
{
SLogError("CmdTEEGetPropertyAsBool_withoutEnum: property name Input parameter is NULL");
return TRUSTED_APP_ERROR_BAD_PARAMETERS;
}
+ TEE_MemMove(pPropName, pParams[1].memref.buffer,
+ pParams[1].memref.size);
+ pPropName[pParams[1].memref.size] = 0;
/* if all input/output data are correct */
cmdResult = TEE_GetPropertyAsBool(nPropSet, pPropName, &nOutputBool);
@@ -412,7 +419,7 @@ TEE_Result CmdTEEGetPropertyAsInt_withoutEnum(
{
/** VARIABLES **/
TEE_PropSetHandle nPropSet;
- char* pPropName;
+ char pPropName[PROPERTY_NAME_MAX_SIZE];
char nResultString[5] = "48059";
char nWrongResultString[11] = "wrong value";
uint32_t nIntResult;
@@ -435,12 +442,15 @@ TEE_Result CmdTEEGetPropertyAsInt_withoutEnum(
/* Read the input parameter */
nPropSet = (TEE_PropSetHandle)pParams[0].value.a;
- pPropName = pParams[1].memref.buffer;
- if (pPropName == NULL)
+ if (!pParams[1].memref.buffer ||
+ pParams[1].memref.size >= sizeof(pPropName))
{
SLogError("CmdTEEGetPropertyAsInt_withoutEnum: property name Input parameter is NULL");
return TRUSTED_APP_ERROR_BAD_PARAMETERS;
}
+ TEE_MemMove(pPropName, pParams[1].memref.buffer,
+ pParams[1].memref.size);
+ pPropName[pParams[1].memref.size] = 0;
/* if all input/output data are correct */
cmdResult = TEE_GetPropertyAsU32(nPropSet, pPropName, &nIntResult);
@@ -466,7 +476,7 @@ TEE_Result CmdTEEGetPropertyAsBinaryBlock_withoutEnum(
{
/** VARIABLES **/
TEE_PropSetHandle nPropSet;
- char* pPropName;
+ char pPropName[PROPERTY_NAME_MAX_SIZE];
void* pOutputBinaryBlock;
TEE_Result cmdResult;
@@ -485,12 +495,15 @@ TEE_Result CmdTEEGetPropertyAsBinaryBlock_withoutEnum(
/* Read the input parameter */
nPropSet = (TEE_PropSetHandle)pParams[0].value.a;
- pPropName = pParams[1].memref.buffer;
- if ((pPropName == NULL))
+ if (!pParams[1].memref.buffer ||
+ pParams[1].memref.size >= sizeof(pPropName))
{
SLogError("CmdTEEGetPropertyAsBinaryBlock_withoutEnum: property name Input parameter is NULL");
return TRUSTED_APP_ERROR_BAD_PARAMETERS;
}
+ TEE_MemMove(pPropName, pParams[1].memref.buffer,
+ pParams[1].memref.size);
+ pPropName[pParams[1].memref.size] = 0;
/* Read the output parameters */
pOutputBinaryBlock = pParams[2].memref.buffer;
@@ -515,7 +528,7 @@ TEE_Result CmdTEEGetPropertyAsUUID_withoutEnum(
{
/** VARIABLES **/
TEE_PropSetHandle nPropSet;
- char* pPropName;
+ char pPropName[PROPERTY_NAME_MAX_SIZE];
char nWrongResultString[10] = "wrong uuid";
char nResultUUIDString[36] = "534D4152-542D-4353-4C54-2D54412D3031";
char nClockSeqAndNode[8] = SMC_TA_TESTUUID_CLOCKSEQANDNODE;
@@ -537,12 +550,15 @@ TEE_Result CmdTEEGetPropertyAsUUID_withoutEnum(
/* Read the input parameter */
nPropSet = (TEE_PropSetHandle)pParams[0].value.a;
- pPropName = pParams[1].memref.buffer;
- if ((pPropName == NULL))
+ if (!pParams[1].memref.buffer ||
+ pParams[1].memref.size >= sizeof(pPropName))
{
SLogError("CmdTEEGetPropertyAsUUID_withoutEnum: property name Input parameter is NULL");
return TRUSTED_APP_ERROR_BAD_PARAMETERS;
}
+ TEE_MemMove(pPropName, pParams[1].memref.buffer,
+ pParams[1].memref.size);
+ pPropName[pParams[1].memref.size] = 0;
/* Read the output parameters */
if (pParams[2].memref.buffer == NULL)
@@ -579,7 +595,7 @@ TEE_Result CmdTEEGetPropertyAsIdentity_withoutEnum(
{
/** VARIABLES **/
TEE_PropSetHandle nPropSet;
- char* pPropName;
+ char pPropName[PROPERTY_NAME_MAX_SIZE];
char nWrongResultString[14] = "wrong identity";
char nResultIdentityString[45] = "F0000000:534D4152-542D-4353-4C54-2D54412D3031";
char nClockSeqAndNode[8] = SMC_TA_TESTUUID_CLOCKSEQANDNODE;
@@ -602,12 +618,15 @@ TEE_Result CmdTEEGetPropertyAsIdentity_withoutEnum(
/* Read the input parameter */
nPropSet = (TEE_PropSetHandle)pParams[0].value.a;
- pPropName = pParams[1].memref.buffer;
- if ((pPropName == NULL))
+ if (!pParams[1].memref.buffer ||
+ pParams[1].memref.size >= sizeof(pPropName))
{
SLogError("CmdTEEGetPropertyAsIdentity_withoutEnum: property name Input parameter is NULL");
return TRUSTED_APP_ERROR_BAD_PARAMETERS;
}
+ TEE_MemMove(pPropName, pParams[1].memref.buffer,
+ pParams[1].memref.size);
+ pPropName[pParams[1].memref.size] = 0;
/* Read the output parameters */
if (pParams[2].memref.buffer == NULL)
@@ -647,6 +666,9 @@ TEE_Result CmdTEEGetPropertyAsXXX_fromEnum(
TEE_PropSetHandle nPropSet;
char pPropName[PROPERTY_NAME_MAX_SIZE];
size_t nPropNameSize = 0;
+ TEE_MemMove(pPropName, pParams[1].memref.buffer,
+ pParams[1].memref.size);
+ pPropName[pParams[1].memref.size] = 0;
char pOutputString1[PROPERTY_OUTPUT_STRING_MAX_SIZE], pOutputString2[PROPERTY_OUTPUT_STRING_MAX_SIZE];
size_t nOutputString1Length = 0;
size_t nOutputString2Length = 0;
--
2.25.1

View File

@@ -0,0 +1,90 @@
From 309bdb9181502392f1d1a978e4e97706ebf532c8 Mon Sep 17 00:00:00 2001
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Thu, 24 Sep 2020 11:31:34 +0200
Subject: [PATCH 07/11] TTAs revert to v1.1 types
Replacing some occurrences of size_t with uint32_t.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
---
.../TTA_Crypto/TTA_Crypto/code_files/TTA_Crypto.c | 4 ++--
.../TTA_Crypto/TTA_Crypto/code_files/TTA_Crypto_protocol.h | 2 +-
.../TTA_DS/TTA_DS/code_files/TTA_DS_commands.c | 4 ++--
.../TTA_TCF/TTA_TCF/code_files/TTA_TCF.c | 6 +++---
4 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/TTAs_Internal_API_1_1_1/TTA_Crypto/TTA_Crypto/code_files/TTA_Crypto.c b/TTAs_Internal_API_1_1_1/TTA_Crypto/TTA_Crypto/code_files/TTA_Crypto.c
index 11de643f586d..d17448e878ca 100644
--- a/TTAs_Internal_API_1_1_1/TTA_Crypto/TTA_Crypto/code_files/TTA_Crypto.c
+++ b/TTAs_Internal_API_1_1_1/TTA_Crypto/TTA_Crypto/code_files/TTA_Crypto.c
@@ -298,7 +298,7 @@ void SetOperationToNull(TEE_CryptoData *pCryptoData, uint32_t lopId)
(pCryptoData->Operation3) = TEE_HANDLE_NULL;
}
-bool copyOperationInfoMultipleToBuffer(const TEE_OperationInfoMultiple *pOpInfo, uint8_t *buffer, size_t *size)
+bool copyOperationInfoMultipleToBuffer(const TEE_OperationInfoMultiple *pOpInfo, uint8_t *buffer, uint32_t *size)
{
const size_t allocatedSize = *size;
const size_t outputSize = 32 + pOpInfo->numberOfKeys * 8;
@@ -976,7 +976,7 @@ TEE_Result CmdGetOperationInfoMultiple(
if (numberOfKeys > MAX_NUMBER_OF_KEYS)
return TRUSTED_APP_ERROR_VALUE_OUT_OF_RANGE;
- operationSize = sizeof(TEE_OperationInfoMultiple) + numberOfKeys * sizeof(TEE_OperationInfoKey); // from 1.1 §6.1.3
+ operationSize = sizeof(TEE_OperationInfoMultiple) + numberOfKeys * sizeof(TEE_OperationInfoKey); // from 1.1 ?6.1.3
returnCode = TEE_GetOperationInfoMultiple(operation, pCryptoData->OperationInfoMultiple, &operationSize);
diff --git a/TTAs_Internal_API_1_1_1/TTA_Crypto/TTA_Crypto/code_files/TTA_Crypto_protocol.h b/TTAs_Internal_API_1_1_1/TTA_Crypto/TTA_Crypto/code_files/TTA_Crypto_protocol.h
index 51c827cdb796..13f816d8f0ae 100644
--- a/TTAs_Internal_API_1_1_1/TTA_Crypto/TTA_Crypto/code_files/TTA_Crypto_protocol.h
+++ b/TTAs_Internal_API_1_1_1/TTA_Crypto/TTA_Crypto/code_files/TTA_Crypto_protocol.h
@@ -47,7 +47,7 @@ void writeUint32ToBuffer(uint32_t value, uint8_t buffer[]);
bool getOperation(TEE_CryptoData *pCryptoData, uint32_t lopId, TEE_OperationHandle *pOperation);
bool getKey(TEE_CryptoData *pCryptoData, uint32_t lkeyId, TEE_ObjectHandle *pKey);
void SetOperationToNull(TEE_CryptoData *pCryptoData, uint32_t lopId);
-bool copyOperationInfoMultipleToBuffer(const TEE_OperationInfoMultiple *pOpInfo, uint8_t *buffer, size_t *size);
+bool copyOperationInfoMultipleToBuffer(const TEE_OperationInfoMultiple *pOpInfo, uint8_t *buffer, uint32_t *size);
TEE_Result CmdTTAEnsureIntermediateBufferSize(
void* pSessionContext,
diff --git a/TTAs_Internal_API_1_1_1/TTA_DS/TTA_DS/code_files/TTA_DS_commands.c b/TTAs_Internal_API_1_1_1/TTA_DS/TTA_DS/code_files/TTA_DS_commands.c
index 31efbbb01710..d828e7b4e383 100644
--- a/TTAs_Internal_API_1_1_1/TTA_DS/TTA_DS/code_files/TTA_DS_commands.c
+++ b/TTAs_Internal_API_1_1_1/TTA_DS/TTA_DS/code_files/TTA_DS_commands.c
@@ -940,9 +940,9 @@ TEE_Result CmdGetNextPersistentObject(
TEE_Param pParams[4])
{
uint8_t localBuffer[TEE_OBJECT_ID_MAX_LEN] = { 0 };
- size_t localBufferLength = NELEM(localBuffer);
+ uint32_t localBufferLength = NELEM(localBuffer);
void *objectID;
- size_t *objectIDLen;
+ uint32_t *objectIDLen;
TEE_ObjectEnumHandle objectEnumerator;
TEE_ObjectInfo *pObjectInfo;
TEE_Result returnCode;
diff --git a/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.c b/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.c
index 8d1df25dea69..14e642cd6193 100644
--- a/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.c
+++ b/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.c
@@ -665,13 +665,13 @@ TEE_Result CmdTEEGetPropertyAsXXX_fromEnum(
TEE_PropSetHandle nEnum;
TEE_PropSetHandle nPropSet;
char pPropName[PROPERTY_NAME_MAX_SIZE];
- size_t nPropNameSize = 0;
+ uint32_t nPropNameSize = 0;
TEE_MemMove(pPropName, pParams[1].memref.buffer,
pParams[1].memref.size);
pPropName[pParams[1].memref.size] = 0;
char pOutputString1[PROPERTY_OUTPUT_STRING_MAX_SIZE], pOutputString2[PROPERTY_OUTPUT_STRING_MAX_SIZE];
- size_t nOutputString1Length = 0;
- size_t nOutputString2Length = 0;
+ uint32_t nOutputString1Length = 0;
+ uint32_t nOutputString2Length = 0;
bool nOutputBool1;
bool nOutputBool2;
uint32_t nOutputInt1;
--
2.25.1

View File

@@ -0,0 +1,38 @@
From 1664a1487cdfb235483eb6f874f39839dee80e7e Mon Sep 17 00:00:00 2001
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 24 Jun 2020 08:49:24 +0200
Subject: [PATCH 08/11] TEE.xml
Disabling the case:
- Request_Cancellation (d3-87-46)
Because the adaption layer we've implemented cannot deal with threads in
a good way
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
---
packages/ClientAPI/xmlstable/TEE.xml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/packages/ClientAPI/xmlstable/TEE.xml b/packages/ClientAPI/xmlstable/TEE.xml
index 85cd81818f5f..e59c4df02d3c 100644
--- a/packages/ClientAPI/xmlstable/TEE.xml
+++ b/packages/ClientAPI/xmlstable/TEE.xml
@@ -825,6 +825,7 @@
</call>
</postamble>
</scenario>
+<!--
<scenario name="Request_Cancellation (d3-87-46)" destructive="no">
<req name="REQUEST_CANCELLATION_PROCESSING">
<description><![CDATA[This function requests the cancellation of a pending open Session operation or a Command invocation operation. As this is a synchronous API, this function must be called from a thread other than the one executing the TEEC_OpenSession or TEEC_InvokeCommand function. It is valid to call this function using a TEEC_Operation structure any time after the Client Application has set the started field of an Operation structure to zero. In particular, an operation can be cancelled before it is actually invoked, during invocation, and after invocation. Note that the Client Application MUST reset the started field to zero each time an Operation structure is used or re-used to open a Session or invoke a Command if the new operation is to be cancellable. In many use cases it will be necessary for the Client Application to detect whether the operation was actually cancelled, or whether it completed normally. In some implementations it MAY be possible for part of the infrastructure to cancel the operation before it reaches the Trusted Application. In these cases the return origin returned by TEEC_OpenSession or TEEC_InvokeCommand MUST be either TEEC_ORIGIN_API, TEEC_ORIGIN_COMMS, or TEEC_ORIGIN_TEE, and the return code MUST be TEEC_ERROR_CANCEL. If the cancellation request is handled by the Trusted Application itself then the return origin returned by TEEC_OpenSession or TEEC_InvokeCommand MUST be TEE_ORIGIN_TRUSTED_APP, and the return code is defined by the Trusted Application‟s protocol. If possible, Trusted Applications SHOULD use TEEC_ERROR_CANCEL for their return code, but it is accepted that this is not always possible due to conflicts with existing return code definitions in other standards.]]></description>
@@ -1089,6 +1090,7 @@
</call>
</postamble>
</scenario>
+-->
</initial-state>
<initial-state name="TestSuite_OtherCommandThanInvoke">
<scenario name="Allocate_In (29-ff-45)" destructive="no">
--
2.25.1

View File

@@ -0,0 +1,96 @@
From a7caa35eff3487c0bd777f7df6f5337219b8d9dd Mon Sep 17 00:00:00 2001
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 7 Jul 2020 11:17:14 +0200
Subject: [PATCH 09/11] TEE_Internal_API.xml
Disabling cases:
- Invoke_CheckMemoryAccessRight_BufferRead_AccessWrite_error (a7-35-f1)
- Invoke_CheckMemoryAccessRight_BufferWrite_AccessRead_error (a7-98-4b)
As OP-TEE doesn't check the direction of the passed memrefs
Disabling the case:
- Invoke_GetCancellationFlag_RequestedCancel (a7-71-11
Because the adaption layer we've implemented cannot deal with threads in
a good way.
Disabling the case:
- Invoke_GetPropertyAsBinaryBlock_withoutEnum_success (a7-26-c1)
Because it assumes base64 coded binary properties and is also
in the list of excluded conformance tests.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
---
packages/TrustedCoreFw/xmlstable/TEE_Internal_API.xml | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/packages/TrustedCoreFw/xmlstable/TEE_Internal_API.xml b/packages/TrustedCoreFw/xmlstable/TEE_Internal_API.xml
index f9824238451a..0e96e3bde8e9 100644
--- a/packages/TrustedCoreFw/xmlstable/TEE_Internal_API.xml
+++ b/packages/TrustedCoreFw/xmlstable/TEE_Internal_API.xml
@@ -523,6 +523,7 @@
</call>
</postamble>
</scenario>
+<!-- CheckMemoryAccessRight
<scenario name="Invoke_CheckMemoryAccessRight_BufferRead_AccessWrite_error (a7-35-f1)" destructive="no">
<req name="CHECK_MEMORY_ACCESS_RIGHTS_ACCESS_DENIED">
<description><![CDATA[The TEE_CheckMemoryAccessRights function causes the Implementation to examine a buffer of memory specified in the parameters buffer and size and to determine whether the current Trusted Application instance has the access rights requested in the arameter accessFlags. If the characteristics of the buffer are compatible with accessFlags, then the function returns TEE_SUCCESS. Otherwise, it returns TEE_ERROR_ACCESS_DENIED.]]></description>
@@ -697,6 +698,7 @@
</call>
</postamble>
</scenario>
+-->
<scenario name="Invoke_CheckMemoryAccessRight_BufferShared_AccessAnyOwnerNotSet_error (a7-99-f7)" destructive="no">
<req name="CHECK_MEMORY_ACCESS_RIGHTS_ACCESS_DENIED">
<description><![CDATA[The TEE_CheckMemoryAccessRights function causes the Implementation to examine a buffer of memory specified in the parameters buffer and size and to determine whether the current Trusted Application instance has the access rights requested in the arameter accessFlags. If the characteristics of the buffer are compatible with accessFlags, then the function returns TEE_SUCCESS. Otherwise, it returns TEE_ERROR_ACCESS_DENIED.]]></description>
@@ -1045,6 +1047,7 @@
</call>
</postamble>
</scenario>
+<!-- CheckMemoryAccessRight
<scenario name="Invoke_CheckMemoryAccessRight_BufferWrite_AccessRead_error (a7-98-4b)" destructive="no">
<req name="CHECK_MEMORY_ACCESS_RIGHTS_ACCESS_DENIED">
<description><![CDATA[The TEE_CheckMemoryAccessRights function causes the Implementation to examine a buffer of memory specified in the parameters buffer and size and to determine whether the current Trusted Application instance has the access rights requested in the arameter accessFlags. If the characteristics of the buffer are compatible with accessFlags, then the function returns TEE_SUCCESS. Otherwise, it returns TEE_ERROR_ACCESS_DENIED.]]></description>
@@ -1219,6 +1222,7 @@
</call>
</postamble>
</scenario>
+-->
<scenario name="Invoke_CheckMemoryAccessRight_BufferWrite_AccessWrite_success (a7-32-44)" destructive="no">
<req name="CHECK_MEMORY_ACCESS_RIGHTS_OK">
<description><![CDATA[The TEE_CheckMemoryAccessRights function causes the Implementation to examine a buffer of memory specified in the parameters buffer and size and to determine whether the current Trusted Application instance has the access rights requested in the arameter accessFlags. If the characteristics of the buffer are compatible with accessFlags, then the function returns TEE_SUCCESS. Otherwise, it returns TEE_ERROR_ACCESS_DENIED.]]></description>
@@ -2254,6 +2258,7 @@
</call>
</postamble>
</scenario>
+<!-- cancellation
<scenario name="Invoke_GetCancellationFlag_RequestedCancel (a7-71-11)" destructive="no">
<req name="GET_CANCELLATION_FLAG">
<description><![CDATA[The TEE_GetCancellationFlag function determines whether the current tasks Cancellation Flag is set. If cancellations are masked, this function MUST return false. This function cannot panic.]]></description>
@@ -2524,6 +2529,7 @@
</call>
</postamble>
</scenario>
+-->
<scenario name="Invoke_GetInstanceData_noPreviousSetInstance_null (a7-7d-9b)" destructive="no">
<req name="GET_INSTANCE_DATA_SUCCESS">
<description><![CDATA[The TEE_GetInstanceData function retrieves the instance data pointer set by the Trusted Application using the TEE_GetInstanceData function. Return Value: The value returned is the previously set pointer to the Trusted Application instance data, or NULL if no instance data pointer has yet been set.]]></description>
@@ -3716,6 +3722,7 @@
</call>
</postamble>
</scenario>
+<!--
<scenario name="Invoke_GetPropertyAsBinaryBlock_withoutEnum_success (a7-26-c1)" destructive="no">
<req name="CLOSE_SESSION_ENTRY_POINT_SUCCESS">
<description><![CDATA[The Trusted Application implementation is responsible for freeing any resources consumed by the session being closed. Note that the Trusted Application cannot refuse to close a session, but can hold the closing until it returns from TA_CloseSessionEntryPoint. This is why this function cannot return a return code.]]></description>
@@ -3920,6 +3927,7 @@
</call>
</postamble>
</scenario>
+-->
<scenario name="Invoke_GetPropertyAsBool_withoutEnum_badFormat_error (a7-63-46)" destructive="no">
<req name="GET_PROPERTY_AS_BOOL_ERROR_BAD_FORMAT">
<description><![CDATA[If the property value cannot be converted to a boolean]]></description>
--
2.25.1

View File

@@ -0,0 +1,106 @@
From cd058f01be06f70c54b9608d4a7b4dae5a5bc2e0 Mon Sep 17 00:00:00 2001
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 19 Aug 2020 17:53:31 +0200
Subject: [PATCH 10/11] TEE_DataStorage_API.xml
Disabling cases:
- Invoke_SeekWriteRead_Offset_0_SEEK_END_Offset_Low (9d-a6-93)
- Invoke_SeekWriteRead_Offset_High_SEEK_CUR_Offset_Low (9d-60-98)
- Invoke_SeekWriteRead_Offset_Low_SEEK_CUR_Offset_High (9d-6b-51)
- Invoke_SeekWriteRead_Offset_Low_SEEK_END_Offset_Low (9d-21-93)
- Invoke_WriteObjectData_overflow (9d-01-ce)
These tests fails and the expected position counters doesn't seem to
make any sense.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
---
packages/DataStorage/xmlstable/TEE_DataStorage_API.xml | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/packages/DataStorage/xmlstable/TEE_DataStorage_API.xml b/packages/DataStorage/xmlstable/TEE_DataStorage_API.xml
index db43d7b71ebc..69305a880a9f 100644
--- a/packages/DataStorage/xmlstable/TEE_DataStorage_API.xml
+++ b/packages/DataStorage/xmlstable/TEE_DataStorage_API.xml
@@ -166262,6 +166262,7 @@
</call>
</postamble>
</scenario>
+<!-- test case is broken
<scenario name="Invoke_SeekWriteRead_Offset_0_SEEK_END_Offset_Low (9d-a6-93)" destructive="no">
<req name="READ_OBJECT_DATA_SUCCESS">
<description><![CDATA[The TEE_ReadObjectData function attempts to read size bytes from the data stream associated with the object object into the buffer pointed to by buffer. The object handle MUST have been opened with the read access right. The bytes are read starting at the position in the data stream currently stored in the object handle. The handles position is incremented by the number of bytes actually read.]]></description>
@@ -167374,6 +167375,7 @@
</call>
</postamble>
</scenario>
+-->
<scenario name="Invoke_SeekWriteRead_Offset_0_SEEK_SET_Offset_High (9d-38-58)" destructive="no">
<req name="READ_OBJECT_DATA_SUCCESS">
<description><![CDATA[The TEE_ReadObjectData function attempts to read size bytes from the data stream associated with the object object into the buffer pointed to by buffer. The object handle MUST have been opened with the read access right. The bytes are read starting at the position in the data stream currently stored in the object handle. The handles position is incremented by the number of bytes actually read.]]></description>
@@ -169043,6 +169045,7 @@
</call>
</postamble>
</scenario>
+<!-- test case is broken
<scenario name="Invoke_SeekWriteRead_Offset_High_SEEK_CUR_Offset_Low (9d-60-98)" destructive="no">
<req name="READ_OBJECT_DATA_SUCCESS">
<description><![CDATA[The TEE_ReadObjectData function attempts to read size bytes from the data stream associated with the object object into the buffer pointed to by buffer. The object handle MUST have been opened with the read access right. The bytes are read starting at the position in the data stream currently stored in the object handle. The handles position is incremented by the number of bytes actually read.]]></description>
@@ -169599,6 +169602,7 @@
</call>
</postamble>
</scenario>
+-->
<scenario name="Invoke_SeekWriteRead_Offset_High_SEEK_SET_Offset_0 (9d-c9-ed)" destructive="no">
<req name="READ_OBJECT_DATA_SUCCESS">
<description><![CDATA[The TEE_ReadObjectData function attempts to read size bytes from the data stream associated with the object object into the buffer pointed to by buffer. The object handle MUST have been opened with the read access right. The bytes are read starting at the position in the data stream currently stored in the object handle. The handles position is incremented by the number of bytes actually read.]]></description>
@@ -170710,6 +170714,7 @@
</call>
</postamble>
</scenario>
+<!-- test case is broken
<scenario name="Invoke_SeekWriteRead_Offset_Low_SEEK_CUR_Offset_High (9d-6b-51)" destructive="no">
<req name="READ_OBJECT_DATA_SUCCESS">
<description><![CDATA[The TEE_ReadObjectData function attempts to read size bytes from the data stream associated with the object object into the buffer pointed to by buffer. The object handle MUST have been opened with the read access right. The bytes are read starting at the position in the data stream currently stored in the object handle. The handles position is incremented by the number of bytes actually read.]]></description>
@@ -171266,6 +171271,7 @@
</call>
</postamble>
</scenario>
+-->
<scenario name="Invoke_SeekWriteRead_Offset_Low_SEEK_CUR_Offset_Low (9d-7c-c4)" destructive="no">
<req name="READ_OBJECT_DATA_SUCCESS">
<description><![CDATA[The TEE_ReadObjectData function attempts to read size bytes from the data stream associated with the object object into the buffer pointed to by buffer. The object handle MUST have been opened with the read access right. The bytes are read starting at the position in the data stream currently stored in the object handle. The handles position is incremented by the number of bytes actually read.]]></description>
@@ -172379,6 +172385,7 @@
</call>
</postamble>
</scenario>
+<!-- test case is broken
<scenario name="Invoke_SeekWriteRead_Offset_Low_SEEK_END_Offset_Low (9d-21-93)" destructive="no">
<req name="READ_OBJECT_DATA_SUCCESS">
<description><![CDATA[The TEE_ReadObjectData function attempts to read size bytes from the data stream associated with the object object into the buffer pointed to by buffer. The object handle MUST have been opened with the read access right. The bytes are read starting at the position in the data stream currently stored in the object handle. The handles position is incremented by the number of bytes actually read.]]></description>
@@ -172935,6 +172942,7 @@
</call>
</postamble>
</scenario>
+-->
<scenario name="Invoke_SeekWriteRead_Offset_Low_SEEK_SET_Offset_0 (9d-02-ed)" destructive="no">
<req name="READ_OBJECT_DATA_SUCCESS">
<description><![CDATA[The TEE_ReadObjectData function attempts to read size bytes from the data stream associated with the object object into the buffer pointed to by buffer. The object handle MUST have been opened with the read access right. The bytes are read starting at the position in the data stream currently stored in the object handle. The handles position is incremented by the number of bytes actually read.]]></description>
@@ -178054,6 +178062,7 @@
</call>
</postamble>
</scenario>
+<!-- test case is broken
<scenario name="Invoke_WriteObjectData_overflow (9d-01-ce)" destructive="no">
<req name="WRITE_OBJECT_DATA_ERROR_OVERFLOW">
<description><![CDATA[If the value of the data position indicator resulting from this operation would be greater than TEE_DATA_MAX_POSITION]]></description>
@@ -178658,6 +178667,7 @@
</call>
</postamble>
</scenario>
+-->
</initial-state>
</package>
--
2.25.1

View File

@@ -0,0 +1,39 @@
From af6aa988020a21895688dd2d8221119fbe6d3cf3 Mon Sep 17 00:00:00 2001
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 19 Aug 2020 17:53:31 +0200
Subject: [PATCH 11/11] TEE_Crypto_API.xml
Disabling case:
- Invoke_Crypto_MACInit_init_vector_not_required_length (50-ea-af)
CBC MAC doesn't take any IV so TEE_MACInit() is supposed to ignore IV
and IVLen.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
---
packages/Crypto/xmlstable/TEE_Crypto_API.xml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/packages/Crypto/xmlstable/TEE_Crypto_API.xml b/packages/Crypto/xmlstable/TEE_Crypto_API.xml
index 11013c152fb2..b8246376866e 100644
--- a/packages/Crypto/xmlstable/TEE_Crypto_API.xml
+++ b/packages/Crypto/xmlstable/TEE_Crypto_API.xml
@@ -130401,6 +130401,7 @@
</call>
</postamble>
</scenario>
+<!-- CMAC doesn't take any IV either
<scenario name="Invoke_Crypto_MACInit_init_vector_not_required_length (50-ea-af)" destructive="no">
<req name="MAC_INIT_PANIC">
<description><![CDATA[Panic Reasons • operation is not a valid operation handle of class TEE_OPERATION_MAC. • No key is programmed in the operation. • The Initialization Vector does not have the length required by the algorithm. • Hardware or cryptographic algorithm failure • If the Implementation detects any other error.]]></description>
@@ -130747,6 +130748,7 @@
</call>
</postamble>
</scenario>
+-->
<scenario name="Invoke_Crypto_MACInit_invalid_operation_class (50-27-d0)" destructive="no">
<req name="MAC_INIT_PANIC">
<description><![CDATA[Panic Reasons • operation is not a valid operation handle of class TEE_OPERATION_MAC. • No key is programmed in the operation. • The Initialization Vector does not have the length required by the algorithm. • Hardware or cryptographic algorithm failure • If the Implementation detects any other error.]]></description>
--
2.25.1

View File

@@ -0,0 +1,34 @@
From c2431936b80e2064d52a380c715cd3260ce54d54 Mon Sep 17 00:00:00 2001
From: Jerome Forissier <jerome@forissier.org>
Date: Fri, 23 Apr 2021 09:25:55 +0200
Subject: [PATCH] TTA_TCF: remove TEE_MemMove() from
CmdTEEGetPropertyAsXXX_fromEnum()
Patch 0006-TTA_TCF-fix-CmdTEEGetPropertyA-_withoutEnum.patch introduced
a TEE_MemMove() call in CmdTEEGetPropertyAsXXX_fromEnum(). This call is
wrong, because in this function pParams[1] is always of type
TEE_PARAM_TYPE_VALUE_INPUT (in other words, not a memory reference).
Fixes: https://github.com/OP-TEE/optee_os/issues/4561
Signed-off-by: Jerome Forissier <jerome@forissier.org>
---
.../TTA_TCF/TTA_TCF/code_files/TTA_TCF.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.c b/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.c
index 14e642c..0c7c743 100644
--- a/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.c
+++ b/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.c
@@ -666,9 +666,6 @@ TEE_Result CmdTEEGetPropertyAsXXX_fromEnum(
TEE_PropSetHandle nPropSet;
char pPropName[PROPERTY_NAME_MAX_SIZE];
uint32_t nPropNameSize = 0;
- TEE_MemMove(pPropName, pParams[1].memref.buffer,
- pParams[1].memref.size);
- pPropName[pParams[1].memref.size] = 0;
char pOutputString1[PROPERTY_OUTPUT_STRING_MAX_SIZE], pOutputString2[PROPERTY_OUTPUT_STRING_MAX_SIZE];
uint32_t nOutputString1Length = 0;
uint32_t nOutputString2Length = 0;
--
2.27.0

View File

@@ -0,0 +1,38 @@
From a3116f3eb2595600a6b1d40b7b25e2b36770d2f6 Mon Sep 17 00:00:00 2001
From: Jerome Forissier <jerome@forissier.org>
Date: Tue, 27 Apr 2021 17:34:40 +0200
Subject: [PATCH] Disable
Invoke_GetTAPersistentTimeNotSet_and_SetTAPersistentTime_success (ce-7b-17)
Test case Invoke_GetTAPersistentTimeNotSet_and_SetTAPersistentTime_success
depends on the ability to erase the persistent time previously set by a
TA. OP-TEE doesn't provide any way to do that, so disable this test.
Signed-off-by: Jerome Forissier <jerome@forissier.org>
---
packages/Time_Arithmetical/xmlstable/TEE_TimeArithm_API.xml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/packages/Time_Arithmetical/xmlstable/TEE_TimeArithm_API.xml b/packages/Time_Arithmetical/xmlstable/TEE_TimeArithm_API.xml
index 7d905dc..8c17155 100644
--- a/packages/Time_Arithmetical/xmlstable/TEE_TimeArithm_API.xml
+++ b/packages/Time_Arithmetical/xmlstable/TEE_TimeArithm_API.xml
@@ -54397,6 +54397,7 @@
</call>
</postamble>
</scenario>
+<!-- Test_Tool_Erase_Persistent_Time
<scenario name="Invoke_GetTAPersistentTimeNotSet_and_SetTAPersistentTime_success (ce-7b-17)" destructive="no">
<req name="GET_TA_PERSISTENT_TIME_ERROR_TIME_NOT_SET">
<description><![CDATA[This function can return the following statuses (as well as other status values discussed in “Return Code”): • TEE_ERROR_TIME_NOT_SET is the initial status and means the persistent time has not been set. The Trusted Application MUST set its persistent time by calling the function TEE_SetTAPersistentTime.]]></description>
@@ -54568,6 +54569,7 @@
</call>
</postamble>
</scenario>
+-->
<scenario name="Invoke_SetTAPersistentTime_and_GetTAPersistentTime_overflow (ce-1b-d0)" destructive="no">
<req name="GET_TA_PERSISTENT_TIME_ERROR_OVERFLOW">
<description><![CDATA[The number of seconds in the TA Persistent Time may exceed the range of the uint32_t integer type. In this case, the function MUST return the error TEE_ERROR_OVERFLOW, but still computes the TA Persistent Time as specified above, except that the number of seconds is truncated to 32 bits before being written to time->seconds. For example, if the Trusted Application sets its persistent time to 2^32 -100 seconds, then after 100 seconds, the TA Persistent Time is 2^32, which is not representable with a uint32_t. In this case, the function TEE_GetTAPersistentTime MUST return TEE_ERROR_OVERFLOW and set time->seconds to 0 (which is 2^32 truncated to 32 bits).]]></description>
--
2.27.0

View File

@@ -0,0 +1,110 @@
From 6d47284d5e9704cfa0ef0e4e9b997595288856c9 Mon Sep 17 00:00:00 2001
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 4 May 2022 12:39:59 +0200
Subject: [PATCH] Pass upper 32 bits of TEE_PropSetHandle in value.b
With MTE enabled 64-bit pointer usually use the upper 32 bits too while
the GP tests assumes that 32 bits are enough. Fix this by passing the
upper 32 bits in value.b
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
---
.../TTA_TCF/TTA_TCF/code_files/TTA_TCF.c | 33 +++++++++++++++----
1 file changed, 27 insertions(+), 6 deletions(-)
diff --git a/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.c b/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.c
index 0c7c743b34f9..30ba37788662 100644
--- a/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.c
+++ b/TTAs_Internal_API_1_1_1/TTA_TCF/TTA_TCF/code_files/TTA_TCF.c
@@ -154,6 +154,24 @@ void TA_EXPORT TA_CloseSessionEntryPoint(
TEE_Free(pSessionContext);
}
+static TEE_Param ptr_to_param(void *ptr)
+{
+ uint64_t u = (unsigned long)ptr;
+ TEE_Param param;
+
+ param.value.a = u;
+ param.value.b = u >> 32;
+
+ return param;
+}
+
+static void *param_to_ptr(TEE_Param *param)
+{
+ unsigned long u = ((uint64_t)param->value.b << 32) | param->value.a;
+
+ return (void *)u;
+}
+
bool isPropertySet (TEE_PropSetHandle propsetOrEnumerator)
{
if((propsetOrEnumerator == TEE_PROPSET_CURRENT_TA)||
@@ -772,6 +790,7 @@ TEE_Result CmdTEEAllocatePropertyEnumerator(
{
/** VARIABLES **/
TEE_Result cmdResult;
+ TEE_PropSetHandle h;
S_VAR_NOT_USED(pSessionContext);
@@ -782,7 +801,8 @@ TEE_Result CmdTEEAllocatePropertyEnumerator(
return TRUSTED_APP_ERROR_BAD_PARAMETERS;
}
- cmdResult = TEE_AllocatePropertyEnumerator((TEE_PropSetHandle*) &pParams[0].value.a);
+ cmdResult = TEE_AllocatePropertyEnumerator(&h);
+ pParams[0] = ptr_to_param(h);
return cmdResult;
}
@@ -804,7 +824,8 @@ TEE_Result CmdTEEStartPropertyEnumerator(
return TRUSTED_APP_ERROR_BAD_PARAMETERS;
}
- TEE_StartPropertyEnumerator((TEE_PropSetHandle) pParams[0].value.a, (TEE_PropSetHandle) pParams[1].value.a);
+ TEE_StartPropertyEnumerator(param_to_ptr(pParams),
+ param_to_ptr(pParams + 1));
return TEE_SUCCESS;
}
@@ -825,7 +846,7 @@ TEE_Result CmdTEEGetNextPropertyEnumerator_notStarted(
return TRUSTED_APP_ERROR_BAD_PARAMETERS;
}
- return TEE_GetNextProperty((TEE_PropSetHandle) pParams[0].value.a);
+ return TEE_GetNextProperty(param_to_ptr(pParams));
}
TEE_Result CmdTEEResetPropertyEnumerator(
@@ -844,7 +865,7 @@ TEE_Result CmdTEEResetPropertyEnumerator(
return TRUSTED_APP_ERROR_BAD_PARAMETERS;
}
- TEE_ResetPropertyEnumerator((TEE_PropSetHandle) pParams[0].value.a);
+ TEE_ResetPropertyEnumerator(param_to_ptr(pParams));
return TEE_SUCCESS;
}
@@ -864,7 +885,7 @@ TEE_Result CmdTEEFreePropertyEnumerator(
return TRUSTED_APP_ERROR_BAD_PARAMETERS;
}
- TEE_FreePropertyEnumerator((TEE_PropSetHandle) pParams[0].value.a);
+ TEE_FreePropertyEnumerator(param_to_ptr(pParams));
return TEE_SUCCESS;
}
@@ -887,7 +908,7 @@ TEE_Result CmdTEEGetPropertyName(
return TRUSTED_APP_ERROR_BAD_PARAMETERS;
}
- cmdResult = TEE_GetPropertyName((TEE_PropSetHandle) pParams[0].value.a, pParams[1].memref.buffer, &pParams[1].memref.size);
+ cmdResult = TEE_GetPropertyName(param_to_ptr(pParams), pParams[1].memref.buffer, &pParams[1].memref.size);
return cmdResult;
}
--
2.31.1

View File

@@ -0,0 +1,27 @@
From 4e495cff6016583a9af14a62a16c2f7988fd9c68 Mon Sep 17 00:00:00 2001
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 30 Nov 2022 09:00:30 +0100
Subject: [PATCH] Enable compatibility with TEE Internal Core API v1.1
The test suite is testing TEE Internal Core API v1.1 so make sure that
the API provided is compatible by setting
CFG_TA_OPTEE_CORE_API_COMPAT_1_1=y.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
---
TTAs_Internal_API_1_1_1/ta_common.mk | 2 ++
1 file changed, 2 insertions(+)
diff --git a/TTAs_Internal_API_1_1_1/ta_common.mk b/TTAs_Internal_API_1_1_1/ta_common.mk
index b8ce142bcf0a..0f8cc7d01314 100644
--- a/TTAs_Internal_API_1_1_1/ta_common.mk
+++ b/TTAs_Internal_API_1_1_1/ta_common.mk
@@ -1,3 +1,5 @@
+# These TAs are made for TEE Internal Core API version 1.1
+CFG_TA_OPTEE_CORE_API_COMPAT_1_1=y
# Note that it is important that that $(BINARY) is set before we include
# ta_dev_kit.mk. In the optee_test this is done in the individual TA Makefiles.
include $(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk
--
2.31.1

View File

@@ -0,0 +1,134 @@
From e1e4ae13b9c5fb9928c94e05f0fa5c17769fd5bd Mon Sep 17 00:00:00 2001
From: Jerome Forissier <jerome.forissier@linaro.org>
Date: Fri, 3 Nov 2023 10:41:57 +0100
Subject: [PATCH] TEE_Crypto_API.xml
Disabling cases:
- Invoke_Crypto_AllocateOperation_TEE_ALG_MD5_size_not_appropriate (3b-4d-15)
- Invoke_Crypto_AllocateOperation_TEE_ALG_SHA1_size_not_appropriate (3b-86-3d)
- Invoke_Crypto_AllocateOperation_TEE_ALG_SHA224_size_not_appropriate (3b-91-91)
- Invoke_Crypto_AllocateOperation_TEE_ALG_SHA256_size_not_appropriate (3b-c6-3c)
- Invoke_Crypto_AllocateOperation_TEE_ALG_SHA384_size_not_appropriate (3b-b0-94)
- Invoke_Crypto_AllocateOperation_TEE_ALG_SHA512_size_not_appropriate (3b-f6-b8)
These tests assume that TEE_AllocateOperation() must reject non-zero
values for maxKeySize when the algorithm is MD5 or SHA (since the
parameter is not applicable). But The GlobalPlatform TEE Internal Core
API v1.1.2 has clarified the requirement, see:
6.2.1 TEE_AllocateOperation
[...] The parameter maxKeySize MUST be a valid value as defined in Table
5-9 for the algorithm, for algorithms referenced in Table 5-9. For all
other algorithms, the maxKeySize parameter may have any value.
Link: https://github.com/OP-TEE/optee_os/pull/6416
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
---
packages/Crypto/xmlstable/TEE_Crypto_API.xml | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/packages/Crypto/xmlstable/TEE_Crypto_API.xml b/packages/Crypto/xmlstable/TEE_Crypto_API.xml
index b824637..b1cd7b0 100644
--- a/packages/Crypto/xmlstable/TEE_Crypto_API.xml
+++ b/packages/Crypto/xmlstable/TEE_Crypto_API.xml
@@ -149178,6 +149178,7 @@
</call>
</postamble>
</scenario>
+<!-- AllocateOperation
<scenario name="Invoke_Crypto_AllocateOperation_TEE_ALG_MD5_size_not_appropriate (3b-4d-15)" destructive="no">
<req name="ALLOCATE_OPERATION_ERROR_NOT_SUPPORTED">
<description><![CDATA[If the mode is not compatible with the algorithm or key size or if the algorithm is not one of the listed algorithms or if maxKeySize is not appropriate for the algorithm.]]></description>
@@ -149367,6 +149368,7 @@
</call>
</postamble>
</scenario>
+-->
<scenario name="Invoke_Crypto_AllocateOperation_TEE_ALG_RSAES_PKCS1_OAEP_MGF1_SHA1_mode_not_allowed (3b-8b-3e)" destructive="no">
<req name="ALLOCATE_OPERATION_ERROR_NOT_SUPPORTED">
<description><![CDATA[If the mode is not compatible with the algorithm or key size or if the algorithm is not one of the listed algorithms or if maxKeySize is not appropriate for the algorithm.]]></description>
@@ -156360,6 +156362,7 @@
</call>
</postamble>
</scenario>
+<!-- AllocateOperation
<scenario name="Invoke_Crypto_AllocateOperation_TEE_ALG_SHA1_size_not_appropriate (3b-86-3d)" destructive="no">
<req name="ALLOCATE_OPERATION_ERROR_NOT_SUPPORTED">
<description><![CDATA[If the mode is not compatible with the algorithm or key size or if the algorithm is not one of the listed algorithms or if maxKeySize is not appropriate for the algorithm.]]></description>
@@ -156549,6 +156552,7 @@
</call>
</postamble>
</scenario>
+-->
<scenario name="Invoke_Crypto_AllocateOperation_TEE_ALG_SHA224_mode_not_allowed (3b-91-90)" destructive="no">
<req name="ALLOCATE_OPERATION_ERROR_NOT_SUPPORTED">
<description><![CDATA[If the mode is not compatible with the algorithm or key size or if the algorithm is not one of the listed algorithms or if maxKeySize is not appropriate for the algorithm.]]></description>
@@ -156738,6 +156742,7 @@
</call>
</postamble>
</scenario>
+<!-- AllocateOperation
<scenario name="Invoke_Crypto_AllocateOperation_TEE_ALG_SHA224_size_not_appropriate (3b-91-91)" destructive="no">
<req name="ALLOCATE_OPERATION_ERROR_NOT_SUPPORTED">
<description><![CDATA[If the mode is not compatible with the algorithm or key size or if the algorithm is not one of the listed algorithms or if maxKeySize is not appropriate for the algorithm.]]></description>
@@ -156927,6 +156932,7 @@
</call>
</postamble>
</scenario>
+-->
<scenario name="Invoke_Crypto_AllocateOperation_TEE_ALG_SHA256_mode_not_allowed (3b-c6-3b)" destructive="no">
<req name="ALLOCATE_OPERATION_ERROR_NOT_SUPPORTED">
<description><![CDATA[If the mode is not compatible with the algorithm or key size or if the algorithm is not one of the listed algorithms or if maxKeySize is not appropriate for the algorithm.]]></description>
@@ -157116,6 +157122,7 @@
</call>
</postamble>
</scenario>
+<!-- AllocateOperation
<scenario name="Invoke_Crypto_AllocateOperation_TEE_ALG_SHA256_size_not_appropriate (3b-c6-3c)" destructive="no">
<req name="ALLOCATE_OPERATION_ERROR_NOT_SUPPORTED">
<description><![CDATA[If the mode is not compatible with the algorithm or key size or if the algorithm is not one of the listed algorithms or if maxKeySize is not appropriate for the algorithm.]]></description>
@@ -157305,6 +157312,7 @@
</call>
</postamble>
</scenario>
+-->
<scenario name="Invoke_Crypto_AllocateOperation_TEE_ALG_SHA384_mode_not_allowed (3b-b0-93)" destructive="no">
<req name="ALLOCATE_OPERATION_ERROR_NOT_SUPPORTED">
<description><![CDATA[If the mode is not compatible with the algorithm or key size or if the algorithm is not one of the listed algorithms or if maxKeySize is not appropriate for the algorithm.]]></description>
@@ -157494,6 +157502,7 @@
</call>
</postamble>
</scenario>
+<!-- AllocateOperation
<scenario name="Invoke_Crypto_AllocateOperation_TEE_ALG_SHA384_size_not_appropriate (3b-b0-94)" destructive="no">
<req name="ALLOCATE_OPERATION_ERROR_NOT_SUPPORTED">
<description><![CDATA[If the mode is not compatible with the algorithm or key size or if the algorithm is not one of the listed algorithms or if maxKeySize is not appropriate for the algorithm.]]></description>
@@ -157683,6 +157692,7 @@
</call>
</postamble>
</scenario>
+-->
<scenario name="Invoke_Crypto_AllocateOperation_TEE_ALG_SHA512_mode_not_allowed (3b-f6-b7)" destructive="no">
<req name="ALLOCATE_OPERATION_ERROR_NOT_SUPPORTED">
<description><![CDATA[If the mode is not compatible with the algorithm or key size or if the algorithm is not one of the listed algorithms or if maxKeySize is not appropriate for the algorithm.]]></description>
@@ -157872,6 +157882,7 @@
</call>
</postamble>
</scenario>
+<!-- AllocateOperation
<scenario name="Invoke_Crypto_AllocateOperation_TEE_ALG_SHA512_size_not_appropriate (3b-f6-b8)" destructive="no">
<req name="ALLOCATE_OPERATION_ERROR_NOT_SUPPORTED">
<description><![CDATA[If the mode is not compatible with the algorithm or key size or if the algorithm is not one of the listed algorithms or if maxKeySize is not appropriate for the algorithm.]]></description>
@@ -158061,6 +158072,7 @@
</call>
</postamble>
</scenario>
+-->
</initial-state>
<initial-state name="TEE_Internal_API_Crypto_FreeOperation">
<scenario name="Invoke_Crypto_FreeAllKeysAndOperations_Success (30-74-50)" destructive="no">
--
2.34.1

View File

@@ -0,0 +1,26 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2020, Linaro Limited.
if [ $# -ne 2 ]; then
echo "usage: prepare_suite.sh <optee_test base dir> <gp suite archive>"
exit 1
fi
set -e
if [ -e $1/host/xtest/gp-suite ]; then
# Clean up last patching in case it failed in some way
rm -rf $1/host/xtest/gp-suite
fi
mkdir -p $1/host/xtest/gp-suite
7z x -o$1/host/xtest/gp-suite $2
cd $1/host/xtest/gp-suite
mv TEE_Initial_Configuration-Test_Suite_v2_0_0_2-2017_06_09/* .
rmdir TEE_Initial_Configuration-Test_Suite_v2_0_0_2-2017_06_09
rm -f TTAs_Internal_API_1_1_1/TEE_include/tee_internal_api.h
chmod -R u+w .
for p in `echo ../gp/patches/*.patch | sort -n` ;do
echo Applying $p
patch -p1 < $p
done

View File

@@ -0,0 +1,496 @@
// SPDX-License-Identifier: BSD-2-Clause
/*
* Copyright (c) 2015, Linaro Limited
* All rights reserved.
*/
#include <adbg.h>
#include <fcntl.h>
#include <math.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <tee_client_api.h>
#include <time.h>
#include <unistd.h>
#include "crypto_common.h"
#include "xtest_helpers.h"
#include "xtest_test.h"
/*
* TEE client stuff
*/
static TEEC_Context ctx;
static TEEC_Session sess;
static TEEC_SharedMemory in_shm = {
.flags = TEEC_MEM_INPUT
};
static TEEC_SharedMemory out_shm = {
.flags = TEEC_MEM_OUTPUT
};
static void errx(const char *msg, TEEC_Result res, uint32_t *orig)
{
fprintf(stderr, "%s: 0x%08x", msg, res);
if (orig)
fprintf(stderr, " (orig=%d)", (int)*orig);
fprintf(stderr, "\n");
exit (1);
}
static void check_res(TEEC_Result res, const char *errmsg, uint32_t *orig)
{
if (res != TEEC_SUCCESS)
errx(errmsg, res, orig);
}
static void open_ta(void)
{
TEEC_Result res = TEEC_ERROR_GENERIC;
TEEC_UUID uuid = TA_CRYPTO_PERF_UUID;
uint32_t err_origin = 0;
res = TEEC_InitializeContext(NULL, &ctx);
check_res(res,"TEEC_InitializeContext", NULL);
res = TEEC_OpenSession(&ctx, &sess, &uuid, TEEC_LOGIN_PUBLIC, NULL,
NULL, &err_origin);
check_res(res,"TEEC_OpenSession", &err_origin);
}
/*
* Statistics
*
* We want to compute min, max, mean and standard deviation of processing time
*/
struct statistics {
int n;
double m;
double M2;
double min;
double max;
int initialized;
};
/* Take new sample into account (Knuth/Welford algorithm) */
static void update_stats(struct statistics *s, uint64_t t)
{
double x = (double)t;
double delta = x - s->m;
s->n++;
s->m += delta/s->n;
s->M2 += delta*(x - s->m);
if (!s->initialized) {
s->min = s->max = x;
s->initialized = 1;
} else {
if (s->min > x)
s->min = x;
if (s->max < x)
s->max = x;
}
}
static double stddev(struct statistics *s)
{
if (s->n < 2)
return NAN;
return sqrt(s->M2/s->n);
}
static const char *algo_str(uint32_t algo)
{
switch (algo) {
case TA_SHA_SHA1:
return "SHA1";
case TA_SHA_SHA224:
return "SHA224";
case TA_SHA_SHA256:
return "SHA256";
case TA_SHA_SHA384:
return "SHA384";
case TA_SHA_SHA512:
return "SHA512";
case TA_SM3:
return "SM3";
case TA_HMAC_SHA1:
return "HMAC_SHA1";
case TA_HMAC_SHA224:
return "HMAC_SHA224";
case TA_HMAC_SHA256:
return "HMAC_SHA256";
case TA_HMAC_SHA384:
return "HMAC_SHA384";
case TA_HMAC_SHA512:
return "HMAC_SHA512";
case TA_HMAC_SM3:
return "HMAC_SM3";
default:
return "???";
}
}
static int hash_size(uint32_t algo)
{
switch (algo) {
case TA_SHA_SHA1:
case TA_HMAC_SHA1:
return 20;
case TA_SHA_SHA224:
case TA_HMAC_SHA224:
return 28;
case TA_SHA_SHA256:
case TA_HMAC_SHA256:
return 32;
case TA_SHA_SHA384:
case TA_HMAC_SHA384:
return 48;
case TA_SHA_SHA512:
case TA_HMAC_SHA512:
return 64;
case TA_SM3:
case TA_HMAC_SM3:
return 32;
default:
return 0;
}
}
#define _TO_STR(x) #x
#define TO_STR(x) _TO_STR(x)
static void alloc_shm(size_t sz, uint32_t algo, int offset)
{
TEEC_Result res = TEEC_ERROR_GENERIC;
in_shm.buffer = NULL;
in_shm.size = sz + offset;
res = TEEC_AllocateSharedMemory(&ctx, &in_shm);
check_res(res, "TEEC_AllocateSharedMemory", NULL);
out_shm.buffer = NULL;
out_shm.size = hash_size(algo);
res = TEEC_AllocateSharedMemory(&ctx, &out_shm);
check_res(res, "TEEC_AllocateSharedMemory", NULL);
}
static void free_shm(void)
{
TEEC_ReleaseSharedMemory(&in_shm);
TEEC_ReleaseSharedMemory(&out_shm);
}
static ssize_t read_random(void *in, size_t rsize)
{
static int rnd;
ssize_t s = 0;
if (!rnd) {
rnd = open("/dev/urandom", O_RDONLY);
if (rnd < 0) {
perror("open");
return 1;
}
}
s = read(rnd, in, rsize);
if (s < 0) {
perror("read");
return 1;
}
if ((size_t)s != rsize) {
printf("read: requested %zu bytes, got %zd\n",
rsize, s);
}
return 0;
}
static long get_current_time(struct timespec *ts)
{
if (clock_gettime(CLOCK_MONOTONIC, ts) < 0) {
perror("clock_gettime");
exit(1);
}
return 0;
}
static uint64_t timespec_diff_ns(struct timespec *start, struct timespec *end)
{
uint64_t ns = 0;
if (end->tv_nsec < start->tv_nsec) {
ns += 1000000000 * (end->tv_sec - start->tv_sec - 1);
ns += 1000000000 - start->tv_nsec + end->tv_nsec;
} else {
ns += 1000000000 * (end->tv_sec - start->tv_sec);
ns += end->tv_nsec - start->tv_nsec;
}
return ns;
}
static uint64_t run_test_once(void *in, size_t size, int random_in,
TEEC_Operation *op)
{
struct timespec t0 = { };
struct timespec t1 = { };
TEEC_Result res = TEEC_ERROR_GENERIC;
uint32_t ret_origin = 0;
if (random_in == CRYPTO_USE_RANDOM)
read_random(in, size);
get_current_time(&t0);
res = TEEC_InvokeCommand(&sess, TA_CRYPTO_PERF_CMD_HASH_PROCESS, op,
&ret_origin);
check_res(res, "TEEC_InvokeCommand", &ret_origin);
get_current_time(&t1);
return timespec_diff_ns(&t0, &t1);
}
static void prepare_op(int algo)
{
TEEC_Result res = TEEC_ERROR_GENERIC;
uint32_t ret_origin = 0;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT, TEEC_NONE,
TEEC_NONE, TEEC_NONE);
op.params[0].value.a = algo;
res = TEEC_InvokeCommand(&sess, TA_CRYPTO_PERF_CMD_HASH_PREPARE_OP, &op,
&ret_origin);
check_res(res, "TEEC_InvokeCommand", &ret_origin);
}
static void do_warmup(int warmup)
{
struct timespec t0 = { };
struct timespec t = { };
int i = 0;
get_current_time(&t0);
do {
for (i = 0; i < 100000; i++)
;
get_current_time(&t);
} while (timespec_diff_ns(&t0, &t) < (uint64_t)warmup * 1000000000);
}
static const char *yesno(int v)
{
return (v ? "yes" : "no");
}
static double mb_per_sec(size_t size, double usec)
{
return (1000000000/usec)*((double)size/(1024*1024));
}
/* Hash test: buffer of size byte. Run test n times.
* Entry point for running SHA benchmark
* Params:
* algo - Algorithm
* size - Buffer size
* n - Number of measurements
* l - Amount of inner loops
* random_in - Get input from /dev/urandom
* offset - Buffer offset wrt. alloc-ed address
* warmup - Start with a-second busy loop
* verbosity - Verbosity level
* */
extern void hash_perf_run_test(int algo, size_t size, unsigned int n,
unsigned int l, int random_in, int offset,
int warmup, int verbosity)
{
uint64_t t = 0;
struct statistics stats = { };
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
int n0 = n;
struct timespec ts = { };
double sd = 0;
vverbose("hash-perf\n");
if (clock_getres(CLOCK_MONOTONIC, &ts) < 0) {
perror("clock_getres");
return;
}
vverbose("Clock resolution is %jd ns\n",
(intmax_t)ts.tv_sec * 1000000000 + ts.tv_nsec);
open_ta();
prepare_op(algo);
alloc_shm(size, algo, offset);
if (random_in == CRYPTO_USE_ZEROS)
memset((uint8_t *)in_shm.buffer + offset, 0, size);
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_PARTIAL_INPUT,
TEEC_MEMREF_PARTIAL_OUTPUT,
TEEC_VALUE_INPUT, TEEC_NONE);
op.params[0].memref.parent = &in_shm;
op.params[0].memref.offset = 0;
op.params[0].memref.size = size + offset;
op.params[1].memref.parent = &out_shm;
op.params[1].memref.offset = 0;
op.params[1].memref.size = hash_size(algo);
op.params[2].value.a = l;
op.params[2].value.b = offset;
verbose("Starting test: %s, size=%zu bytes, ",
algo_str(algo), size);
verbose("random=%s, ", yesno(random_in == CRYPTO_USE_RANDOM));
verbose("unaligned=%s, ", yesno(offset));
verbose("inner loops=%u, loops=%u, warm-up=%u s\n", l, n, warmup);
if (warmup)
do_warmup(warmup);
while (n-- > 0) {
t = run_test_once((uint8_t *)in_shm.buffer + offset, size,
random_in, &op);
update_stats(&stats, t);
if (n % (n0 / 10) == 0)
vverbose("#");
}
vverbose("\n");
sd = stddev(&stats);
printf("min=%gus max=%gus mean=%gus stddev=%gus (cv %g%%) (%gMiB/s)\n",
stats.min / 1000, stats.max / 1000, stats.m / 1000,
sd / 1000, 100 * sd / stats.m, mb_per_sec(size, stats.m));
verbose("2-sigma interval: %g..%gus (%g..%gMiB/s)\n",
(stats.m - 2 * sd) / 1000, (stats.m + 2 * sd) / 1000,
mb_per_sec(size, stats.m + 2 * sd),
mb_per_sec(size, stats.m - 2 * sd));
free_shm();
}
static void usage(const char *applet_optname,
/* Default params */
int algo, size_t size, int warmup, int l, int n)
{
fprintf(stderr, "Usage: %s %s [-h]\n", xtest_progname, applet_optname);
fprintf(stderr, "Usage: %s %s [-a ALGO] [-l LOOP] [-n LOOP] [-r] [-s SIZE]",
xtest_progname, applet_optname);
fprintf(stderr, " [-v [-v]] [-w SEC]\n");
fprintf(stderr, "Hash performance testing tool for OP-TEE\n");
fprintf(stderr, "\n");
fprintf(stderr, "Options:\n");
fprintf(stderr, " -a ALGO Algorithm (SHA1, SHA224, SHA256, SHA384, SHA512, SM3,"
" HMAC_SHA1, HMAC_SHA224, HMAC_SHA256,"
" HMAC_SHA384, HMAC_SHA512, HMAC_SM3) [%s]\n", algo_str(algo));
fprintf(stderr, " -h|--help Print this help and exit\n");
fprintf(stderr, " -l LOOP Inner loop iterations (TA calls TEE_DigestDoFinal() <x> times) [%u]\n", l);
fprintf(stderr, " -n LOOP Outer test loop iterations [%u]\n", n);
fprintf(stderr, " -r|--random Get input data from /dev/urandom (default: all-zeros)\n");
fprintf(stderr, " -s SIZE Test buffer size in bytes [%zu]\n", size);
fprintf(stderr, " -u|--unalign Use unaligned buffer (odd address)\n");
fprintf(stderr, " -v Be verbose (use twice for greater effect)\n");
fprintf(stderr, " -w|--warmup SEC Warm-up time in seconds: execute a busy loop before\n");
fprintf(stderr, " the test to mitigate the effects of cpufreq etc. [%u]\n", warmup);
}
#define NEXT_ARG(i) \
do { \
if (++i == argc) { \
fprintf(stderr, "%s %s: %s: missing argument\n", \
xtest_progname, argv[0], argv[i - 1]); \
return 1; \
} \
} while (0);
extern int hash_perf_runner_cmd_parser(int argc, char *argv[])
{
int i = 0;
/* Command line params */
size_t size = 1024; /* Buffer size (-s) */
unsigned int n = CRYPTO_DEF_COUNT;/* Number of measurements (-n)*/
unsigned int l = CRYPTO_DEF_LOOPS; /* Inner loops (-l) */
int verbosity = CRYPTO_DEF_VERBOSITY; /* Verbosity (-v) */
int algo = TA_SHA_SHA1; /* Algorithm (-a) */
/* Get input data from /dev/urandom (-r) */
int random_in = CRYPTO_USE_ZEROS;
/* Start with a 2-second busy loop (-w) */
int warmup = CRYPTO_DEF_WARMUP;
int offset = 0; /* Buffer offset wrt. alloc'ed address (-u) */
/* Parse command line */
for (i = 1; i < argc; i++) {
if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) {
usage(argv[0], algo, size, warmup, l, n);
return 0;
}
}
for (i = 1; i < argc; i++) {
if (!strcmp(argv[i], "-l")) {
NEXT_ARG(i);
l = atoi(argv[i]);
} else if (!strcmp(argv[i], "-a")) {
NEXT_ARG(i);
if (!strcasecmp(argv[i], "SHA1"))
algo = TA_SHA_SHA1;
else if (!strcasecmp(argv[i], "SHA224"))
algo = TA_SHA_SHA224;
else if (!strcasecmp(argv[i], "SHA256"))
algo = TA_SHA_SHA256;
else if (!strcasecmp(argv[i], "SHA384"))
algo = TA_SHA_SHA384;
else if (!strcasecmp(argv[i], "SHA512"))
algo = TA_SHA_SHA512;
else if (!strcasecmp(argv[i], "SM3"))
algo = TA_SM3;
else if (!strcasecmp(argv[i], "HMAC_SHA1"))
algo = TA_HMAC_SHA1;
else if (!strcasecmp(argv[i], "HMAC_SHA224"))
algo = TA_HMAC_SHA224;
else if (!strcasecmp(argv[i], "HMAC_SHA256"))
algo = TA_HMAC_SHA256;
else if (!strcasecmp(argv[i], "HMAC_SHA384"))
algo = TA_HMAC_SHA384;
else if (!strcasecmp(argv[i], "HMAC_SHA512"))
algo = TA_HMAC_SHA512;
else if (!strcasecmp(argv[i], "HMAC_SM3"))
algo = TA_HMAC_SM3;
else {
fprintf(stderr, "%s %s, invalid algorithm\n",
xtest_progname, argv[0]);
usage(argv[0], algo, size, warmup, l, n);
return 1;
}
} else if (!strcmp(argv[i], "-n")) {
NEXT_ARG(i);
n = atoi(argv[i]);
} else if (!strcmp(argv[i], "--random") ||
!strcmp(argv[i], "-r")) {
random_in = CRYPTO_USE_RANDOM;
} else if (!strcmp(argv[i], "-s")) {
NEXT_ARG(i);
size = atoi(argv[i]);
} else if (!strcmp(argv[i], "--unalign") ||
!strcmp(argv[i], "-u")) {
offset = 1;
} else if (!strcmp(argv[i], "-v")) {
verbosity++;
} else if (!strcmp(argv[i], "--warmup") ||
!strcmp(argv[i], "-w")) {
NEXT_ARG(i);
warmup = atoi(argv[i]);
} else {
fprintf(stderr, "%s %s: invalid argument: %s\n",
xtest_progname, argv[0], argv[i]);
usage(argv[0], algo, size, warmup, l, n);
return 1;
}
}
hash_perf_run_test(algo, size, n, l, random_in, offset, warmup, verbosity);
return 0;
}

View File

@@ -0,0 +1,79 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2020-2022, Arm Limited
*/
#ifndef __ARM_FFA_USER_H
#define __ARM_FFA_USER_H
#include <linux/ioctl.h>
#include <linux/types.h>
#define FFA_IOC_MAGIC 0xf0
#define FFA_IOC_BASE 0
/**
* struct ffa_ioctl_ep_desc - Query endpoint ID
* @uuid_ptr: [in] Pointer to queried UUID. Format must be an RFC 4122 string,
* i.e. "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee".
* @id: [out] 16-bit ID of endpoint.
*/
struct ffa_ioctl_ep_desc {
__u64 uuid_ptr;
__u16 id;
};
#define FFA_IOC_GET_PART_ID _IOWR(FFA_IOC_MAGIC, FFA_IOC_BASE + 0, \
struct ffa_ioctl_ep_desc)
/**
* struct ffa_ioctl_msg_args - Send direct message request
* @args: [in/out] Arguments of FFA_MSG_SEND_DIRECT_REQ (w3-w7). If the
* response is FFA_MSG_SEND_DIRECT_RESP, the received arguments are
* returned in this field.
* @dst_id: [in] 16-bit ID of destination endpoint.
*/
struct ffa_ioctl_msg_args {
__u64 args[5];
__u16 dst_id;
};
#define FFA_IOC_MSG_SEND _IOWR(FFA_IOC_MAGIC, FFA_IOC_BASE + 1, \
struct ffa_ioctl_msg_args)
/**
* struct ffa_ioctl_shm_desc - Share/reclaim memory region
* @handle: [in/out] Handle assigned by the SPM. Output when used with
* FFA_IOC_SHM_INIT, input when used with FFA_IOC_SHM_DEINIT.
* @size: [in/out] In: the required size of region in bytes. Out: the
* actual region size allocated by the kernel. Unused on reclaim.
* @dst_id: [in] 16-bit ID of destination endpoint. Unused on reclaim.
*/
struct ffa_ioctl_shm_desc {
__u64 handle;
__u64 size;
__u16 dst_id;
};
#define FFA_IOC_SHM_INIT _IOWR(FFA_IOC_MAGIC, FFA_IOC_BASE + 2, \
struct ffa_ioctl_shm_desc)
#define FFA_IOC_SHM_DEINIT _IOW(FFA_IOC_MAGIC, FFA_IOC_BASE + 3, \
struct ffa_ioctl_shm_desc)
/**
* struct ffa_ioctl_buf_desc - Read/write shared memory region
* @handle: [in] Handle of the memory region.
* @buf_ptr: [in] Pointer to user space buffer. Data is copied from/to this
* buffer to/from the memory region shared with the given endpoint.
* @buf_len: [in] Length of read/write in bytes.
*/
struct ffa_ioctl_buf_desc {
__u64 handle;
__u64 buf_ptr;
__u64 buf_len;
};
#define FFA_IOC_SHM_READ _IOW(FFA_IOC_MAGIC, FFA_IOC_BASE + 4, \
struct ffa_ioctl_buf_desc)
#define FFA_IOC_SHM_WRITE _IOW(FFA_IOC_MAGIC, FFA_IOC_BASE + 5, \
struct ffa_ioctl_buf_desc)
#endif /* __ARM_FFA_USER_H */

View File

@@ -0,0 +1,156 @@
/*
* Copyright (c) 2017, Linaro Limited
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <dirent.h>
#include <err.h>
#include <errno.h>
#include <fnmatch.h>
#include <inttypes.h>
#include <pta_secstor_ta_mgmt.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <tee_client_api.h>
#include <unistd.h>
#include "install_ta.h"
#include "xtest_helpers.h"
#include "xtest_test.h"
static void *read_ta(const char *dname, const char *fname, size_t *size)
{
char nbuf[PATH_MAX];
FILE *f = NULL;
void *buf = NULL;
size_t s = 0;
if (dname)
snprintf(nbuf, sizeof(nbuf), "%s/%s", dname, fname);
else
snprintf(nbuf, sizeof(nbuf), "%s", fname);
f = fopen(nbuf, "rb");
if (!f)
err(1, "fopen(\"%s\")", nbuf);
if (fseek(f, 0, SEEK_END))
err(1, "fseek");
s = ftell(f);
rewind(f);
buf = malloc(s);
if (!buf)
err(1, "malloc(%zu)", s);
if (fread(buf, 1, s, f) != s)
err(1, "fread");
*size = s;
return buf;
}
static void install_ta(TEEC_Session *sess, void *buf, size_t blen)
{
TEEC_Result res = TEEC_ERROR_GENERIC;
uint32_t err_origin = 0;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_INPUT, TEEC_NONE,
TEEC_NONE, TEEC_NONE);
op.params[0].tmpref.buffer = buf;
op.params[0].tmpref.size = blen;
res = TEEC_InvokeCommand(sess, PTA_SECSTOR_TA_MGMT_BOOTSTRAP, &op,
&err_origin);
if (res)
errx(1, "install_ta: TEEC_InvokeCommand: %#" PRIx32
" err_origin %#" PRIx32, res, err_origin);
}
static void install_file(TEEC_Session *sess, const char *dirname,
const char *filename)
{
void *ta = NULL;
size_t ta_size = 0;
printf("Installing \"%s\"\n", filename);
ta = read_ta(dirname, filename, &ta_size);
install_ta(sess, ta, ta_size);
free(ta);
}
static void install_dir(TEEC_Session *sess, const char *dirname)
{
DIR *dirp = NULL;
printf("Searching directory \"%s\" for TAs\n", dirname);
dirp = opendir(dirname);
if (!dirp)
err(1, "opendir(\"%s\")", dirname);
while (true) {
struct dirent *dent = readdir(dirp);
if (!dent)
break;
if (fnmatch("*.ta", dent->d_name, 0))
continue;
install_file(sess, dirname, dent->d_name);
}
closedir(dirp);
}
int install_ta_runner_cmd_parser(int argc, char *argv[])
{
TEEC_Result res = TEEC_ERROR_GENERIC;
uint32_t err_origin = 0;
TEEC_UUID uuid = PTA_SECSTOR_TA_MGMT_UUID;
TEEC_Context ctx = { };
TEEC_Session sess = { };
int i = 0;
res = TEEC_InitializeContext(NULL, &ctx);
if (res)
errx(1, "TEEC_InitializeContext: %#" PRIx32, res);
res = TEEC_OpenSession(&ctx, &sess, &uuid, TEEC_LOGIN_PUBLIC, NULL,
NULL, &err_origin);
if (res)
errx(1, "TEEC_OpenSession: res %#" PRIx32 " err_orig %#" PRIx32,
res, err_origin);
for (i = 1; i < argc; i++) {
struct stat sb = { };
if (stat(argv[i], &sb)) {
printf("Skipping \"%s\": %s", argv[i], strerror(errno));
continue;
}
if (S_ISDIR(sb.st_mode))
install_dir(&sess, argv[i]);
else if (S_ISREG(sb.st_mode))
install_file(&sess, NULL, argv[i]);
else
printf("Skipping unknown file type \"%s\", mode 0%o",
argv[i], sb.st_mode);
}
TEEC_CloseSession(&sess);
TEEC_FinalizeContext(&ctx);
printf("Installing TAs done\n");
return 0;
}

View File

@@ -0,0 +1,12 @@
/*
* Copyright (c) 2017, Linaro Limited
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#ifndef INSTALL_TA_H
#define INSTALL_TA_H
int install_ta_runner_cmd_parser(int argc, char *argv[]);
#endif /*INSTALL_TA_H*/

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,12 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2023, Linaro Limited
*/
#ifndef XTEST_PKCS11_1000_H
#define XTEST_PKCS11_1000_H
/* Helper function for finding and detroying a token object */
int xtest_pkcs11_1028_destroy_token_object(void);
#endif /*XTEST_PKCS11_1000_H*/

View File

@@ -0,0 +1,117 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2016, Linaro Limited
*/
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <sys/param.h>
#include <sys/types.h>
#include "rand_stream.h"
#define STREAM_BUF_MIN_SIZE 4
struct rand_stream {
int32_t seed;
uint8_t word_buf[4];
size_t w_offs;
size_t sb_size;
size_t sb_offs;
uint8_t stream_buf[];
};
struct rand_stream *rand_stream_alloc(int seed, size_t stream_buffer_size)
{
size_t sb_size = MAX(stream_buffer_size, STREAM_BUF_MIN_SIZE);
struct rand_stream *rs = calloc(1, sizeof(*rs) + sb_size);
if (!rs)
return NULL;
rs->sb_size = sb_size;;
rs->sb_offs = rs->sb_size;
rs->w_offs = sizeof(rs->word_buf);
rs->seed = seed;
return rs;
}
void rand_stream_free(struct rand_stream *rs)
{
free(rs);
}
static void get_random(struct rand_stream *rs, uint8_t *buf, size_t blen)
{
uint8_t *b = buf;
size_t l = blen;
/*
* This function uses an LCG,
* https://en.wikipedia.org/wiki/Linear_congruential_generator
* to generate the byte stream.
*/
while (l) {
size_t t = MIN(sizeof(rs->word_buf) - rs->w_offs, l);
memcpy(b, rs->word_buf + rs->w_offs, t);
rs->w_offs += t;
l -= t;
b += t;
if (rs->w_offs == sizeof(rs->word_buf)) {
rs->seed = rs->seed * 1103515245 + 12345;
memcpy(rs->word_buf, &rs->seed, sizeof(rs->seed));
rs->w_offs = 0;
}
}
}
const void *rand_stream_peek(struct rand_stream *rs, size_t *num_bytes)
{
if (rs->sb_offs == rs->sb_size) {
rs->sb_offs = 0;
get_random(rs, rs->stream_buf, rs->sb_size);
}
*num_bytes = MIN(*num_bytes, rs->sb_size - rs->sb_offs);
return rs->stream_buf + rs->sb_offs;
}
void rand_stream_read(struct rand_stream *rs, void *buf, size_t num_bytes)
{
size_t peek_bytes = num_bytes;
const void *peek = rand_stream_peek(rs, &peek_bytes);
memcpy(buf, peek, peek_bytes);
rand_stream_advance(rs, peek_bytes);
if (num_bytes - peek_bytes)
get_random(rs, (uint8_t *)buf + peek_bytes,
num_bytes - peek_bytes);
}
void rand_stream_advance(struct rand_stream *rs, size_t num_bytes)
{
size_t nb = num_bytes;
if (nb <= (rs->sb_size - rs->sb_offs)) {
rs->sb_offs += nb;
return;
}
nb -= rs->sb_size - rs->sb_offs;
rs->sb_offs = rs->sb_size;
while (nb > rs->sb_size) {
get_random(rs, rs->stream_buf, rs->sb_size);
nb -= rs->sb_size;
}
get_random(rs, rs->stream_buf, rs->sb_size);
rs->sb_offs = nb;
}

View File

@@ -0,0 +1,20 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2016, Linaro Limited
*/
#ifndef __RAND_STREAM_H
#define __RAND_STREAM_H
#include <sys/types.h>
struct rand_stream;
struct rand_stream *rand_stream_alloc(int seed, size_t stream_buffer_size);
void rand_stream_free(struct rand_stream *rs);
const void *rand_stream_peek(struct rand_stream *rs, size_t *num_bytes);
void rand_stream_advance(struct rand_stream *rs, size_t num_bytes);
void rand_stream_read(struct rand_stream *rs, void *buf, size_t num_bytes);
#endif /*__RAND_STREAM_H*/

View File

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,929 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2016, Linaro Limited
*/
#include <assert.h>
#include <err.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/param.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <ta_socket.h>
#include <tee_isocket.h>
#include <tee_tcpsocket.h>
#include <__tee_tcpsocket_defines_extensions.h>
#include <tee_udpsocket.h>
#include <unistd.h>
#include "xtest_test.h"
#include "xtest_helpers.h"
#include "sock_server.h"
#include "rand_stream.h"
struct socket_handle {
uint64_t buf[2];
size_t blen;
};
static TEE_Result socket_tcp_open(TEEC_Session *session, uint32_t ip_vers,
const char *addr, uint16_t port,
struct socket_handle *handle,
uint32_t *error, uint32_t *ret_orig)
{
TEE_Result res = TEE_ERROR_GENERIC;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
memset(handle, 0, sizeof(*handle));
op.params[0].value.a = ip_vers;
op.params[0].value.b = port;
op.params[1].tmpref.buffer = (void *)addr;
op.params[1].tmpref.size = strlen(addr) + 1;
op.params[2].tmpref.buffer = handle->buf;
op.params[2].tmpref.size = sizeof(handle->buf);
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT,
TEEC_MEMREF_TEMP_INPUT,
TEEC_MEMREF_TEMP_OUTPUT,
TEEC_VALUE_OUTPUT);
res = TEEC_InvokeCommand(session, TA_SOCKET_CMD_TCP_OPEN,
&op, ret_orig);
handle->blen = op.params[2].tmpref.size;
*error = op.params[3].value.a;
return res;
}
static TEE_Result socket_udp_open(TEEC_Session *session, uint32_t ip_vers,
const char *addr, uint16_t port,
struct socket_handle *handle,
uint32_t *error, uint32_t *ret_orig)
{
TEE_Result res = TEE_ERROR_GENERIC;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
memset(handle, 0, sizeof(*handle));
op.params[0].value.a = ip_vers;
op.params[0].value.b = port;
op.params[1].tmpref.buffer = (void *)addr;
op.params[1].tmpref.size = strlen(addr) + 1;
op.params[2].tmpref.buffer = handle->buf;
op.params[2].tmpref.size = sizeof(handle->buf);
op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INPUT,
TEEC_MEMREF_TEMP_INPUT,
TEEC_MEMREF_TEMP_OUTPUT,
TEEC_VALUE_OUTPUT);
res = TEEC_InvokeCommand(session, TA_SOCKET_CMD_UDP_OPEN,
&op, ret_orig);
handle->blen = op.params[2].tmpref.size;
*error = op.params[3].value.a;
return res;
}
static TEE_Result socket_send(TEEC_Session *session,
struct socket_handle *handle,
const void *data, size_t *dlen,
uint32_t timeout, uint32_t *ret_orig)
{
TEE_Result res = TEE_ERROR_GENERIC;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
op.params[0].tmpref.buffer = handle->buf;
op.params[0].tmpref.size = handle->blen;
op.params[1].tmpref.buffer = (void *)data;
op.params[1].tmpref.size = *dlen;
op.params[2].value.a = timeout;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_INPUT,
TEEC_MEMREF_TEMP_INPUT,
TEEC_VALUE_INOUT, TEEC_NONE);
res = TEEC_InvokeCommand(session, TA_SOCKET_CMD_SEND, &op, ret_orig);
*dlen = op.params[2].value.b;
return res;
}
static TEE_Result socket_recv(TEEC_Session *session,
struct socket_handle *handle,
void *data, size_t *dlen,
uint32_t timeout, uint32_t *ret_orig)
{
TEE_Result res = TEE_ERROR_GENERIC;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
op.params[0].tmpref.buffer = handle->buf;
op.params[0].tmpref.size = handle->blen;
op.params[1].tmpref.buffer = (void *)data;
op.params[1].tmpref.size = *dlen;
op.params[2].value.a = timeout;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_INPUT,
TEEC_MEMREF_TEMP_OUTPUT,
TEEC_VALUE_INPUT, TEEC_NONE);
res = TEEC_InvokeCommand(session, TA_SOCKET_CMD_RECV, &op, ret_orig);
*dlen = op.params[1].tmpref.size;
return res;
}
static TEE_Result socket_get_error(TEEC_Session *session,
struct socket_handle *handle,
uint32_t *proto_error, uint32_t *ret_orig)
{
TEE_Result res = TEE_ERROR_GENERIC;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
op.params[0].tmpref.buffer = handle->buf;
op.params[0].tmpref.size = handle->blen;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_INPUT,
TEEC_VALUE_OUTPUT,
TEEC_NONE, TEEC_NONE);
res = TEEC_InvokeCommand(session, TA_SOCKET_CMD_ERROR, &op, ret_orig);
*proto_error = op.params[1].value.a;
return res;
}
static TEE_Result socket_close(TEEC_Session *session,
struct socket_handle *handle, uint32_t *ret_orig)
{
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
op.params[0].tmpref.buffer = handle->buf;
op.params[0].tmpref.size = handle->blen;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_INPUT,
TEEC_NONE, TEEC_NONE, TEEC_NONE);
return TEEC_InvokeCommand(session, TA_SOCKET_CMD_CLOSE, &op, ret_orig);
}
static TEE_Result socket_ioctl(TEEC_Session *session,
struct socket_handle *handle, uint32_t ioctl_cmd,
void *data, size_t *dlen, uint32_t *ret_orig)
{
TEE_Result res = TEE_ERROR_GENERIC;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
op.params[0].tmpref.buffer = handle->buf;
op.params[0].tmpref.size = handle->blen;
op.params[1].tmpref.buffer = data;
op.params[1].tmpref.size = *dlen;
op.params[2].value.a = ioctl_cmd;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_INPUT,
TEEC_MEMREF_TEMP_INOUT,
TEEC_VALUE_INPUT, TEEC_NONE);
res = TEEC_InvokeCommand(session, TA_SOCKET_CMD_IOCTL, &op, ret_orig);
*dlen = op.params[1].tmpref.size;
return res;
}
struct test_200x_io_state {
struct rand_stream *read_rs;
struct rand_stream *write_rs;
bool rfail;
};
static void test_200x_init_io_state(struct test_200x_io_state *s,
int read_seed, int write_seed)
{
memset(s, 0, sizeof(*s));
s->read_rs = rand_stream_alloc(read_seed, 100);
s->write_rs = rand_stream_alloc(write_seed, 100);
assert(s->read_rs && s->write_rs);
}
static bool test_200x_tcp_accept_cb(void *ptr, int fd, short *events)
{
(void)ptr;
(void)fd;
(void)events;
return true;
}
static bool test_200x_tcp_read_cb(void *ptr, int fd, short *events)
{
struct test_200x_io_state *iostate = ptr;
ssize_t r = 0;
uint8_t buf[100] = { };
uint8_t buf2[100] = { };
(void)events;
r = read(fd, buf, sizeof(buf));
if (r <= 0)
return false;
rand_stream_read(iostate->read_rs, buf2, r);
if (memcmp(buf, buf2, r)) {
iostate->rfail = true;
return false;
}
return true;
}
static bool test_200x_tcp_write_cb(void *ptr, int fd, short *events)
{
struct test_200x_io_state *iostate = ptr;
size_t num_bytes = 100;
const void *bytes = NULL;
ssize_t r = 0;
(void)events;
bytes = rand_stream_peek(iostate->write_rs, &num_bytes);
r = write(fd, bytes, num_bytes);
if (r < 0)
return false;
rand_stream_advance(iostate->write_rs, num_bytes);
return true;
}
static void xtest_tee_test_2001(ADBG_Case_t *c)
{
struct sock_server ts = { };
TEEC_Session session = { };
uint32_t ret_orig = 0;
uint32_t proto_error = 9;
struct socket_handle sh = { };
uint8_t buf[64] = { };
uint8_t buf2[64] = { };
size_t blen = 0;
struct test_200x_io_state server_iostate = { };
struct test_200x_io_state local_iostate = { };
struct sock_io_cb cb = {
.accept = test_200x_tcp_accept_cb,
.read = test_200x_tcp_read_cb,
.write = test_200x_tcp_write_cb,
.ptr = &server_iostate,
};
test_200x_init_io_state(&server_iostate, 1, 2);
test_200x_init_io_state(&local_iostate, 2, 1);
Do_ADBG_BeginSubCase(c, "Start server");
if (!ADBG_EXPECT_TRUE(c, sock_server_init_tcp(&ts, &cb)))
return;
Do_ADBG_EndSubCase(c, "Start server");
Do_ADBG_BeginSubCase(c, "TCP Socket open");
if (!ADBG_EXPECT_TEEC_SUCCESS(c, xtest_teec_open_session(
&session, &socket_ta_uuid, NULL, &ret_orig)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_tcp_open(&session,
TEE_IP_VERSION_DC, ts.bind->host, ts.bind->port,
&sh, &proto_error, &ret_orig)))
goto out_close_session;
Do_ADBG_EndSubCase(c, "TCP Socket open");
Do_ADBG_BeginSubCase(c, "TCP Socket send");
blen = sizeof(buf);
rand_stream_read(local_iostate.write_rs, buf, blen);
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_send(&session, &sh,
buf, &blen, TEE_TIMEOUT_INFINITE, &ret_orig)))
goto out_close_session;
ADBG_EXPECT_COMPARE_UNSIGNED(c, blen, ==, sizeof(buf));
Do_ADBG_EndSubCase(c, "TCP Socket send");
Do_ADBG_BeginSubCase(c, "TCP Socket recv");
blen = sizeof(buf);
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_recv(&session, &sh,
buf, &blen, TEE_TIMEOUT_INFINITE, &ret_orig)))
goto out_close_session;
ADBG_EXPECT_COMPARE_UNSIGNED(c, blen, ==, sizeof(buf));
rand_stream_read(local_iostate.read_rs, buf2, blen);
ADBG_EXPECT_BUFFER(c, buf2, blen, buf, blen);
Do_ADBG_EndSubCase(c, "TCP Socket recv");
/*
* All written bytes above (with the TA) is quite likely to have
* hit the tcp server by now.
*/
ADBG_EXPECT_TRUE(c, !server_iostate.rfail);
Do_ADBG_BeginSubCase(c, "TCP Socket get error");
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_get_error(&session, &sh,
&proto_error, &ret_orig)))
goto out_close_session;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, proto_error))
goto out_close_session;
Do_ADBG_EndSubCase(c, "TCP Socket get error");
Do_ADBG_BeginSubCase(c, "TCP Socket close");
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_close(&session, &sh,
&ret_orig)))
goto out_close_session;
Do_ADBG_EndSubCase(c, "TCP Socket close");
Do_ADBG_BeginSubCase(c, "TCP Socket ioctl");
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_tcp_open(&session,
TEE_IP_VERSION_DC, ts.bind->host, ts.bind->port,
&sh, &proto_error, &ret_orig)))
goto out_close_session;
blen = sizeof(buf);
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_ioctl(&session, &sh, 0x00F00000,
buf, &blen, &ret_orig)))
goto out_close_session;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_close(&session, &sh,
&ret_orig)))
goto out_close_session;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_tcp_open(&session,
TEE_IP_VERSION_DC, ts.bind->host, ts.bind->port,
&sh, &proto_error, &ret_orig)))
goto out_close_session;
blen = sizeof(buf);
ADBG_EXPECT_TEEC_RESULT(c, TEEC_ERROR_TARGET_DEAD,
socket_ioctl(&session, &sh,
TEE_ISOCKET_PROTOCOLID_TCP << 24,
buf, &blen, &ret_orig));
TEEC_CloseSession(&session);
if (!ADBG_EXPECT_TEEC_SUCCESS(c, xtest_teec_open_session(
&session, &socket_ta_uuid, NULL, &ret_orig)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_tcp_open(&session,
TEE_IP_VERSION_DC, ts.bind->host, ts.bind->port,
&sh, &proto_error, &ret_orig)))
goto out_close_session;
blen = sizeof(buf);
ADBG_EXPECT_TEEC_RESULT(c, TEEC_ERROR_TARGET_DEAD,
socket_ioctl(&session, &sh, 0x32 << 24,
buf, &blen, &ret_orig));
Do_ADBG_EndSubCase(c, "TCP Socket ioctl");
out_close_session:
TEEC_CloseSession(&session);
out:
sock_server_uninit(&ts);
}
ADBG_CASE_DEFINE(regression, 2001, xtest_tee_test_2001,
"Trivial TCP iSocket API tests");
struct test_2002_barrier {
pthread_mutex_t mu;
pthread_barrier_t bar;
};
struct test_2002_arg {
bool success;
size_t tnum;
struct test_2002_barrier *bar;
};
static void xtest_2002_wait_barrier(struct test_2002_barrier *bar)
{
/*
* Once the mutex is taken the barrier is initialized so the mutex
* can be released immediately.
*/
xtest_mutex_lock(&bar->mu);
xtest_mutex_unlock(&bar->mu);
xtest_barrier_wait(&bar->bar);
}
static void *xtest_tee_test_2002_thread(void *arg)
{
struct test_2002_arg *a = arg;
TEE_Result res = TEE_ERROR_GENERIC;
struct sock_server ts = { };
TEEC_Session session = { };
uint32_t ret_orig = 0;
uint32_t proto_error = 0;
struct socket_handle sh = { };
struct test_200x_io_state server_iostate = { };
struct test_200x_io_state local_iostate = { };
struct sock_io_cb cb = {
.accept = test_200x_tcp_accept_cb,
.read = test_200x_tcp_read_cb,
.write = test_200x_tcp_write_cb,
.ptr = &server_iostate,
};
int seed[2] = { 1 + a->tnum * 2, 2 + a->tnum * 2 };
size_t send_limit = 10000;
size_t recv_limit = 10000;
size_t sent_bytes = 0;
size_t recvd_bytes = 0;
test_200x_init_io_state(&server_iostate, seed[0], seed[1]);
test_200x_init_io_state(&local_iostate, seed[1], seed[0]);
if (!sock_server_init_tcp(&ts, &cb)) {
xtest_2002_wait_barrier(a->bar);
return NULL;
}
res = xtest_teec_open_session(&session, &socket_ta_uuid, NULL,
&ret_orig);
xtest_2002_wait_barrier(a->bar);
if (res != TEE_SUCCESS)
goto out;
res = socket_tcp_open(&session, TEE_IP_VERSION_DC, ts.bind->host,
ts.bind->port, &sh, &proto_error, &ret_orig);
if (res != TEE_SUCCESS)
goto out_close_session;
while (sent_bytes < send_limit && recvd_bytes < recv_limit) {
const void *peek = NULL;
uint8_t buf[64] = { };
uint8_t buf2[64] = { };
size_t blen = 0;
blen = sizeof(buf);
peek = rand_stream_peek(local_iostate.write_rs, &blen);
res = socket_send(&session, &sh, peek, &blen,
TEE_TIMEOUT_INFINITE, &ret_orig);
if (res != TEE_SUCCESS)
goto out_close_session;
rand_stream_advance(local_iostate.write_rs, blen);
sent_bytes += blen;
blen = sizeof(buf);
res = socket_recv(&session, &sh, buf, &blen,
TEE_TIMEOUT_INFINITE, &ret_orig);
if (res != TEE_SUCCESS)
goto out_close_session;
rand_stream_read(local_iostate.read_rs, buf2, blen);
if (memcmp(buf2, buf, blen))
goto out_close_session;
recvd_bytes += blen;
}
res = socket_close(&session, &sh, &ret_orig);
if (res != TEE_SUCCESS)
goto out_close_session;
/*
* All written bytes above (with the TA) is quite likely to have
* hit the tcp server by now.
*/
a->success = !server_iostate.rfail;
out_close_session:
TEEC_CloseSession(&session);
out:
sock_server_uninit(&ts);
return NULL;
}
#define NUM_THREADS 3
static void xtest_tee_test_2002(ADBG_Case_t *c)
{
struct test_2002_barrier bar = { .mu = PTHREAD_MUTEX_INITIALIZER };
struct test_2002_arg arg[NUM_THREADS] = { };
size_t n = 0;
size_t nt = 0;
pthread_t thr[NUM_THREADS] = { };
Do_ADBG_BeginSubCase(c, "Stressing with %d threads", NUM_THREADS);
xtest_mutex_lock(&bar.mu);
nt = NUM_THREADS;
for (n = 0; n < nt; n++) {
arg[n].success = false;
arg[n].tnum = n;
arg[n].bar = &bar;
if (!ADBG_EXPECT(c, 0, pthread_create(thr + n, NULL,
xtest_tee_test_2002_thread, arg + n)))
nt = n; /* break loop and start cleanup */
}
xtest_barrier_init(&bar.bar, nt + 1);
xtest_mutex_unlock(&bar.mu);
xtest_barrier_wait(&bar.bar);
for (n = 0; n < nt; n++) {
ADBG_EXPECT(c, 0, pthread_join(thr[n], NULL));
ADBG_EXPECT_TRUE(c, arg[n].success);
}
xtest_mutex_destroy(&bar.mu);
xtest_barrier_destroy(&bar.bar);
Do_ADBG_EndSubCase(c, "Stressing with %d threads", NUM_THREADS);
}
ADBG_CASE_DEFINE(regression, 2002, xtest_tee_test_2002,
"Concurrent stressing TCP iSocket API tests");
static bool test_2003_accept_cb(void *ptr, int fd, short *events)
{
int val = 0;
(void)ptr;
(void)events;
val = 4 * 1024;
if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &val, sizeof(val)))
warn("test_2003_accept_cb: setsockopt");
return true;
}
static void xtest_tee_test_2003(ADBG_Case_t *c)
{
struct sock_server ts = { };
TEEC_Session session = { };
uint32_t ret_orig = 0;
uint32_t proto_error = 0;
struct socket_handle sh = { };
void *buf = NULL;
const size_t blen0 = 16 * 1024;
size_t blen = 0;
uint32_t val = 0;
struct sock_io_cb cb = { .accept = test_2003_accept_cb };
Do_ADBG_BeginSubCase(c, "Start server");
if (!ADBG_EXPECT_TRUE(c, sock_server_init_tcp(&ts, &cb)))
return;
buf = calloc(1, blen0);
if (!ADBG_EXPECT_NOT_NULL(c, buf))
goto out;
Do_ADBG_EndSubCase(c, "Start server");
Do_ADBG_BeginSubCase(c, "TCP Socket open");
if (!ADBG_EXPECT_TEEC_SUCCESS(c, xtest_teec_open_session(
&session, &socket_ta_uuid, NULL, &ret_orig)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_tcp_open(&session,
TEE_IP_VERSION_DC, ts.bind->host, ts.bind->port,
&sh, &proto_error, &ret_orig)))
goto out_close_session;
blen = sizeof(val);
val = 4 * 1024;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_ioctl(&session, &sh,
TEE_TCP_SET_RECVBUF, &val, &blen, &ret_orig)))
goto out_close_session;
blen = sizeof(val);
val = 4 * 1024;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_ioctl(&session, &sh,
TEE_TCP_SET_SENDBUF, &val, &blen, &ret_orig)))
goto out_close_session;
Do_ADBG_EndSubCase(c, "TCP Socket open");
Do_ADBG_BeginSubCase(c, "TCP Socket send (10 ms timeout)");
while (true) {
TEE_Result res = TEE_ERROR_GENERIC;
blen = blen0;
memset(buf, 0, blen0);
res = socket_send(&session, &sh, buf, &blen, 10, &ret_orig);
if (res == TEE_ISOCKET_ERROR_TIMEOUT)
break;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, res))
goto out_close_session;
ADBG_EXPECT_COMPARE_UNSIGNED(c, blen, ==, blen0);
}
Do_ADBG_EndSubCase(c, "TCP Socket send (10 ms timeout)");
Do_ADBG_BeginSubCase(c, "TCP Socket recv (10 ms timeout)");
blen = blen0;
ADBG_EXPECT_TEEC_RESULT(c, TEE_ISOCKET_ERROR_TIMEOUT,
socket_recv(&session, &sh, buf, &blen,
10, &ret_orig));
ADBG_EXPECT_COMPARE_UNSIGNED(c, blen, ==, blen0);
Do_ADBG_EndSubCase(c, "TCP Socket recv (10 ms timeout)");
Do_ADBG_BeginSubCase(c, "TCP Socket get error");
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_get_error(&session, &sh,
&proto_error, &ret_orig)))
goto out_close_session;
ADBG_EXPECT_TEEC_RESULT(c, TEE_ISOCKET_ERROR_TIMEOUT, proto_error);
Do_ADBG_EndSubCase(c, "TCP Socket get error");
out_close_session:
TEEC_CloseSession(&session);
out:
free(buf);
sock_server_uninit(&ts);
}
ADBG_CASE_DEFINE(regression, 2003, xtest_tee_test_2003,
"Timeout TCP iSocket API tests");
static bool test_200x_udp_accept_cb(void *ptr, int fd, short *events)
{
struct test_200x_io_state *iostate = ptr;
struct sockaddr_storage sass = { };
struct sockaddr *sa = (struct sockaddr *)&sass;
socklen_t slen = sizeof(sass);
uint8_t buf[100] = { };
uint8_t buf2[100] = { };
ssize_t r = 0;
size_t l = 0;
(void)events;
r = recvfrom(fd, buf, sizeof(buf), 0, sa, &slen);
if (r == -1)
return false;
l = r;
rand_stream_read(iostate->read_rs, buf2, l);
if (memcmp(buf, buf2, l))
iostate->rfail = true;
rand_stream_read(iostate->write_rs, buf, l);
return sendto(fd, buf, l, 0, sa, slen) != -1;
}
static bool test_2004_send_recv(ADBG_Case_t *c,
struct test_200x_io_state *srv_ios,
struct test_200x_io_state *local_ios,
TEEC_Session *session, struct socket_handle *sh,
size_t send_sz, size_t recv_sz)
{
bool ret = false;
uint32_t ret_orig = 0;
uint8_t *buf = calloc(1, send_sz);
uint8_t *buf2 = calloc(1, send_sz);
size_t blen = 0;
/* If recv_sz < send_sz we're receiving a truncated datagram */
if (!ADBG_EXPECT_NOT_NULL(c, buf) || !ADBG_EXPECT_NOT_NULL(c, buf2) ||
!ADBG_EXPECT_COMPARE_UNSIGNED(c, send_sz, >=, recv_sz))
goto out;
/* First we're sending the packet to the echo server */
Do_ADBG_BeginSubCase(c, "UDP Socket send");
blen = send_sz;
rand_stream_read(local_ios->write_rs, buf, blen);
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_send(session, sh,
buf, &blen, TEE_TIMEOUT_INFINITE, &ret_orig)))
goto out;
if (!ADBG_EXPECT_COMPARE_UNSIGNED(c, blen, ==, send_sz))
goto out;
Do_ADBG_EndSubCase(c, "UDP Socket send");
/* Then we're receiving the packet from the echo server */
Do_ADBG_BeginSubCase(c, "UDP Socket recv");
blen = 0;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_recv(session, sh,
buf, &blen, TEE_TIMEOUT_INFINITE, &ret_orig)))
goto out;
/*
* blen was set to 0 so socket_recv() cannot block, this means the
* we have no guarantee that the sent UDP packet has reached its
* destination yet. If it has it must match the send size, else it
* must be 0.
*/
if (blen && !ADBG_EXPECT_COMPARE_UNSIGNED(c, blen, ==, send_sz))
goto out;
blen = recv_sz;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_recv(session, sh,
buf, &blen, TEE_TIMEOUT_INFINITE, &ret_orig)))
goto out;
if (recv_sz < send_sz) {
if (!ADBG_EXPECT_COMPARE_UNSIGNED(c, blen, >=, recv_sz))
goto out;
} else {
if (!ADBG_EXPECT_COMPARE_UNSIGNED(c, blen, ==, send_sz))
goto out;
}
rand_stream_read(local_ios->read_rs, buf2, send_sz);
if (!ADBG_EXPECT_BUFFER(c, buf2, recv_sz, buf, recv_sz))
goto out;
if (!ADBG_EXPECT_TRUE(c, !srv_ios->rfail))
goto out;
Do_ADBG_EndSubCase(c, "UDP Socket recv");
ret = true;
out:
free(buf);
free(buf2);
return ret;
}
static void xtest_tee_test_2004(ADBG_Case_t *c)
{
struct sock_server ts = { };
struct sock_server ts2 = { };
struct sock_server ts3 = { };
bool ts_inited = false;
bool ts2_inited = false;
bool ts3_inited = false;
TEEC_Session session = { };
uint32_t ret_orig = 0;
uint32_t proto_error = 0;
struct socket_handle sh = { };
uint8_t buf[64] = { };
size_t blen = 0;
uint16_t port = 0;
struct test_200x_io_state server_iostate = { };
struct test_200x_io_state local_iostate = { };
struct sock_io_cb cb = {
.accept = test_200x_udp_accept_cb,
.ptr = &server_iostate,
};
test_200x_init_io_state(&server_iostate, 1, 2);
test_200x_init_io_state(&local_iostate, 2, 1);
Do_ADBG_BeginSubCase(c, "Start server");
if (!ADBG_EXPECT_TRUE(c, sock_server_init_udp(&ts, &cb)))
return;
ts_inited = true;
if (!ADBG_EXPECT_TRUE(c, sock_server_init_udp(&ts2, &cb)))
goto out;
ts2_inited = true;
if (!ADBG_EXPECT_TRUE(c, sock_server_init_udp(&ts3, &cb)))
goto out;
ts3_inited = true;
Do_ADBG_EndSubCase(c, "Start server");
Do_ADBG_BeginSubCase(c, "UDP Socket open");
if (!ADBG_EXPECT_TEEC_SUCCESS(c, xtest_teec_open_session(
&session, &socket_ta_uuid, NULL, &ret_orig)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_udp_open(&session,
TEE_IP_VERSION_DC, ts.bind->host, ts.bind->port,
&sh, &proto_error, &ret_orig)))
goto out_close_session;
Do_ADBG_EndSubCase(c, "UDP Socket open");
Do_ADBG_BeginSubCase(c, "Normal send and receive");
if (!ADBG_EXPECT_TRUE(c, test_2004_send_recv(c, &server_iostate,
&local_iostate, &session,
&sh, 64, 64)))
goto out_close_session;
Do_ADBG_EndSubCase(c, "Normal send and receive");
Do_ADBG_BeginSubCase(c, "UDP Socket truncated recv");
if (!ADBG_EXPECT_TRUE(c, test_2004_send_recv(c, &server_iostate,
&local_iostate, &session,
&sh, 64, 32)))
goto out_close_session;
Do_ADBG_EndSubCase(c, "UDP Socket truncated recv");
Do_ADBG_BeginSubCase(c, "UDP Socket get error");
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_get_error(&session, &sh,
&proto_error, &ret_orig)))
goto out_close_session;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, proto_error))
goto out_close_session;
Do_ADBG_EndSubCase(c, "UDP Socket get error");
Do_ADBG_BeginSubCase(c, "UDP Socket close");
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_close(&session, &sh,
&ret_orig)))
goto out_close_session;
Do_ADBG_EndSubCase(c, "UDP Socket close");
Do_ADBG_BeginSubCase(c, "UDP Socket ioctl");
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_udp_open(&session,
TEE_IP_VERSION_DC, ts.bind->host, ts.bind->port,
&sh, &proto_error, &ret_orig)))
goto out_close_session;
blen = sizeof(buf);
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_ioctl(&session, &sh, 0x00F00000,
buf, &blen, &ret_orig)))
goto out_close_session;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_close(&session, &sh,
&ret_orig)))
goto out_close_session;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_udp_open(&session,
TEE_IP_VERSION_DC, ts.bind->host, ts.bind->port,
&sh, &proto_error, &ret_orig)))
goto out_close_session;
blen = sizeof(buf);
ADBG_EXPECT_TEEC_RESULT(c, TEEC_ERROR_TARGET_DEAD,
socket_ioctl(&session, &sh,
TEE_ISOCKET_PROTOCOLID_UDP << 24,
buf, &blen, &ret_orig));
TEEC_CloseSession(&session);
if (!ADBG_EXPECT_TEEC_SUCCESS(c, xtest_teec_open_session(
&session, &socket_ta_uuid, NULL, &ret_orig)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_udp_open(&session,
TEE_IP_VERSION_DC, ts.bind->host, ts.bind->port,
&sh, &proto_error, &ret_orig)))
goto out_close_session;
blen = sizeof(buf);
ADBG_EXPECT_TEEC_RESULT(c, TEEC_ERROR_TARGET_DEAD,
socket_ioctl(&session, &sh, 0x32 << 24,
buf, &blen, &ret_orig));
TEEC_CloseSession(&session);
Do_ADBG_EndSubCase(c, "UDP Socket ioctl");
Do_ADBG_BeginSubCase(c, "UDP Socket change port");
if (!ADBG_EXPECT_TEEC_SUCCESS(c, xtest_teec_open_session(
&session, &socket_ta_uuid, NULL, &ret_orig)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_udp_open(&session,
TEE_IP_VERSION_DC, ts.bind->host, ts.bind->port,
&sh, &proto_error, &ret_orig)))
goto out_close_session;
sock_server_uninit(&ts);
ts_inited = false;
port = ts2.bind->port;
blen = sizeof(port);
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_ioctl(&session, &sh,
TEE_UDP_CHANGEPORT, &port, &blen, &ret_orig)))
goto out_close_session;
if (!ADBG_EXPECT_TRUE(c, test_2004_send_recv(c, &server_iostate,
&local_iostate, &session,
&sh, 64, 64)))
goto out_close_session;
TEEC_CloseSession(&session);
Do_ADBG_EndSubCase(c, "UDP Socket change port");
Do_ADBG_BeginSubCase(c, "UDP Socket change addr");
if (!ADBG_EXPECT_TEEC_SUCCESS(c, xtest_teec_open_session(
&session, &socket_ta_uuid, NULL, &ret_orig)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_udp_open(&session,
TEE_IP_VERSION_DC, ts2.bind->host, ts2.bind->port,
&sh, &proto_error, &ret_orig)))
goto out_close_session;
sock_server_uninit(&ts2);
ts2_inited = false;
port = ts3.bind->port;
blen = sizeof(port);
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_ioctl(&session, &sh,
TEE_UDP_CHANGEPORT, &port, &blen, &ret_orig)))
goto out_close_session;
blen = strlen(ts3.bind->host) + 1;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, socket_ioctl(&session, &sh,
TEE_UDP_CHANGEADDR, ts3.bind->host, &blen, &ret_orig)))
goto out_close_session;
if (!ADBG_EXPECT_TRUE(c, test_2004_send_recv(c, &server_iostate,
&local_iostate, &session,
&sh, 64, 64)))
goto out_close_session;
Do_ADBG_EndSubCase(c, "UDP Socket change addr");
out_close_session:
TEEC_CloseSession(&session);
out:
if (ts_inited)
sock_server_uninit(&ts);
if (ts2_inited)
sock_server_uninit(&ts2);
if (ts3_inited)
sock_server_uninit(&ts3);
}
ADBG_CASE_DEFINE(regression, 2004, xtest_tee_test_2004,
"UDP iSocket API tests");

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,515 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2014, STMicroelectronics International N.V.
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include "xtest_test.h"
#include "xtest_helpers.h"
#include "tee_api_defines.h"
#include "tee_client_api.h"
#define OFFSET0 0
#define PARAM_0 0
#define PARAM_1 1
#define PARAM_2 2
#define PARAM_3 3
struct xtest_session {
ADBG_Case_t *c;
TEEC_Session session;
TEEC_Context context;
};
/* Compares two memories and checks if their length and content is the same */
#define EXPECT_SHARED_MEM_BUFFER(c, exp_buf, exp_blen, op, param_num, shrm) \
do { \
if ((exp_buf) == NULL) { \
ADBG_EXPECT((c), exp_blen, \
(op)->params[(param_num)].memref.size); \
} else { \
ADBG_EXPECT_COMPARE_POINTER((c), (shrm), ==, \
(op)->params[(param_num)].memref.parent); \
ADBG_EXPECT_BUFFER((c), (exp_buf), (exp_blen), \
(shrm)->buffer, \
(op)->params[(param_num)].memref.size); \
} \
} while (0)
/*
* Compares the content of the memory cells in OP with the expected value
* contained.
*/
#define EXPECT_OP_TMP_MEM_BUFFER(c, exp_buf, exp_blen, op, param_num, buf) \
do { \
if ((exp_buf) == NULL) { \
ADBG_EXPECT((c), exp_blen, \
(op)->params[(param_num)].tmpref.size); \
} else { \
ADBG_EXPECT_COMPARE_POINTER((c), (buf), ==, \
(op)->params[(param_num)].tmpref.buffer); \
ADBG_EXPECT_BUFFER((c), (exp_buf), (exp_blen), \
(buf), \
(op)->params[(param_num)].memref.size); \
} \
} while (0)
/* Registers the TEEC_SharedMemory to the TEE. */
static TEEC_Result RegisterSharedMemory(TEEC_Context *ctx,
TEEC_SharedMemory *shm, size_t size,
uint32_t flags)
{
shm->flags = flags;
shm->size = size;
return TEEC_RegisterSharedMemory(ctx, shm);
}
/* Allocates shared memory inside of the TEE. */
static TEEC_Result AllocateSharedMemory(TEEC_Context *ctx,
TEEC_SharedMemory *shm, size_t size,
uint32_t flags)
{
shm->flags = flags;
shm->size = size;
return TEEC_AllocateSharedMemory(ctx, shm);
}
static void CloseSession_null(struct xtest_session *cs)
{
Do_ADBG_BeginSubCase(cs->c, "CloseSession_null");
{
/* In reality doesn't test anything. */
TEEC_CloseSession(NULL);
}
Do_ADBG_EndSubCase(cs->c, "CloseSession_null");
}
static void Allocate_In(struct xtest_session *cs)
{
Do_ADBG_BeginSubCase(cs->c, "Allocate_In");
{
TEEC_SharedMemory shm = { };
size_t size = 1024;
if (!ADBG_EXPECT(cs->c, TEEC_SUCCESS,
TEEC_InitializeContext(xtest_tee_name, &cs->context)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(cs->c,
AllocateSharedMemory(&cs->context, &shm, size,
TEEC_MEM_INPUT)))
goto out_final;
TEEC_ReleaseSharedMemory(&shm);
out_final:
TEEC_FinalizeContext(&cs->context);
}
out:
Do_ADBG_EndSubCase(cs->c, "Allocate_In");
}
static void Allocate_out_of_memory(struct xtest_session *cs)
{
Do_ADBG_BeginSubCase(cs->c, "Allocate_out_of_memory");
{
TEEC_SharedMemory shm = { };
size_t SIZE_OVER_MEMORY_CAPACITY = SIZE_MAX;
if (!ADBG_EXPECT(cs->c, TEEC_SUCCESS,
TEEC_InitializeContext(xtest_tee_name, &cs->context)))
goto out;
ADBG_EXPECT_TEEC_RESULT(cs->c, TEEC_ERROR_OUT_OF_MEMORY,
AllocateSharedMemory(&cs->context, &shm,
SIZE_OVER_MEMORY_CAPACITY,
TEEC_MEM_INPUT));
TEEC_FinalizeContext(&cs->context);
}
out:
Do_ADBG_EndSubCase(cs->c, "Allocate_out_of_memory");
}
static void OpenSession_error_notExistingTA(struct xtest_session *cs)
{
Do_ADBG_BeginSubCase(cs->c, "OpenSession_error_notExistingTA");
{
TEEC_UUID NONEXISTING_TA_UUID = { 0x534D1192, 0x6143, 0x234C,
{ 0x47, 0x55, 0x53, 0x52,
0x54, 0x4F, 0x4F, 0x59 } };
uint32_t ret_orig = 0;
if (!ADBG_EXPECT(cs->c, TEEC_SUCCESS,
TEEC_InitializeContext(xtest_tee_name, &cs->context)))
goto out;
ADBG_EXPECT_COMPARE_UNSIGNED(cs->c, TEEC_SUCCESS, !=,
TEEC_OpenSession(&cs->context, &cs->session,
&NONEXISTING_TA_UUID,
TEEC_LOGIN_PUBLIC, NULL, NULL,
&ret_orig));
ADBG_EXPECT_COMPARE_UNSIGNED(cs->c, TEEC_ORIGIN_TRUSTED_APP, !=,
ret_orig);
TEEC_FinalizeContext(&cs->context);
}
out:
Do_ADBG_EndSubCase(cs->c, "OpenSession_error_notExistingTA");
}
static void Allocate_InOut(struct xtest_session *cs)
{
Do_ADBG_BeginSubCase(cs->c, "Allocate_InOut");
{
TEEC_SharedMemory shm = { };
uint8_t val[] = { 54, 76, 98, 32 };
if (!ADBG_EXPECT(cs->c, TEEC_SUCCESS,
TEEC_InitializeContext(xtest_tee_name, &cs->context)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(cs->c,
AllocateSharedMemory(&cs->context, &shm, sizeof(val),
TEEC_MEM_INPUT | TEEC_MEM_OUTPUT)))
goto out_final;
TEEC_ReleaseSharedMemory(&shm);
out_final:
TEEC_FinalizeContext(&cs->context);
}
out:
Do_ADBG_EndSubCase(cs->c, "Allocate_InOut");
}
static void Register_In(struct xtest_session *cs)
{
Do_ADBG_BeginSubCase(cs->c, "Register_In");
{
TEEC_SharedMemory shm = { };
uint8_t val[] = { 32, 65, 43, 21, 98 };
if (!ADBG_EXPECT(cs->c, TEEC_SUCCESS,
TEEC_InitializeContext(xtest_tee_name, &cs->context)))
goto out;
shm.buffer = val;
if (!ADBG_EXPECT_TEEC_SUCCESS(cs->c,
RegisterSharedMemory(&cs->context, &shm, sizeof(val),
TEEC_MEM_INPUT)))
goto out_final;
TEEC_ReleaseSharedMemory(&shm);
out_final:
TEEC_FinalizeContext(&cs->context);
}
out:
Do_ADBG_EndSubCase(cs->c, "Register_In");
}
static void Register_notZeroLength_Out(struct xtest_session *cs)
{
Do_ADBG_BeginSubCase(cs->c, "Register_notZeroLength_Out");
{
TEEC_SharedMemory shm = { };
uint8_t val[] = { 56, 67, 78, 99 };
if (!ADBG_EXPECT(cs->c, TEEC_SUCCESS,
TEEC_InitializeContext(xtest_tee_name, &cs->context)))
goto out;
shm.buffer = val;
if (!ADBG_EXPECT_TEEC_SUCCESS(cs->c,
RegisterSharedMemory(&cs->context, &shm, sizeof(val),
TEEC_MEM_OUTPUT)))
goto out_final;
TEEC_ReleaseSharedMemory(&shm);
out_final:
TEEC_FinalizeContext(&cs->context);
}
out:
Do_ADBG_EndSubCase(cs->c, "Register_notZeroLength_Out");
}
static void Register_InOut(struct xtest_session *cs)
{
Do_ADBG_BeginSubCase(cs->c, "Register_InOut");
{
TEEC_SharedMemory shm = { };
uint8_t val[] = { 54, 76, 23, 98, 255, 23, 86 };
if (!ADBG_EXPECT(cs->c, TEEC_SUCCESS,
TEEC_InitializeContext(xtest_tee_name, &cs->context)))
goto out;
shm.buffer = val;
if (!ADBG_EXPECT_TEEC_SUCCESS(cs->c,
RegisterSharedMemory(&cs->context, &shm, sizeof(val),
TEEC_MEM_INPUT | TEEC_MEM_OUTPUT)))
goto out_final;
TEEC_ReleaseSharedMemory(&shm);
out_final:
TEEC_FinalizeContext(&cs->context);
}
out:
Do_ADBG_EndSubCase(cs->c, "Register_InOut");
}
static void Register_zeroLength_Out(struct xtest_session *cs)
{
Do_ADBG_BeginSubCase(cs->c, "Register_zeroLength_Out");
{
uint8_t val[] = { 65, 76, 98, 32 };
TEEC_SharedMemory shm = { };
if (!ADBG_EXPECT(cs->c, TEEC_SUCCESS,
TEEC_InitializeContext(xtest_tee_name, &cs->context)))
goto out;
shm.buffer = val;
if (!ADBG_EXPECT_TEEC_SUCCESS(cs->c,
RegisterSharedMemory(&cs->context, &shm, 0,
TEEC_MEM_OUTPUT)))
goto out_final;
TEEC_ReleaseSharedMemory(&shm);
out_final:
TEEC_FinalizeContext(&cs->context);
}
out:
Do_ADBG_EndSubCase(cs->c, "Register_zeroLength_Out");
}
static void Allocate_Out(struct xtest_session *cs)
{
Do_ADBG_BeginSubCase(cs->c, "Allocate_Out");
{
TEEC_SharedMemory shm = { };
if (!ADBG_EXPECT(cs->c, TEEC_SUCCESS,
TEEC_InitializeContext(xtest_tee_name, &cs->context)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(cs->c,
AllocateSharedMemory(&cs->context, &shm, 0,
TEEC_MEM_OUTPUT)))
goto out_final;
TEEC_ReleaseSharedMemory(&shm);
out_final:
TEEC_FinalizeContext(&cs->context);
}
out:
Do_ADBG_EndSubCase(cs->c, "Allocate_Out");
}
static void FinalizeContext_null(struct xtest_session *cs)
{
Do_ADBG_BeginSubCase(cs->c, "FinalizeContext_null");
{
TEEC_FinalizeContext(NULL);
}
Do_ADBG_EndSubCase(cs->c, "FinalizeContext_null");
}
static void InitializeContext_NotExistingTEE(struct xtest_session *cs)
{
Do_ADBG_BeginSubCase(cs->c, "InitializeContext_NotExistingTEE");
{
if (!ADBG_EXPECT_COMPARE_UNSIGNED(cs->c, TEEC_SUCCESS, !=,
TEEC_InitializeContext("Invalid TEE name",
&cs->context)))
TEEC_FinalizeContext(&cs->context);
}
Do_ADBG_EndSubCase(cs->c, "InitializeContext_NotExistingTEE");
}
static void AllocateThenRegister_SameMemory(struct xtest_session *cs)
{
Do_ADBG_BeginSubCase(cs->c, "AllocateThenRegister_SameMemory");
{
TEEC_SharedMemory shm = { };
size_t size_allocation = 32;
if (!ADBG_EXPECT(cs->c, TEEC_SUCCESS,
TEEC_InitializeContext(xtest_tee_name, &cs->context)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(cs->c,
AllocateSharedMemory(&cs->context, &shm,
size_allocation, TEEC_MEM_INPUT)))
goto out_final;
ADBG_EXPECT_TEEC_SUCCESS(cs->c,
RegisterSharedMemory(&cs->context, &shm,
size_allocation, TEEC_MEM_INPUT));
TEEC_ReleaseSharedMemory(&shm);
out_final:
TEEC_FinalizeContext(&cs->context);
}
out:
Do_ADBG_EndSubCase(cs->c, "AllocateThenRegister_SameMemory");
}
static void AllocateSameMemory_twice(struct xtest_session *cs)
{
Do_ADBG_BeginSubCase(cs->c, "AllocateSameMemory_twice");
{
TEEC_SharedMemory shm = { };
size_t size_allocation = 32;
if (!ADBG_EXPECT(cs->c, TEEC_SUCCESS,
TEEC_InitializeContext(xtest_tee_name, &cs->context)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(cs->c,
AllocateSharedMemory(&cs->context, &shm,
size_allocation, TEEC_MEM_INPUT)))
goto out_final;
ADBG_EXPECT_TEEC_SUCCESS(cs->c,
AllocateSharedMemory(&cs->context, &shm,
size_allocation, TEEC_MEM_INPUT));
TEEC_ReleaseSharedMemory(&shm);
out_final:
TEEC_FinalizeContext(&cs->context);
}
out:
Do_ADBG_EndSubCase(cs->c, "AllocateSameMemory_twice");
}
static void RegisterSameMemory_twice(struct xtest_session *cs)
{
Do_ADBG_BeginSubCase(cs->c, "RegisterSameMemory_twice");
{
uint8_t val[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
TEEC_SharedMemory shm = { };
if (!ADBG_EXPECT(cs->c, TEEC_SUCCESS,
TEEC_InitializeContext(xtest_tee_name, &cs->context)))
goto out;
shm.buffer = val;
if (!ADBG_EXPECT_TEEC_SUCCESS(cs->c,
RegisterSharedMemory(&cs->context, &shm, sizeof(val),
TEEC_MEM_INPUT)))
goto out_final;
ADBG_EXPECT_TEEC_SUCCESS(cs->c,
RegisterSharedMemory(&cs->context, &shm, sizeof(val),
TEEC_MEM_INPUT));
TEEC_ReleaseSharedMemory(&shm);
out_final:
TEEC_FinalizeContext(&cs->context);
}
out:
Do_ADBG_EndSubCase(cs->c, "RegisterSameMemory_twice");
}
#ifndef MIN
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#endif
static void Allocate_sharedMemory_32k(struct xtest_session *cs)
{
Do_ADBG_BeginSubCase(cs->c, "Allocate_sharedMemory_32k");
{
size_t size = MIN(32 * 1024,
TEEC_CONFIG_SHAREDMEM_MAX_SIZE);
TEEC_SharedMemory shm = { };
if (!ADBG_EXPECT(cs->c, TEEC_SUCCESS,
TEEC_InitializeContext(xtest_tee_name, &cs->context)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(cs->c,
AllocateSharedMemory(&cs->context, &shm, size,
TEEC_MEM_INPUT)))
goto out_final;
TEEC_ReleaseSharedMemory(&shm);
out_final:
TEEC_FinalizeContext(&cs->context);
}
out:
Do_ADBG_EndSubCase(cs->c, "Allocate_sharedMemory_32k");
}
#define SHM_32K_SIZE MIN(32 * 1024, TEEC_CONFIG_SHAREDMEM_MAX_SIZE)
static void Register_sharedMemory_32k(struct xtest_session *cs)
{
Do_ADBG_BeginSubCase(cs->c, "Register_sharedMemory_32k");
{
uint8_t val[SHM_32K_SIZE] = { };
TEEC_SharedMemory shm = { };
if (!ADBG_EXPECT(cs->c, TEEC_SUCCESS,
TEEC_InitializeContext(xtest_tee_name, &cs->context)))
goto out;
shm.buffer = val;
if (!ADBG_EXPECT_TEEC_SUCCESS(cs->c,
RegisterSharedMemory(&cs->context, &shm, SHM_32K_SIZE,
TEEC_MEM_INPUT)))
goto out_final;
TEEC_ReleaseSharedMemory(&shm);
out_final:
TEEC_FinalizeContext(&cs->context);
}
out:
Do_ADBG_EndSubCase(cs->c, "Register_sharedMemory_32k");
}
static void xtest_teec_TEE(ADBG_Case_t *c)
{
struct xtest_session connection = { c };
CloseSession_null(&connection);
Allocate_In(&connection);
Allocate_out_of_memory(&connection);
OpenSession_error_notExistingTA(&connection);
Allocate_InOut(&connection);
Register_In(&connection);
Register_notZeroLength_Out(&connection);
Register_InOut(&connection);
Register_zeroLength_Out(&connection);
Allocate_Out(&connection);
FinalizeContext_null(&connection);
InitializeContext_NotExistingTEE(&connection);
AllocateThenRegister_SameMemory(&connection);
AllocateSameMemory_twice(&connection);
RegisterSameMemory_twice(&connection);
Allocate_sharedMemory_32k(&connection);
Register_sharedMemory_32k(&connection);
}
ADBG_CASE_DEFINE(regression, 5006, xtest_teec_TEE,
"Tests for Global platform TEEC");

View File

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,760 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2014, Linaro Limited
*/
#include "xtest_test.h"
#include "xtest_helpers.h"
#include <tee_api_defines.h>
#include <tee_api_defines_extensions.h>
#include <tee_api_types.h>
#include <tee_api_compat.h>
#include <utee_defines.h>
#include <string.h>
#include <enc_fs_key_manager_test.h>
#define WITH_HKDF 1
#define WITH_CONCAT_KDF 1
#define WITH_PBKDF2 1
/*
* HKDF test data from RFC 5869
*/
/* A.1 SHA-256 */
static const uint8_t hkdf_a1_ikm[] = {
0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b
};
static const uint8_t hkdf_a1_salt[] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c
};
static const uint8_t hkdf_a1_info[] = {
0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
0xf8, 0xf9
};
static const uint8_t hkdf_a1_okm[] = {
0x3c, 0xb2, 0x5f, 0x25, 0xfa, 0xac, 0xd5, 0x7a,
0x90, 0x43, 0x4f, 0x64, 0xd0, 0x36, 0x2f, 0x2a,
0x2d, 0x2d, 0x0a, 0x90, 0xcf, 0x1a, 0x5a, 0x4c,
0x5d, 0xb0, 0x2d, 0x56, 0xec, 0xc4, 0xc5, 0xbf,
0x34, 0x00, 0x72, 0x08, 0xd5, 0xb8, 0x87, 0x18,
0x58, 0x65
};
/* A.2 SHA-256 */
static const uint8_t hkdf_a2_ikm[] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f
};
static const uint8_t hkdf_a2_salt[] = {
0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf
};
static const uint8_t hkdf_a2_info[] = {
0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff
};
static const uint8_t hkdf_a2_okm[] = {
0xb1, 0x1e, 0x39, 0x8d, 0xc8, 0x03, 0x27, 0xa1,
0xc8, 0xe7, 0xf7, 0x8c, 0x59, 0x6a, 0x49, 0x34,
0x4f, 0x01, 0x2e, 0xda, 0x2d, 0x4e, 0xfa, 0xd8,
0xa0, 0x50, 0xcc, 0x4c, 0x19, 0xaf, 0xa9, 0x7c,
0x59, 0x04, 0x5a, 0x99, 0xca, 0xc7, 0x82, 0x72,
0x71, 0xcb, 0x41, 0xc6, 0x5e, 0x59, 0x0e, 0x09,
0xda, 0x32, 0x75, 0x60, 0x0c, 0x2f, 0x09, 0xb8,
0x36, 0x77, 0x93, 0xa9, 0xac, 0xa3, 0xdb, 0x71,
0xcc, 0x30, 0xc5, 0x81, 0x79, 0xec, 0x3e, 0x87,
0xc1, 0x4c, 0x01, 0xd5, 0xc1, 0xf3, 0x43, 0x4f,
0x1d, 0x87
};
/* A.3 SHA-256 */
#define hkdf_a3_ikm hkdf_a1_ikm
static const uint8_t hkdf_a3_salt[] = {};
static const uint8_t hkdf_a3_info[] = {};
static const uint8_t hkdf_a3_okm[] = {
0x8d, 0xa4, 0xe7, 0x75, 0xa5, 0x63, 0xc1, 0x8f,
0x71, 0x5f, 0x80, 0x2a, 0x06, 0x3c, 0x5a, 0x31,
0xb8, 0xa1, 0x1f, 0x5c, 0x5e, 0xe1, 0x87, 0x9e,
0xc3, 0x45, 0x4e, 0x5f, 0x3c, 0x73, 0x8d, 0x2d,
0x9d, 0x20, 0x13, 0x95, 0xfa, 0xa4, 0xb6, 0x1a,
0x96, 0xc8
};
/* A.4 SHA-1 */
static const uint8_t hkdf_a4_ikm[] = {
0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
0x0b, 0x0b, 0x0b
};
static const uint8_t hkdf_a4_salt[] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c
};
static const uint8_t hkdf_a4_info[] = {
0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
0xf8, 0xf9
};
static const uint8_t hkdf_a4_okm[] = {
0x08, 0x5a, 0x01, 0xea, 0x1b, 0x10, 0xf3, 0x69,
0x33, 0x06, 0x8b, 0x56, 0xef, 0xa5, 0xad, 0x81,
0xa4, 0xf1, 0x4b, 0x82, 0x2f, 0x5b, 0x09, 0x15,
0x68, 0xa9, 0xcd, 0xd4, 0xf1, 0x55, 0xfd, 0xa2,
0xc2, 0x2e, 0x42, 0x24, 0x78, 0xd3, 0x05, 0xf3,
0xf8, 0x96
};
/* A.5 SHA-1 */
#define hkdf_a5_ikm hkdf_a2_ikm
#define hkdf_a5_salt hkdf_a2_salt
#define hkdf_a5_info hkdf_a2_info
static const uint8_t hkdf_a5_okm[] = {
0x0b, 0xd7, 0x70, 0xa7, 0x4d, 0x11, 0x60, 0xf7,
0xc9, 0xf1, 0x2c, 0xd5, 0x91, 0x2a, 0x06, 0xeb,
0xff, 0x6a, 0xdc, 0xae, 0x89, 0x9d, 0x92, 0x19,
0x1f, 0xe4, 0x30, 0x56, 0x73, 0xba, 0x2f, 0xfe,
0x8f, 0xa3, 0xf1, 0xa4, 0xe5, 0xad, 0x79, 0xf3,
0xf3, 0x34, 0xb3, 0xb2, 0x02, 0xb2, 0x17, 0x3c,
0x48, 0x6e, 0xa3, 0x7c, 0xe3, 0xd3, 0x97, 0xed,
0x03, 0x4c, 0x7f, 0x9d, 0xfe, 0xb1, 0x5c, 0x5e,
0x92, 0x73, 0x36, 0xd0, 0x44, 0x1f, 0x4c, 0x43,
0x00, 0xe2, 0xcf, 0xf0, 0xd0, 0x90, 0x0b, 0x52,
0xd3, 0xb4
};
/* A.6 SHA-1 */
#define hkdf_a6_ikm hkdf_a1_ikm
static const uint8_t hkdf_a6_salt[] = {};
static const uint8_t hkdf_a6_info[] = {};
static const uint8_t hkdf_a6_okm[] = {
0x0a, 0xc1, 0xaf, 0x70, 0x02, 0xb3, 0xd7, 0x61,
0xd1, 0xe5, 0x52, 0x98, 0xda, 0x9d, 0x05, 0x06,
0xb9, 0xae, 0x52, 0x05, 0x72, 0x20, 0xa3, 0x06,
0xe0, 0x7b, 0x6b, 0x87, 0xe8, 0xdf, 0x21, 0xd0,
0xea, 0x00, 0x03, 0x3d, 0xe0, 0x39, 0x84, 0xd3,
0x49, 0x18
};
/* A.7 SHA-1 */
static const uint8_t hkdf_a7_ikm[] = {
0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c
};
static const uint8_t hkdf_a7_salt[] = {};
static const uint8_t hkdf_a7_info[] = {};
static const uint8_t hkdf_a7_okm[] = {
0x2c, 0x91, 0x11, 0x72, 0x04, 0xd7, 0x45, 0xf3,
0x50, 0x0d, 0x63, 0x6a, 0x62, 0xf6, 0x4f, 0x0a,
0xb3, 0xba, 0xe5, 0x48, 0xaa, 0x53, 0xd4, 0x23,
0xb0, 0xd1, 0xf2, 0x7e, 0xbb, 0xa6, 0xf5, 0xe5,
0x67, 0x3a, 0x08, 0x1d, 0x70, 0xcc, 0xe7, 0xac,
0xfc, 0x48
};
/*
* Concat KDF (NIST SP 800-56A R1)
*
* Test vector from:
* https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-37
* appendix C
*/
static const uint8_t concat_kdf_1_z[] = {
158, 86, 217, 29, 129, 113, 53, 211,
114, 131, 66, 131, 191, 132, 38, 156,
251, 49, 110, 163, 218, 128, 106, 72,
246, 218, 167, 121, 140, 254, 144, 196
};
static const uint8_t concat_kdf_1_other_info[] = {
0, 0, 0, 7, 65, 49, 50, 56,
71, 67, 77, 0, 0, 0, 5, 65,
108, 105, 99, 101, 0, 0, 0, 3,
66, 111, 98, 0, 0, 0, 128
};
static const uint8_t concat_kdf_1_derived_key[] = {
86, 170, 141, 234, 248, 35, 109, 32,
92, 34, 40, 205, 113, 167, 16, 26
};
/*
* PKCS #5 2.0 / RFC 2898 Key Derivation Function 2 (PBKDF2)
* Test vectors from RFC 6070 https://www.ietf.org/rfc/rfc6070.txt
*/
/* 1 */
static const uint8_t pbkdf2_1_password[] = {
'p', 'a', 's', 's', 'w', 'o', 'r', 'd'
};
static const uint8_t pbkdf2_1_salt[] = {
's', 'a', 'l', 't'
};
#define pbkdf2_1_iteration_count 1
static const uint8_t pbkdf2_1_dkm[] = {
0x0c, 0x60, 0xc8, 0x0f, 0x96, 0x1f, 0x0e, 0x71,
0xf3, 0xa9, 0xb5, 0x24, 0xaf, 0x60, 0x12, 0x06,
0x2f, 0xe0, 0x37, 0xa6
};
/* 2 */
#define pbkdf2_2_password pbkdf2_1_password
#define pbkdf2_2_salt pbkdf2_1_salt
#define pbkdf2_2_iteration_count 2
static const uint8_t pbkdf2_2_dkm[] = {
0xea, 0x6c, 0x01, 0x4d, 0xc7, 0x2d, 0x6f, 0x8c,
0xcd, 0x1e, 0xd9, 0x2a, 0xce, 0x1d, 0x41, 0xf0,
0xd8, 0xde, 0x89, 0x57
};
/* 3 */
#define pbkdf2_3_password pbkdf2_1_password
#define pbkdf2_3_salt pbkdf2_1_salt
#define pbkdf2_3_iteration_count 4096
static const uint8_t pbkdf2_3_dkm[] = {
0x4b, 0x00, 0x79, 0x01, 0xb7, 0x65, 0x48, 0x9a,
0xbe, 0xad, 0x49, 0xd9, 0x26, 0xf7, 0x21, 0xd0,
0x65, 0xa4, 0x29, 0xc1
};
/* 4 */
#define pbkdf2_4_password pbkdf2_1_password
#define pbkdf2_4_salt pbkdf2_1_salt
#define pbkdf2_4_iteration_count 16777216
static const uint8_t pbkdf2_4_dkm[] = {
0xee, 0xfe, 0x3d, 0x61, 0xcd, 0x4d, 0xa4, 0xe4,
0xe9, 0x94, 0x5b, 0x3d, 0x6b, 0xa2, 0x15, 0x8c,
0x26, 0x34, 0xe9, 0x84
};
/* 5 */
static const uint8_t pbkdf2_5_password[] = {
'p', 'a', 's', 's', 'w', 'o', 'r', 'd',
'P', 'A', 'S', 'S', 'W', 'O', 'R', 'D',
'p', 'a', 's', 's', 'w', 'o', 'r', 'd'
};
static const uint8_t pbkdf2_5_salt[] = {
's', 'a', 'l', 't', 'S', 'A', 'L', 'T',
's', 'a', 'l', 't', 'S', 'A', 'L', 'T',
's', 'a', 'l', 't', 'S', 'A', 'L', 'T',
's', 'a', 'l', 't', 'S', 'A', 'L', 'T',
's', 'a', 'l', 't'
};
#define pbkdf2_5_iteration_count 4096
static const uint8_t pbkdf2_5_dkm[] = {
0x3d, 0x2e, 0xec, 0x4f, 0xe4, 0x1c, 0x84, 0x9b,
0x80, 0xc8, 0xd8, 0x36, 0x62, 0xc0, 0xe4, 0x4a,
0x8b, 0x29, 0x1a, 0x96, 0x4c, 0xf2, 0xf0, 0x70,
0x38
};
/* 6 */
static const uint8_t pbkdf2_6_password[] = {
'p', 'a', 's', 's', '\0', 'w', 'o', 'r',
'd',
};
static const uint8_t pbkdf2_6_salt[] = {
's', 'a', '\0', 'l', 't'
};
#define pbkdf2_6_iteration_count 4096
static const uint8_t pbkdf2_6_dkm[] = {
0x56, 0xfa, 0x6a, 0xa7, 0x55, 0x48, 0x09, 0x9d,
0xcc, 0x37, 0xd7, 0xf0, 0x34, 0x25, 0xe0, 0xc3
};
#ifdef WITH_HKDF
static void xtest_test_derivation_hkdf(ADBG_Case_t *c, TEEC_Session *session)
{
size_t n = 0;
#define TEST_HKDF_DATA(section, algo, id, oeb /* omit empty bufs */) \
{ \
section, algo, \
hkdf_##id##_ikm, sizeof(hkdf_##id##_ikm), \
(oeb && !sizeof(hkdf_##id##_salt)) ? NULL : hkdf_##id##_salt, sizeof(hkdf_##id##_salt), \
(oeb && !sizeof(hkdf_##id##_info)) ? NULL : hkdf_##id##_info, sizeof(hkdf_##id##_info), \
hkdf_##id##_okm, sizeof(hkdf_##id##_okm), \
}
static struct hkdf_case {
const char *subcase_name;
uint32_t algo;
const uint8_t *ikm;
size_t ikm_len;
const uint8_t *salt;
size_t salt_len;
const uint8_t *info;
size_t info_len;
const uint8_t *okm;
size_t okm_len;
} hkdf_cases[] = {
TEST_HKDF_DATA("A.1 (SHA-256)",
TEE_ALG_HKDF_SHA256_DERIVE_KEY, a1, false),
TEST_HKDF_DATA("A.2 (SHA-256)",
TEE_ALG_HKDF_SHA256_DERIVE_KEY, a2, false),
TEST_HKDF_DATA("A.3 (SHA-256) [1]",
TEE_ALG_HKDF_SHA256_DERIVE_KEY, a3, false),
TEST_HKDF_DATA("A.3 (SHA-256) [2]",
TEE_ALG_HKDF_SHA256_DERIVE_KEY, a3, true),
TEST_HKDF_DATA("A.4 (SHA-1)",
TEE_ALG_HKDF_SHA1_DERIVE_KEY, a4, false),
TEST_HKDF_DATA("A.5 (SHA-1)",
TEE_ALG_HKDF_SHA1_DERIVE_KEY, a5, false),
TEST_HKDF_DATA("A.6 (SHA-1) [1]",
TEE_ALG_HKDF_SHA1_DERIVE_KEY, a6, false),
TEST_HKDF_DATA("A.6 (SHA-1) [2]",
TEE_ALG_HKDF_SHA1_DERIVE_KEY, a6, true),
TEST_HKDF_DATA("A.7 (SHA-1) [1]",
TEE_ALG_HKDF_SHA1_DERIVE_KEY, a7, false),
TEST_HKDF_DATA("A.7 (SHA-1) [2]",
TEE_ALG_HKDF_SHA1_DERIVE_KEY, a7, true),
};
size_t max_size = 2048;
for (n = 0; n < sizeof(hkdf_cases) / sizeof(struct hkdf_case); n++) {
TEE_OperationHandle op = TEE_HANDLE_NULL;
TEE_ObjectHandle key_handle = TEE_HANDLE_NULL;
TEE_ObjectHandle sv_handle = TEE_HANDLE_NULL;
TEE_Attribute params[4] = { };
size_t param_count = 0;
uint8_t out[2048] = { };
size_t out_size = 0;
const struct hkdf_case *hc = &hkdf_cases[n];
Do_ADBG_BeginSubCase(c, "HKDF RFC 5869 %s", hc->subcase_name);
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_allocate_operation(c, session, &op,
hc->algo, TEE_MODE_DERIVE, max_size)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_allocate_transient_object(c, session,
TEE_TYPE_HKDF_IKM, max_size, &key_handle)))
goto out;
xtest_add_attr(&param_count, params, TEE_ATTR_HKDF_IKM, hc->ikm,
hc->ikm_len);
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_populate_transient_object(c, session,
key_handle, params, param_count)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_set_operation_key(c, session, op,
key_handle)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_free_transient_object(c, session,
key_handle)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_allocate_transient_object(c, session,
TEE_TYPE_GENERIC_SECRET, hc->okm_len * 8,
&sv_handle)))
goto out;
param_count = 0;
if (hc->salt)
xtest_add_attr(&param_count, params, TEE_ATTR_HKDF_SALT,
hc->salt, hc->salt_len);
if (hc->info)
xtest_add_attr(&param_count, params, TEE_ATTR_HKDF_INFO,
hc->info, hc->info_len);
params[param_count].attributeID = TEE_ATTR_HKDF_OKM_LENGTH;
params[param_count].content.value.a = hc->okm_len;
params[param_count].content.value.b = 0;
param_count++;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_derive_key(c, session, op, sv_handle,
params, param_count)))
goto out;
out_size = sizeof(out);
memset(out, 0, sizeof(out));
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_get_object_buffer_attribute(c, session,
sv_handle, TEE_ATTR_SECRET_VALUE, out,
&out_size)))
goto out;
if (!ADBG_EXPECT_BUFFER(c, hc->okm, hc->okm_len, out, out_size))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_free_operation(c, session, op)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_free_transient_object(c, session,
sv_handle)))
goto out;
out:
Do_ADBG_EndSubCase(c, "HKDF RFC 5869 %s", hc->subcase_name);
}
}
#endif /* WITH_HKDF */
#ifdef WITH_CONCAT_KDF
static void xtest_test_derivation_concat_kdf(ADBG_Case_t *c, TEEC_Session *session)
{
size_t n = 0;
#define TEST_CONCAT_KDF_DATA(name, algo, id, oeb /* omit empty bufs */) \
{ \
name, algo, \
concat_kdf_##id##_z, sizeof(concat_kdf_##id##_z), \
(oeb && !sizeof(concat_kdf_##id##_other_info)) ? NULL \
: concat_kdf_##id##_other_info, \
sizeof(concat_kdf_##id##_other_info), \
concat_kdf_##id##_derived_key, sizeof(concat_kdf_##id##_derived_key), \
}
static struct concat_kdf_case {
const char *subcase_name;
uint32_t algo;
const uint8_t *shared_secret;
size_t shared_secret_len;
const uint8_t *other_info;
size_t other_info_len;
const uint8_t *derived_key;
size_t derived_key_len;
} concat_kdf_cases[] = {
TEST_CONCAT_KDF_DATA("JWA-37 C (SHA-256)",
TEE_ALG_CONCAT_KDF_SHA256_DERIVE_KEY, 1, false),
};
size_t max_size = 2048;
for (n = 0;
n < sizeof(concat_kdf_cases) / sizeof(struct concat_kdf_case);
n++) {
TEE_OperationHandle op = TEE_HANDLE_NULL;
TEE_ObjectHandle key_handle = TEE_HANDLE_NULL;
TEE_ObjectHandle sv_handle = TEE_HANDLE_NULL;
TEE_Attribute params[4] = { };
size_t param_count = 0;
uint8_t out[2048] = { };
size_t out_size = 0;
const struct concat_kdf_case *cc = &concat_kdf_cases[n];
Do_ADBG_BeginSubCase(c, "Concat KDF %s", cc->subcase_name);
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_allocate_operation(c, session, &op,
cc->algo, TEE_MODE_DERIVE, max_size)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_allocate_transient_object(c, session,
TEE_TYPE_CONCAT_KDF_Z, max_size, &key_handle)))
goto out;
xtest_add_attr(&param_count, params, TEE_ATTR_CONCAT_KDF_Z,
cc->shared_secret, cc->shared_secret_len);
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_populate_transient_object(c, session,
key_handle, params, param_count)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_set_operation_key(c, session, op,
key_handle)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_free_transient_object(c, session,
key_handle)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_allocate_transient_object(c, session,
TEE_TYPE_GENERIC_SECRET, cc->derived_key_len *
8, &sv_handle)))
goto out;
param_count = 0;
if (cc->other_info)
xtest_add_attr(&param_count, params,
TEE_ATTR_CONCAT_KDF_OTHER_INFO,
cc->other_info, cc->other_info_len);
params[param_count].attributeID = TEE_ATTR_CONCAT_KDF_DKM_LENGTH;
params[param_count].content.value.a = cc->derived_key_len;
params[param_count].content.value.b = 0;
param_count++;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_derive_key(c, session, op, sv_handle,
params, param_count)))
goto out;
out_size = sizeof(out);
memset(out, 0, sizeof(out));
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_get_object_buffer_attribute(c, session,
sv_handle, TEE_ATTR_SECRET_VALUE, out,
&out_size)))
goto out;
if (!ADBG_EXPECT_BUFFER(c, cc->derived_key, cc->derived_key_len,
out, out_size))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_free_operation(c, session, op)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_free_transient_object(c, session,
sv_handle)))
goto out;
out:
Do_ADBG_EndSubCase(c, "Concat KDF %s", cc->subcase_name);
}
}
#endif /* WITH_CONCAT_KDF */
#ifdef WITH_PBKDF2
static void xtest_test_derivation_pbkdf2(ADBG_Case_t *c, TEEC_Session *session)
{
size_t n = 0;
#define TEST_PBKDF2_DATA(level, section, algo, id, oeb /* omit empty bufs */) \
{ \
level, section, algo, \
pbkdf2_##id##_password, sizeof(pbkdf2_##id##_password), \
(oeb && !sizeof(pbkdf2_##id##_salt)) ? NULL : pbkdf2_##id##_salt, sizeof(pbkdf2_##id##_salt), \
pbkdf2_##id##_iteration_count, \
pbkdf2_##id##_dkm, sizeof(pbkdf2_##id##_dkm), \
}
#define _TO_STR(n) #n
#define TO_STR(n) _TO_STR(n)
#define RFC6070_TEST(l, n) \
TEST_PBKDF2_DATA(l, "RFC 6070 " TO_STR(n) " (HMAC-SHA1)", \
TEE_ALG_PBKDF2_HMAC_SHA1_DERIVE_KEY, n, false)
static struct pbkdf2_case {
unsigned int level;
const char *subcase_name;
uint32_t algo;
const uint8_t *password;
size_t password_len;
const uint8_t *salt;
size_t salt_len;
uint32_t iteration_count;
const uint8_t *dkm;
size_t dkm_len;
} pbkdf2_cases[] = {
RFC6070_TEST(0, 1), RFC6070_TEST(0, 2), RFC6070_TEST(0, 3),
RFC6070_TEST(15, 4), /* Lengthy! (2 min on HiKey @1.2GHz) */
RFC6070_TEST(0, 5), RFC6070_TEST(0, 6)
};
size_t max_size = 2048;
for (n = 0; n < sizeof(pbkdf2_cases) / sizeof(struct pbkdf2_case); n++) {
TEE_OperationHandle op = TEE_HANDLE_NULL;
TEE_ObjectHandle key_handle = TEE_HANDLE_NULL;
TEE_ObjectHandle sv_handle = TEE_HANDLE_NULL;
TEE_Attribute params[4] = { };
size_t param_count = 0;
uint8_t out[2048] = { };
size_t out_size = 0;
const struct pbkdf2_case *pc = &pbkdf2_cases[n];
if (pc->level > level)
continue;
Do_ADBG_BeginSubCase(c, "PBKDF2 %s", pc->subcase_name);
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_allocate_operation(c, session, &op,
pc->algo, TEE_MODE_DERIVE, max_size)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_allocate_transient_object(c, session,
TEE_TYPE_PBKDF2_PASSWORD, max_size,
&key_handle)))
goto out;
xtest_add_attr(&param_count, params, TEE_ATTR_PBKDF2_PASSWORD,
pc->password, pc->password_len);
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_populate_transient_object(c, session,
key_handle, params, param_count)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_set_operation_key(c, session, op,
key_handle)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_free_transient_object(c, session,
key_handle)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_allocate_transient_object(c, session,
TEE_TYPE_GENERIC_SECRET, pc->dkm_len * 8,
&sv_handle)))
goto out;
param_count = 0;
if (pc->salt)
xtest_add_attr(&param_count, params,
TEE_ATTR_PBKDF2_SALT, pc->salt,
pc->salt_len);
params[param_count].attributeID = TEE_ATTR_PBKDF2_DKM_LENGTH;
params[param_count].content.value.a = pc->dkm_len;
params[param_count].content.value.b = 0;
param_count++;
params[param_count].attributeID =
TEE_ATTR_PBKDF2_ITERATION_COUNT;
params[param_count].content.value.a = pc->iteration_count;
params[param_count].content.value.b = 0;
param_count++;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_derive_key(c, session, op, sv_handle,
params, param_count)))
goto out;
out_size = sizeof(out);
memset(out, 0, sizeof(out));
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_get_object_buffer_attribute(c, session,
sv_handle, TEE_ATTR_SECRET_VALUE,
out, &out_size)))
goto out;
if (!ADBG_EXPECT_BUFFER(c, pc->dkm, pc->dkm_len, out, out_size))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_free_operation(c, session, op)))
goto out;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
ta_crypt_cmd_free_transient_object(c, session,
sv_handle)))
goto out;
out:
Do_ADBG_EndSubCase(c, "PBKDF2 %s", pc->subcase_name);
}
}
#endif /* WITH_PBKDF2 */
static TEEC_Result enc_fs_km_self_test(TEEC_Session *sess)
{
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
TEEC_Result res = TEEC_ERROR_GENERIC;
uint32_t org = 0;
res = TEEC_InvokeCommand(sess, CMD_SELF_TESTS, &op, &org);
return res;
}
static void xtest_tee_test_8001(ADBG_Case_t *c)
{
TEEC_Session session = { };
uint32_t ret_orig = 0;
if (!ADBG_EXPECT_TEEC_SUCCESS(c,
xtest_teec_open_session(&session, &crypt_user_ta_uuid, NULL,
&ret_orig)))
return;
#ifdef WITH_HKDF
xtest_test_derivation_hkdf(c, &session);
#endif
#ifdef WITH_CONCAT_KDF
xtest_test_derivation_concat_kdf(c, &session);
#endif
#ifdef WITH_PBKDF2
xtest_test_derivation_pbkdf2(c, &session);
#endif
TEEC_CloseSession(&session);
}
ADBG_CASE_DEFINE(regression, 8001, xtest_tee_test_8001,
"Test TEE Internal API key derivation extensions");
/* secure storage key manager self test */
static void xtest_tee_test_8002(ADBG_Case_t *c)
{
TEEC_Result res = TEEC_ERROR_GENERIC;
TEEC_Session sess = { };
uint32_t orig = 0;
res = xtest_teec_open_session(&sess,
&enc_fs_key_manager_test_ta_uuid,
NULL, &orig);
if (res != TEEC_SUCCESS) {
Do_ADBG_Log("Ignore test due to TA does not exist");
return;
}
if (!ADBG_EXPECT_TEEC_SUCCESS(
c, enc_fs_km_self_test(&sess)))
goto exit;
exit:
TEEC_CloseSession(&sess);
}
ADBG_CASE_DEFINE(regression, 8002, xtest_tee_test_8002,
"Secure Storage Key Manager API Self Test");

View File

@@ -0,0 +1,323 @@
// SPDX-License-Identifier: GPL-2.0
/* Copyright (c) 2018, Linaro Limited */
#include "xtest_test.h"
#include "xtest_helpers.h"
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ta_crypt.h>
#include <tee_api_defines.h>
#include <tee_api_types.h>
#include <tee_api_compat.h>
#include <adbg.h>
#ifdef OPENSSL_FOUND
#include <openssl/x509_vfy.h>
#include <openssl/pem.h>
#include <openssl/err.h>
#include <openssl/crypto.h>
#endif
#include "regression_8100_ca_crt.h"
#include "regression_8100_mid_crt.h"
#include "regression_8100_my_crt.h"
#include "regression_8100_my_csr.h"
#ifdef CFG_TA_MBEDTLS
static void test_8101(ADBG_Case_t *c __maybe_unused)
{
#ifdef CFG_TA_MBEDTLS_SELF_TEST
TEEC_Session session = { };
uint32_t ret_orig = 0;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, xtest_teec_open_session(
&session, &crypt_user_ta_uuid,
NULL, &ret_orig)))
return;
ADBG_EXPECT_TEEC_SUCCESS(c,
TEEC_InvokeCommand(&session, TA_CRYPT_CMD_MBEDTLS_SELF_TESTS,
NULL, &ret_orig));
TEEC_CloseSession(&session);
#else
Do_ADBG_Log("CFG_TA_MBEDTLS_SELF_TEST not set, test skipped");
#endif
}
ADBG_CASE_DEFINE(regression, 8101, test_8101, "TA mbedTLS self tests");
static int __printf(2, 3) myasprintf(char **strp, const char *fmt, ...)
{
char *str = NULL;
int rc = 0;
va_list ap;
va_start(ap, fmt);
rc = vsnprintf(str, rc, fmt, ap);
va_end(ap);
if (rc <= 0)
goto out;
str = malloc(rc);
if (!str) {
rc = -1;
goto out;
}
va_start(ap, fmt);
rc = vsnprintf(str, rc, fmt, ap);
va_end(ap);
if (rc <= 0)
free(str);
else
*strp = str;
out:
return rc;
}
static void test_8102(ADBG_Case_t *c)
{
TEEC_Session session = { };
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t ret_orig = 0;
char *chain = NULL;
int clen = 0;
char *trust = NULL;
int tlen = 0;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, xtest_teec_open_session(
&session, &crypt_user_ta_uuid,
NULL, &ret_orig)))
return;
clen = myasprintf(&chain, "%*s\n%*s",
(int)regression_8100_my_crt_size,
regression_8100_my_crt,
(int)regression_8100_mid_crt_size,
regression_8100_mid_crt);
if (!ADBG_EXPECT_COMPARE_SIGNED(c, clen, !=, -1))
goto out;
tlen = myasprintf(&trust, "%*s", (int)regression_8100_ca_crt_size,
regression_8100_ca_crt);
if (!ADBG_EXPECT_COMPARE_SIGNED(c, tlen, !=, -1))
goto out;
op.params[0].tmpref.buffer = chain;
op.params[0].tmpref.size = clen;
op.params[1].tmpref.buffer = trust;
op.params[1].tmpref.size = tlen;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_INPUT,
TEEC_MEMREF_TEMP_INPUT,
TEEC_NONE, TEEC_NONE);
ADBG_EXPECT_TEEC_SUCCESS(c,
TEEC_InvokeCommand(&session, TA_CRYPT_CMD_MBEDTLS_CHECK_CERT,
&op, &ret_orig));
out:
free(chain);
free(trust);
TEEC_CloseSession(&session);
}
ADBG_CASE_DEFINE(regression, 8102, test_8102, "TA mbedTLS test cert chain");
#ifdef OPENSSL_FOUND
static void osslerr(void)
{
while (true) {
unsigned long e = 0;
char b[256] = { };
const char *f = NULL;
int l = 0;
e = ERR_get_error_line(&f, &l);
if (!e)
return;
ERR_error_string_n(e, b, sizeof(b));
Do_ADBG_Log("%s:%d \"%s\"", f, l, b);
}
}
static bool get_cert(ADBG_Case_t *c, const char *crt_str, X509 **crt)
{
bool ret = false;
size_t slen = strlen(crt_str) + 1;
BIO *buf = BIO_new(BIO_s_mem());
size_t b = 0;
if (!ADBG_EXPECT_NOT_NULL(c, buf))
goto out;
b = BIO_write(buf, crt_str, slen);
if (!ADBG_EXPECT_COMPARE_UNSIGNED(c, b, ==, slen))
goto out;
if (!PEM_read_bio_X509(buf, crt, 0, NULL))
goto out;
ret = true;
out:
if (!ret)
osslerr();
BIO_free(buf);
return ret;
}
static bool push_cert(ADBG_Case_t *c, const char *crt_str, STACK_OF(X509) *cs)
{
X509 *crt = NULL;
int rc = 0;
if (!get_cert(c, crt_str, &crt))
return false;
rc = sk_X509_push(cs, crt);
if (!ADBG_EXPECT_COMPARE_SIGNED(c, rc, >, 0)) {
osslerr();
X509_free(crt);
return false;
}
return true;
}
static bool check(ADBG_Case_t *c, STACK_OF(X509) *trusted,
STACK_OF(X509) *untrusted, X509 *crt)
{
bool ret = false;
X509_STORE *store = NULL;
X509_STORE_CTX *csc = NULL;
X509_VERIFY_PARAM *pm = NULL;
int i = 0;
time_t vfy_time = 0;
pm = X509_VERIFY_PARAM_new();
vfy_time = 1526898005; /* Mon, 21 May 2018 10:20:05 +0000 */
X509_VERIFY_PARAM_set_time(pm, vfy_time);
store = X509_STORE_new();
if (!ADBG_EXPECT_NOT_NULL(c, store))
goto out;
X509_STORE_set_flags(store, 0);
if (!ADBG_EXPECT_TRUE(c, X509_STORE_set1_param(store, pm)))
goto out;
csc = X509_STORE_CTX_new();
if (!ADBG_EXPECT_NOT_NULL(c, csc))
goto out;
if (!ADBG_EXPECT_TRUE(c, X509_STORE_CTX_init(csc, store, crt,
untrusted)))
goto out;
X509_STORE_CTX_trusted_stack(csc, trusted);
i = X509_verify_cert(csc);
if (!ADBG_EXPECT_COMPARE_SIGNED(c, i, >, 0))
goto out;
i = X509_STORE_CTX_get_error(csc);
if (!ADBG_EXPECT_COMPARE_SIGNED(c, i, ==, X509_V_OK))
goto out;
ret = true;
out:
if (!ret)
osslerr();
X509_VERIFY_PARAM_free(pm);
X509_STORE_free(store);
X509_STORE_CTX_free(csc);
return ret;
}
static bool verify_cert(ADBG_Case_t *c, const char *ca, const char *mid,
const char *cert)
{
bool ret = false;
STACK_OF(X509) *trusted = NULL;
STACK_OF(X509) *untrusted = NULL;
X509 *crt = NULL;
trusted = sk_X509_new_null();
if (!ADBG_EXPECT_NOT_NULL(c, trusted))
goto out;
untrusted = sk_X509_new_null();
if (!ADBG_EXPECT_NOT_NULL(c, untrusted))
goto out;
if (!ADBG_EXPECT_TRUE(c, get_cert(c, cert, &crt)))
goto out;
if (!ADBG_EXPECT_TRUE(c, push_cert(c, mid, untrusted)))
goto out;
if (!ADBG_EXPECT_TRUE(c, push_cert(c, ca, trusted)))
goto out;
ret = ADBG_EXPECT_TRUE(c, check(c, trusted, untrusted, crt));
out:
if (!ret)
osslerr();
X509_free(crt);
sk_X509_pop_free(untrusted, X509_free);
sk_X509_pop_free(trusted, X509_free);
return ret;
}
#else /*!OPENSSL_FOUND*/
static bool verify_cert(ADBG_Case_t *c, const char *ca,
const char *mid, const char *cert)
{
UNUSED(c);
UNUSED(ca);
UNUSED(mid);
UNUSED(cert);
Do_ADBG_Log("OpenSSL not available, skipping certificate verification");
return true;
}
#endif
static void test_8103(ADBG_Case_t *c)
{
TEEC_Result res = TEEC_ERROR_GENERIC;
TEEC_Session session = { };
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t ret_orig = 0;
char *csr = NULL;
int clen = 0;
char cert[2048];
char chain[4096];
char *ca = NULL;
if (!ADBG_EXPECT_TEEC_SUCCESS(c, xtest_teec_open_session(
&session, &crypt_user_ta_uuid,
NULL, &ret_orig)))
return;
clen = myasprintf(&csr, "%*s", (int)regression_8100_my_csr_size,
regression_8100_my_csr);
if (!ADBG_EXPECT_COMPARE_SIGNED(c, clen, >=, 0))
goto out;
op.params[0].tmpref.buffer = csr;
op.params[0].tmpref.size = clen;
op.params[1].tmpref.buffer = cert;
op.params[1].tmpref.size = sizeof(cert);
op.params[2].tmpref.buffer = chain;
op.params[2].tmpref.size = sizeof(chain);
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_INPUT,
TEEC_MEMREF_TEMP_OUTPUT,
TEEC_MEMREF_TEMP_OUTPUT, TEEC_NONE);
res = TEEC_InvokeCommand(&session, TA_CRYPT_CMD_MBEDTLS_SIGN_CERT, &op,
&ret_orig);
if (!ADBG_EXPECT_TEEC_SUCCESS(c, res))
goto out;
myasprintf(&ca, "%*s", (int)regression_8100_ca_crt_size,
regression_8100_ca_crt);
if (!ADBG_EXPECT_NOT_NULL(c, ca))
goto out;
verify_cert(c, ca, op.params[2].tmpref.buffer,
op.params[1].tmpref.buffer);
out:
free(ca);
free(csr);
TEEC_CloseSession(&session);
}
ADBG_CASE_DEFINE(regression, 8103, test_8103,
"TA mbedTLS process certificate request");
#endif /*CFG_TA_MBEDTLS*/

View File

@@ -0,0 +1,698 @@
// SPDX-License-Identifier: BSD-2-Clause
/*
* Copyright (c) 2016, Linaro Limited
* All rights reserved.
*/
#include <err.h>
#include <fcntl.h>
#include <pta_invoke_tests.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <tee_client_api.h>
#include <tee_client_api_extensions.h>
#include <unistd.h>
#include "crypto_common.h"
#include "sdp_basic.h"
#include "xtest_helpers.h"
#include "xtest_test.h"
/*
* SDP basic test setup overview.
*
* - A dedicated trusted application (SDP basic TA) supports 3 commands:
* - 'inject' data from a nonsecure buffer into a secure buffer
* - 'transform' data inside a secure buffer (bitwise invert + unsigned incr)
* - 'dump' data from a secure buffer into a nonsecure buffer
* - This test client application (CA) invokes the TA for these 3 operations,
* inject random value, trasforming them then dump them.
*
* To do so, CA allocates a 'SDP secure buffer' and invoke the TA for these 3
* operations (inject then transform then dump) over the allocate buffer.
*
* The secure buffer is currently allocation through ION support adn
* registered to OP-TEE and as shared memory.
*
* To enhance test coverage against buffer alignement usecase, the CA invokes
* the TA with a variable offset inside the buffer. As CA injects random data
* into the buffer, the CA uses one of the random bytes to set the value of the
* offset in the accessed secure buffer.
*
* For debugging support, the CA may map (in nonsecure world) the secure
* buffer to read its content. As this is unsafe on a hardened platform, this
* operation is default disable. When enable, error only print out a warning
* trace but does not actually fail the test. This also give an easy way to
* check that some HW complains on access violation when nonsecure accesses
* secure data.
*/
struct tee_ctx {
TEEC_Context ctx;
TEEC_Session sess;
};
int allocate_dma_buffer(size_t size, const char *heap_name, int verbosity)
{
const char *default_dev = DEFAULT_HEAP_NAME;
char *mem_sec_dev = (char *)default_dev;
struct dma_heap_allocation_data data = { 0 };
int fd_mem_sec;
int fd = -1;
if (heap_name != NULL)
mem_sec_dev = (char *)heap_name;
fd_mem_sec = open(mem_sec_dev, O_RDWR | O_SYNC);
if (fd_mem_sec == -1) {
fprintf(stderr, "Error: failed to open %s\n", mem_sec_dev);
verbose("Seems no DMA buf heap is available.\n");
return -1;
}
data.len = size;
data.fd_flags = O_RDWR | O_CLOEXEC;
data.heap_flags = 0;
if (ioctl(fd_mem_sec, DMA_HEAP_IOCTL_ALLOC, &data) == -1) {
fprintf(stderr, "Error: DMA buf allocate API failed\n");
goto out;
}
fd = data.fd;
out:
close(fd_mem_sec);
return fd;
}
static void finalize_tee_ctx(struct tee_ctx *ctx)
{
if (!ctx)
return;
TEEC_CloseSession(&ctx->sess);
TEEC_FinalizeContext(&ctx->ctx);
}
static int create_tee_ctx(struct tee_ctx *ctx, enum test_target_ta target_ta)
{
TEEC_Result teerc = TEEC_ERROR_GENERIC;
const TEEC_UUID *uuid = NULL;
uint32_t err_origin = 0;
switch (target_ta) {
case TEST_NS_TO_TA:
case TEST_TA_TO_TA:
case TEST_TA_TO_PTA:
uuid = &sdp_basic_ta_uuid;
break;
case TEST_NS_TO_PTA:
uuid = &pta_invoke_tests_ta_uuid;
break;
default:
return -1;
}
teerc = TEEC_InitializeContext(NULL, &ctx->ctx);
if (teerc != TEEC_SUCCESS)
return -1;
teerc = TEEC_OpenSession(&ctx->ctx, &ctx->sess, uuid,
TEEC_LOGIN_PUBLIC, NULL, NULL, &err_origin);
if (teerc != TEEC_SUCCESS) {
fprintf(stderr, "Error: open session to target test %s failed %x %d\n",
(target_ta == TEST_NS_TO_PTA) ? "pTA" : "TA",
teerc, err_origin);
TEEC_FinalizeContext(&ctx->ctx);
}
return (teerc == TEEC_SUCCESS) ? 0 : -1;
}
static int tee_register_buffer(struct tee_ctx *ctx, void **shm_ref, int fd)
{
TEEC_Result teerc = TEEC_ERROR_GENERIC;
TEEC_SharedMemory *shm = malloc(sizeof(*shm));
if (!shm)
return 1;
shm->flags = TEEC_MEM_INPUT | TEEC_MEM_OUTPUT;
teerc = TEEC_RegisterSharedMemoryFileDescriptor(&ctx->ctx, shm, fd);
if (teerc != TEEC_SUCCESS) {
fprintf(stderr, "Error: TEEC_RegisterMemoryFileDescriptor() failed %x\n",
teerc);
return 1;
}
*shm_ref = shm;
return 0;
}
static void tee_deregister_buffer(struct tee_ctx *ctx, void *shm_ref)
{
(void)ctx;
if (!shm_ref)
return;
TEEC_ReleaseSharedMemory((TEEC_SharedMemory *)shm_ref);
free(shm_ref);
}
static int inject_sdp_data(struct tee_ctx *ctx,
void *in, size_t offset, size_t len, void *shm_ref, int ind)
{
TEEC_SharedMemory *shm = (TEEC_SharedMemory *)shm_ref;
TEEC_Result teerc = TEEC_ERROR_GENERIC;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t err_origin = 0;
unsigned int cmd = 0;
switch (ind) {
case TEST_NS_TO_TA:
cmd = TA_SDP_BASIC_CMD_INJECT;
break;
case TEST_TA_TO_TA:
cmd = TA_SDP_BASIC_CMD_INVOKE_INJECT;
break;
case TEST_TA_TO_PTA:
cmd = TA_SDP_BASIC_CMD_PTA_INJECT;
break;
case TEST_NS_TO_PTA:
cmd = PTA_INVOKE_TESTS_CMD_COPY_NSEC_TO_SEC;
break;
default:
return -1;
}
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_INPUT,
TEEC_MEMREF_PARTIAL_OUTPUT,
TEEC_NONE, TEEC_NONE);
op.params[0].tmpref.buffer = in;
op.params[0].tmpref.size = len;
op.params[1].memref.parent = shm;
op.params[1].memref.size = len;
op.params[1].memref.offset = offset;
teerc = TEEC_InvokeCommand(&ctx->sess, cmd, &op, &err_origin);
if (teerc != TEEC_SUCCESS)
fprintf(stderr, "Error: invoke SDP test TA (inject) failed %x %d\n",
teerc, err_origin);
return (teerc == TEEC_SUCCESS) ? 0 : -1;
}
static int transform_sdp_data(struct tee_ctx *ctx,
size_t offset, size_t len, void *shm_ref, int ind)
{
TEEC_SharedMemory *shm = (TEEC_SharedMemory *)shm_ref;
TEEC_Result teerc = TEEC_ERROR_GENERIC;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t err_origin = 0;
unsigned int cmd = 0;
switch (ind) {
case TEST_NS_TO_TA:
cmd = TA_SDP_BASIC_CMD_TRANSFORM;
break;
case TEST_TA_TO_TA:
cmd = TA_SDP_BASIC_CMD_INVOKE_TRANSFORM;
break;
case TEST_TA_TO_PTA:
cmd = TA_SDP_BASIC_CMD_PTA_TRANSFORM;
break;
case TEST_NS_TO_PTA:
cmd = PTA_INVOKE_TESTS_CMD_READ_MODIFY_SEC;
break;
default:
return -1;
}
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_PARTIAL_INOUT,
TEEC_NONE, TEEC_NONE, TEEC_NONE);
op.params[0].memref.parent = shm;
op.params[0].memref.size = len;
op.params[0].memref.offset = offset;
teerc = TEEC_InvokeCommand(&ctx->sess, cmd, &op, &err_origin);
if (teerc != TEEC_SUCCESS)
fprintf(stderr, "Error: invoke SDP test TA (transform) failed %x %d\n",
teerc, err_origin);
return (teerc == TEEC_SUCCESS) ? 0 : -1;
}
static int dump_sdp_data(struct tee_ctx *ctx,
void *out, size_t offset, size_t len, void *shm_ref, int ind)
{
TEEC_SharedMemory *shm = (TEEC_SharedMemory *)shm_ref;
TEEC_Result teerc = TEEC_ERROR_GENERIC;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t err_origin = 0;
unsigned int cmd = 0;
switch (ind) {
case TEST_NS_TO_TA:
cmd = TA_SDP_BASIC_CMD_DUMP;
break;
case TEST_TA_TO_TA:
cmd = TA_SDP_BASIC_CMD_INVOKE_DUMP;
break;
case TEST_TA_TO_PTA:
cmd = TA_SDP_BASIC_CMD_PTA_DUMP;
break;
case TEST_NS_TO_PTA:
cmd = PTA_INVOKE_TESTS_CMD_COPY_SEC_TO_NSEC;
break;
default:
return -1;
}
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_PARTIAL_INPUT,
TEEC_MEMREF_TEMP_OUTPUT,
TEEC_NONE, TEEC_NONE);
op.params[0].memref.parent = shm;
op.params[0].memref.size = len;
op.params[0].memref.offset = offset;
op.params[1].tmpref.buffer = out;
op.params[1].tmpref.size = len;
teerc = TEEC_InvokeCommand(&ctx->sess, cmd, &op, &err_origin);
if (teerc != TEEC_SUCCESS)
fprintf(stderr, "Error: invoke SDP test TA (dump) failed %x %d\n",
teerc, err_origin);
return (teerc == TEEC_SUCCESS) ? 0 : -1;
}
static int check_sdp_dumped(struct tee_ctx *ctx, void *ref, size_t len,
void *out)
{
char *bref = (char *)ref;
char *data = (char *)out;
int err = 0;
(void)ctx;
while(len--)
if (*data++ != (unsigned char)(~(*bref++) + 1))
err++;
return err;
}
/*
* Consider 32kByte + 1 of random data is sufficient for an accurate test
* whatever the test buffer size is. Random buffer is read as a ring buffer.
*/
#define RANDOM_BUFFER_SIZE (32 * 1024 + 1)
static int get_random_bytes(char *out, size_t len)
{
static char *rand_buf = NULL;
static size_t rand_idx = 0;
int rc = 0;
if (!rand_buf) {
const char rand_dev[] = "/dev/urandom";
int fd = 0;
rand_buf = malloc(RANDOM_BUFFER_SIZE);
if (!rand_buf) {
fprintf(stderr, "failed to random buffer memory (%d bytes)\n",
RANDOM_BUFFER_SIZE);
return -1;
}
fd = open(rand_dev, O_RDONLY);
if (fd < 0) {
fprintf(stderr, "failed to open %s\n", rand_dev);
return -1;
}
rc = read(fd, rand_buf, RANDOM_BUFFER_SIZE);
if (rc != RANDOM_BUFFER_SIZE) {
fprintf(stderr, "failed to read %d bytes from %s\n",
RANDOM_BUFFER_SIZE, rand_dev);
close(fd);
return -1;
}
close(fd);
}
while (len) {
size_t t_len = (RANDOM_BUFFER_SIZE < len) ? RANDOM_BUFFER_SIZE : len;
if ((rand_idx + t_len) > RANDOM_BUFFER_SIZE) {
int sz_end = RANDOM_BUFFER_SIZE - rand_idx;
int sz_beg = t_len - sz_end;
memcpy(out, rand_buf + rand_idx, sz_end);
memcpy(out + sz_end, rand_buf , sz_beg);
rand_idx = sz_beg;
} else {
memcpy(out, rand_buf + rand_idx, t_len);
rand_idx += t_len;
}
len -= t_len;
}
return 0;
}
int sdp_basic_test(enum test_target_ta ta, size_t size, size_t loop,
const char *heap_name, int rnd_offset, int verbosity)
{
struct tee_ctx *ctx = NULL;
unsigned char *test_buf = NULL;
unsigned char *ref_buf = NULL;
void *shm_ref = NULL;
unsigned int err = 1;
int fd = -1;
size_t sdp_size = size;
size_t offset = 0;
size_t loop_cnt = 0;
if (!loop) {
fprintf(stderr, "Error: null loop value\n");
return 1;
}
/* reduce size to enable offset tests (max offset is 255 bytes) */
if (rnd_offset)
size -= 255;
test_buf = malloc(size);
ref_buf = malloc(size);
if (!test_buf || !ref_buf) {
verbose("failed to allocate memory\n");
goto bail1;
}
fd = allocate_buffer(sdp_size, heap_name, verbosity);
if (fd < 0) {
verbose("Failed to allocate SDP buffer (%zu bytes) in %s: %d\n",
sdp_size, heap_name, fd);
goto bail1;
}
/* register secure buffer to TEE */
ctx = malloc(sizeof(*ctx));
if (!ctx)
goto bail1;
if (create_tee_ctx(ctx, ta))
goto bail1;
if (tee_register_buffer(ctx, &shm_ref, fd))
goto bail2;
/* release registered fd: tee should still hold refcount on resource */
close(fd);
fd = -1;
/* invoke trusted application with secure buffer as memref parameter */
for (loop_cnt = loop; loop_cnt; loop_cnt--) {
/* get an buffer of random-like values */
if (get_random_bytes((char *)ref_buf, size))
goto bail2;
memcpy(test_buf, ref_buf, size);
/* random offset [0 255] */
offset = (unsigned int)*ref_buf;
/* TA writes into SDP buffer */
if (inject_sdp_data(ctx, test_buf, offset, size, shm_ref, ta))
goto bail2;
/* TA reads/writes into SDP buffer */
if (transform_sdp_data(ctx, offset, size, shm_ref, ta))
goto bail2;
/* TA reads into SDP buffer */
if (dump_sdp_data(ctx, test_buf, offset, size, shm_ref, ta))
goto bail2;
/* check dumped data are the expected ones */
if (check_sdp_dumped(ctx, ref_buf, size, test_buf)) {
fprintf(stderr, "check SDP data: %d errors\n", err);
goto bail2;
}
}
err = 0;
bail2:
if (fd >= 0)
close(fd);
if (shm_ref)
tee_deregister_buffer(ctx, shm_ref);
finalize_tee_ctx(ctx);
bail1:
free(ctx);
free(ref_buf);
free(test_buf);
return err;
}
static int invoke_out_of_bounds(struct tee_ctx *ctx,
TEEC_SharedMemory *in, TEEC_SharedMemory *out,
size_t offset, size_t size,
bool valid_ref, int verbosity)
{
TEEC_Result teerc = TEEC_ERROR_GENERIC;
TEEC_Operation op = TEEC_OPERATION_INITIALIZER;
uint32_t orig = 0;
op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_PARTIAL_INPUT,
TEEC_MEMREF_PARTIAL_OUTPUT,
TEEC_NONE, TEEC_NONE);
op.params[0].memref.parent = in;
op.params[0].memref.offset = 0;
op.params[0].memref.size = size;
op.params[1].memref.parent = out;
op.params[1].memref.offset = offset;
op.params[1].memref.size = size;
teerc = TEEC_InvokeCommand(&ctx->sess, TA_SDP_BASIC_CMD_INJECT,
&op, &orig);
/*
* Invocation with invalid references should be nicely rejected by
* the TEE.
* Invocation with valid references should reach the TA, whatever
* result is.
*/
if ((valid_ref && orig != TEEC_ORIGIN_TRUSTED_APP) ||
(!valid_ref && ((orig == TEEC_ORIGIN_TRUSTED_APP) ||
(teerc != TEEC_ERROR_GENERIC &&
teerc != TEEC_ERROR_BAD_PARAMETERS))))
goto error;
verbose("Out of bounds memref test successful:\n");
verbose("Shm size 0x%zx, offset 0x%zx/size 0x%zx: %s/0x%x from %s\n",
out->size, offset, size,
Do_ADBG_GetEnumName(teerc, ADBG_EnumTable_TEEC_Result), teerc,
Do_ADBG_GetEnumName(orig, ADBG_EnumTable_TEEC_ErrorOrigin));
return 0;
error:
fprintf(stderr, "Out of bounds memref test FAILURE:\n");
fprintf(stderr,
"Shm size 0x%zx, offset 0x%zx/size 0x%zx: %s/0x%x from %s\n",
out->size, offset, size,
Do_ADBG_GetEnumName(teerc, ADBG_EnumTable_TEEC_Result), teerc,
Do_ADBG_GetEnumName(orig, ADBG_EnumTable_TEEC_ErrorOrigin));
return 1;
}
int sdp_out_of_bounds_memref_test(size_t size, const char *heap_name,
int verbosity)
{
struct tee_ctx ctx = { };
int err = 0;
int fd = -1;
TEEC_Result teerc = TEEC_ERROR_GENERIC;
TEEC_SharedMemory in = { };
TEEC_SharedMemory *out = NULL;
if (create_tee_ctx(&ctx, TEST_NS_TO_TA))
return -1;
fd = allocate_buffer(size, heap_name, verbosity);
if (fd < 0) {
verbose("SDP alloc failed (%zu bytes) in %s: %d\n",
size, heap_name, fd);
err = 1;
goto bail;
}
if (tee_register_buffer(&ctx, (void **)&out, fd)) {
err = 1;
goto bail;
}
/*
* The ION driver will decide how much SDP memory is being allocated.
* Rely on this size to test out of bounds reference cases.
*/
size = out->size;
in.size = size;
in.flags = TEEC_MEM_INPUT;
teerc = TEEC_AllocateSharedMemory(&ctx.ctx, &in);
if (teerc) {
verbose("failed to allocate memory\n");
goto bail;
}
if (verbosity) {
/* Valid case: reference inside allocated buffer: last byte */
err += invoke_out_of_bounds(&ctx, &in, out, size - 1, 1,
true, verbosity);
}
/* Reference overflows allocated buffer by 1 byte */
err += invoke_out_of_bounds(&ctx, &in, out, size - 1, 2,
false, verbosity);
/* Reference oveflows allocated buffer by more than 4kB byte */
err += invoke_out_of_bounds(&ctx, &in, out, size - 1, 5000,
false, verbosity);
/* Offset exceeds allocated buffer size value by 1 byte */
err += invoke_out_of_bounds(&ctx, &in, out, size, 1,
false, verbosity);
/* Offset exceeds allocated size value by 4kByte */
err += invoke_out_of_bounds(&ctx, &in, out, size, 4096,
false, verbosity);
/* Offset + size overflows offset value */
err += invoke_out_of_bounds(&ctx, &in, out, 2, ~0,
false, verbosity);
TEEC_ReleaseSharedMemory(&in);
bail:
tee_deregister_buffer(&ctx, out);
if (fd >= 0)
close(fd);
finalize_tee_ctx(&ctx);
return err;
}
#define _TO_STR(x) #x
#define TO_STR(x) _TO_STR(x)
static void usage(const char *applet_optname, size_t size, int loop,
const char *heap_name)
{
fprintf(stderr, "Usage: %s %s [OPTION]\n", xtest_progname, applet_optname);
fprintf(stderr,
"Testing basic accesses to secure buffer (SDP) on OP-TEE.\n"
"Allocates a secure buffer and invoke a TA to access it.\n"
"TA is used to init/transform/dump the secure buffer.\n"
"CA check dumped content.\n\n");
fprintf(stderr, "Options:\n");
fprintf(stderr, " -h|--help Print this help and exit\n");
fprintf(stderr, " -v Be verbose\n");
fprintf(stderr, " -s SIZE SDP buffer byte size [%zu]\n", size);
fprintf(stderr, " -n LOOP Test loop iterations [%u]\n", loop);
fprintf(stderr, " --heap-name NAME Target heap name [%s]\n", heap_name);
fprintf(stderr, " --no-offset No random offset [0 255] in buffer\n");
}
#define NEXT_ARG(i) \
do { \
if (++i == argc) { \
fprintf(stderr, "%s %s: %s: missing argument\n", \
xtest_progname, argv[0], argv[i-1]); \
return 1; \
} \
} while (0);
#define CHECK_RESULT(_res, _exp, _action) \
if ((_res) == (_exp)) { \
verbose("Test passed\n"); \
} else { \
verbose("Test failed!\n"); \
_action; \
}
int sdp_basic_runner_cmd_parser(int argc, char *argv[])
{
size_t test_size = 5000;
size_t test_loop = 1000;
const char *heap_name = DEFAULT_HEAP_NAME;
int rnd_offset = 1;
int verbosity = 1;
int err = 0;
int i = 0;
/* Parse command line */
for (i = 1; i < argc; i++) {
if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) {
usage(argv[0], test_size, test_loop, heap_name);
return 0;
}
}
for (i = 1; i < argc; i++) {
if (!strcmp(argv[i], "-v")) {
verbosity++;
} else if (!strcmp(argv[i], "-s")) {
NEXT_ARG(i);
test_size = atoi(argv[i]);
} else if (!strcmp(argv[i], "-n")) {
NEXT_ARG(i);
test_loop = atoi(argv[i]);
} else if (!strcmp(argv[i], "--heap-name")) {
NEXT_ARG(i);
heap_name = argv[i];
} else if (!strcmp(argv[i], "--no-offset")) {
rnd_offset = 0;
} else {
fprintf(stderr, "%s %s: invalid argument: %s\n",
xtest_progname, argv[0], argv[i]);
usage(argv[0], test_size, test_loop, heap_name);
return 1;
}
}
verbose("\nSecure Data Path basic access: "
"NS invokes SDP TA\n");
err = sdp_basic_test(TEST_NS_TO_TA, test_size, test_loop, heap_name,
rnd_offset, verbosity);
CHECK_RESULT(err, 0, return 1);
verbose("\nSecure Data Path basic access: "
"SDP TA invokes SDP TA\n");
err = sdp_basic_test(TEST_TA_TO_TA, test_size, test_loop, heap_name,
rnd_offset, verbosity);
CHECK_RESULT(err, 0, return 1);
verbose("\nSecure Data Path basic access: "
"SDP TA invokes SDP pTA\n");
err = sdp_basic_test(TEST_TA_TO_PTA, test_size, test_loop, heap_name,
rnd_offset, verbosity);
CHECK_RESULT(err, 0, return 1);
verbose("\nSecure Data Path basic access: "
"NS invokes SDP pTA (shall fail)\n");
err = sdp_basic_test(TEST_NS_TO_PTA, test_size, test_loop, heap_name,
rnd_offset, verbosity);
CHECK_RESULT(err, 1, return 1);
verbose("\nSecure Data Path basic access: "
"Invoke TA with out of bounds buffer references\n");
err = sdp_out_of_bounds_memref_test(test_size, heap_name, verbosity);
CHECK_RESULT(err, 0, return 1);
return 0;
}

View File

@@ -0,0 +1,37 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* Copyright (c) 2017, Linaro Limited
* All rights reserved.
*/
#ifndef XTEST_SDP_BASIC_H
#define XTEST_SDP_BASIC_H
#include <linux/dma-buf.h>
#include <linux/version.h>
#include <linux/dma-heap.h>
#define DEFAULT_HEAP_NAME "/dev/dma_heap/sdp"
#include "ta_sdp_basic.h"
enum test_target_ta {
TEST_NS_TO_TA,
TEST_NS_TO_PTA,
TEST_TA_TO_TA,
TEST_TA_TO_PTA,
};
int allocate_dma_buffer(size_t size, const char *heap_name, int verbosity);
static inline int allocate_buffer(size_t size, const char *heap_name,
int verbosity)
{
return allocate_dma_buffer(size, heap_name, verbosity);
}
int sdp_basic_test(enum test_target_ta ta,
size_t size, size_t loop, const char *heap_name,
int rnd_offset, int verbosity);
int sdp_out_of_bounds_memref_test(size_t size, const char *heap_name,
int verbosity);
#endif /* XTEST_SDP_BASIC_H */

View File

@@ -0,0 +1,396 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2016, Linaro Limited
*/
#include <sys/types.h>
#include <stdbool.h>
#include <arpa/inet.h>
#include <err.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <netdb.h>
#include <netinet/in.h>
#include <poll.h>
#include <sys/socket.h>
#include <unistd.h>
#include "sock_server.h"
struct server_state {
struct sock_state *socks;
struct pollfd *fds;
nfds_t nfds;
bool got_quit;
struct sock_io_cb *cb;
};
#define SOCK_BUF_SIZE 512
struct sock_state {
bool (*cb)(struct server_state *srvst, size_t idx);
struct sock_server_bind *serv;
};
static bool server_io_cb(struct server_state *srvst, size_t idx)
{
short revents = srvst->fds[idx].revents;
short *events = &srvst->fds[idx].events;
struct sock_io_cb *cb = srvst->cb;
int fd = 0;
fd = srvst->fds[idx].fd;
if (revents & POLLIN) {
if (!cb->read)
*events &= ~POLLIN;
else if (!cb->read(cb->ptr, fd, events))
goto close;
}
if (revents & POLLOUT) {
if (!cb->write)
*events &= ~POLLOUT;
else if (!cb->write(cb->ptr, fd, events))
goto close;
}
if (!(revents & ~(POLLIN | POLLOUT)))
return true;
close:
if (close(fd)) {
warn("server_io_cb: close(%d)", fd);
return false;
}
srvst->fds[idx].fd = -1;
return true;
}
static bool server_add_state(struct server_state *srvst,
bool (*cb)(struct server_state *srvst, size_t idx),
struct sock_server_bind *serv, int fd,
short poll_events)
{
void *p = NULL;
size_t n = 0;
for (n = 0; n < srvst->nfds; n++) {
if (srvst->fds[n].fd == -1) {
srvst->socks[n].cb = cb;
srvst->socks[n].serv = serv;
srvst->fds[n].fd = fd;
srvst->fds[n].events = poll_events;
srvst->fds[n].revents = 0;
return true;
}
}
p = realloc(srvst->socks, sizeof(*srvst->socks) * (srvst->nfds + 1));
if (!p)
return false;
srvst->socks = p;
srvst->socks[srvst->nfds].cb = cb;
srvst->socks[srvst->nfds].serv = serv;
p = realloc(srvst->fds, sizeof(*srvst->fds) * (srvst->nfds + 1));
if (!p)
return false;
srvst->fds = p;
srvst->fds[srvst->nfds].fd = fd;
srvst->fds[srvst->nfds].events = poll_events;
srvst->fds[srvst->nfds].revents = 0;
srvst->nfds++;
return true;
}
static bool tcp_server_accept_cb(struct server_state *srvst, size_t idx)
{
short revents = srvst->fds[idx].revents;
struct sockaddr_storage sass = { };
struct sockaddr *sa = (struct sockaddr *)&sass;
socklen_t len = sizeof(sass);
int fd = 0;
short io_events = POLLIN | POLLOUT;
if (!(revents & POLLIN))
return false;
fd = accept(srvst->fds[idx].fd, sa, &len);
if (fd == -1) {
if (errno == EAGAIN || errno == EWOULDBLOCK ||
errno == ECONNABORTED)
return true;
return false;
}
if (srvst->cb->accept &&
!srvst->cb->accept(srvst->cb->ptr, fd, &io_events)) {
if (close(fd))
warn("server_accept_cb: close(%d)", fd);
return true;
}
return server_add_state(srvst, server_io_cb, srvst->socks[idx].serv,
fd, io_events);
}
static bool udp_server_cb(struct server_state *srvst, size_t idx)
{
short revents = srvst->fds[idx].revents;
if (!(revents & POLLIN))
return false;
return srvst->cb->accept(srvst->cb->ptr, srvst->fds[idx].fd, NULL);
}
static bool server_quit_cb(struct server_state *srvst, size_t idx)
{
(void)idx;
srvst->got_quit = true;
return true;
}
static void sock_server(struct sock_server *ts,
bool (*cb)(struct server_state *srvst, size_t idx))
{
struct server_state srvst = { .cb = ts->cb };
int pres = 0;
size_t n = 0;
char b = 0;
sock_server_lock(ts);
for (n = 0; n < ts->num_binds; n++) {
if (!server_add_state(&srvst, cb, ts->bind + n,
ts->bind[n].fd, POLLIN))
goto bad;
}
if (!server_add_state(&srvst, server_quit_cb, NULL,
ts->quit_fd, POLLIN))
goto bad;
while (true) {
sock_server_unlock(ts);
/*
* First sleep 5 ms to make it easier to test send timeouts
* due to this rate limit.
*/
poll(NULL, 0, 5);
pres = poll(srvst.fds, srvst.nfds, -1);
sock_server_lock(ts);
if (pres < 0)
goto bad;
for (n = 0; pres && n < srvst.nfds; n++) {
if (srvst.fds[n].revents) {
pres--;
if (!srvst.socks[n].cb(&srvst, n))
goto bad;
}
}
if (srvst.got_quit)
goto out;
}
bad:
ts->error = true;
out:
for (n = 0; n < srvst.nfds; n++) {
/* Don't close accept and quit fds */
if (srvst.fds[n].fd != -1 && srvst.socks[n].serv &&
srvst.fds[n].fd != srvst.socks[n].serv->fd) {
if (close(srvst.fds[n].fd))
warn("sock_server: close(%d)", srvst.fds[n].fd);
}
}
free(srvst.socks);
free(srvst.fds);
if (read(ts->quit_fd, &b, 1) != 1)
ts->error = true;
sock_server_unlock(ts);
}
static void *sock_server_stream(void *arg)
{
sock_server(arg, tcp_server_accept_cb);
return NULL;
}
static void *sock_server_dgram(void *arg)
{
sock_server(arg, udp_server_cb);
return NULL;
}
static void sock_server_add_fd(struct sock_server *ts, struct addrinfo *ai)
{
struct sock_server_bind serv = { };
struct sockaddr_storage sass = { };
struct sockaddr *sa = (struct sockaddr *)&sass;
struct sockaddr_in *sain = (struct sockaddr_in *)&sass;
struct sockaddr_in6 *sain6 = (struct sockaddr_in6 *)&sass;
void *src = NULL;
socklen_t len = sizeof(sass);
struct sock_server_bind *p = NULL;
serv.fd = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
if (serv.fd < 0)
return;
if (bind(serv.fd, ai->ai_addr, ai->ai_addrlen))
goto bad;
if (ai->ai_socktype == SOCK_STREAM && listen(serv.fd, 5))
goto bad;
if (getsockname(serv.fd, sa, &len))
goto bad;
switch (sa->sa_family) {
case AF_INET:
src = &sain->sin_addr;
serv.port = ntohs(sain->sin_port);
break;
case AF_INET6:
src = &sain6->sin6_addr;
serv.port = ntohs(sain6->sin6_port);
default:
goto bad;
}
if (!inet_ntop(sa->sa_family, src, serv.host, sizeof(serv.host)))
goto bad;
p = realloc(ts->bind, sizeof(*p) * (ts->num_binds + 1));
if (!p)
goto bad;
ts->bind = p;
p[ts->num_binds] = serv;
ts->num_binds++;
return;
bad:
if (close(serv.fd))
warn("sock_server_add_fd: close(%d)", serv.fd);
}
void sock_server_uninit(struct sock_server *ts)
{
size_t n = 0;
int e = 0;
if (ts->stop_fd != -1) {
if (close(ts->stop_fd))
warn("sock_server_uninit: close(%d)", ts->stop_fd);
ts->stop_fd = -1;
e = pthread_join(ts->thr, NULL);
if (e)
warnx("sock_server_uninit: pthread_join: %s",
strerror(e));
}
e = pthread_mutex_destroy(&ts->mu);
if (e)
warnx("sock_server_uninit: pthread_mutex_destroy: %s",
strerror(e));
for (n = 0; n < ts->num_binds; n++)
if (close(ts->bind[n].fd))
warn("sock_server_uninit: close(%d)", ts->bind[n].fd);
free(ts->bind);
if (ts->quit_fd != -1 && close(ts->quit_fd))
warn("sock_server_uninit: close(%d)", ts->quit_fd);
memset(ts, 0, sizeof(*ts));
ts->quit_fd = -1;
ts->stop_fd = -1;
}
static bool sock_server_init(struct sock_server *ts, struct sock_io_cb *cb,
int socktype)
{
struct addrinfo hints = { };
struct addrinfo *ai = NULL;
struct addrinfo *ai0 = NULL;
int fd_pair[2] = { };
int e = 0;
memset(ts, 0, sizeof(*ts));
ts->quit_fd = -1;
ts->stop_fd = -1;
ts->cb = cb;
e = pthread_mutex_init(&ts->mu, NULL);
if (e) {
warnx("sock_server_init: pthread_mutex_init: %s", strerror(e));
return false;
}
hints.ai_flags = AI_PASSIVE;
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = socktype;
if (getaddrinfo(NULL, "0", &hints, &ai0))
return false;
for (ai = ai0; ai; ai = ai->ai_next)
sock_server_add_fd(ts, ai);
freeaddrinfo(ai0);
if (!ts->num_binds)
return false;
if (pipe(fd_pair)) {
sock_server_uninit(ts);
return false;
}
ts->quit_fd = fd_pair[0];
if (socktype == SOCK_STREAM)
e = pthread_create(&ts->thr, NULL, sock_server_stream, ts);
else
e = pthread_create(&ts->thr, NULL, sock_server_dgram, ts);
if (e) {
warnx("sock_server_init: pthread_create: %s", strerror(e));
if (close(fd_pair[1]))
warn("sock_server_init: close(%d)", fd_pair[1]);
sock_server_uninit(ts);
return false;
}
ts->stop_fd = fd_pair[1];
return true;
}
bool sock_server_init_tcp(struct sock_server *sock_serv, struct sock_io_cb *cb)
{
return sock_server_init(sock_serv, cb, SOCK_STREAM);
}
bool sock_server_init_udp(struct sock_server *sock_serv, struct sock_io_cb *cb)
{
return sock_server_init(sock_serv, cb, SOCK_DGRAM);
}
void sock_server_lock(struct sock_server *ts)
{
int e = pthread_mutex_lock(&ts->mu);
if (e)
errx(1, "sock_server_lock: pthread_mutex_lock: %s", strerror(e));
}
void sock_server_unlock(struct sock_server *ts)
{
int e = pthread_mutex_unlock(&ts->mu);
if (e)
errx(1, "sock_server_unlock: pthread_mutex_unlock: %s",
strerror(e));
}

View File

@@ -0,0 +1,43 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2016, Linaro Limited
*/
#ifndef XTEST_SOCK_SERVER_H
#define XTEST_SOCK_SERVER_H
#include <pthread.h>
#include <stdbool.h>
#include <sys/types.h>
struct sock_server_bind {
int fd;
char host[255];
int port;
};
struct sock_server {
struct sock_server_bind *bind;
size_t num_binds;
int quit_fd;
int stop_fd;
pthread_t thr;
pthread_mutex_t mu;
bool error;
struct sock_io_cb *cb;
};
struct sock_io_cb {
bool (*accept)(void *ptr, int fd, short *events);
bool (*read)(void *ptr, int fd, short *events);
bool (*write)(void *ptr, int fd, short *events);
void *ptr;
};
bool sock_server_init_tcp(struct sock_server *sock_serv, struct sock_io_cb *cb);
bool sock_server_init_udp(struct sock_server *sock_serv, struct sock_io_cb *cb);
void sock_server_uninit(struct sock_server *sock_serv);
void sock_server_lock(struct sock_server *sock_serv);
void sock_server_unlock(struct sock_server *sock_serv);
#endif /*XTEST_SOCK_SERVER_H*/

Some files were not shown because too many files have changed in this diff Show More