mirror of
git://nv-tegra.nvidia.com/tegra/optee-src/nv-optee.git
synced 2025-12-22 09:22:04 +03:00
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:
21
optee/optee_test/.github/issue_template.md
vendored
Normal file
21
optee/optee_test/.github/issue_template.md
vendored
Normal 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.
|
||||
-->
|
||||
19
optee/optee_test/.github/pull_request_template.md
vendored
Normal file
19
optee/optee_test/.github/pull_request_template.md
vendored
Normal 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.
|
||||
-->
|
||||
36
optee/optee_test/.github/workflows/ci.yml
vendored
Normal file
36
optee/optee_test/.github/workflows/ci.yml
vendored
Normal 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
|
||||
28
optee/optee_test/.github/workflows/stale_issue.yml
vendored
Normal file
28
optee/optee_test/.github/workflows/stale_issue.yml
vendored
Normal 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
173
optee/optee_test/Android.mk
Normal 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
|
||||
34
optee/optee_test/CMakeLists.txt
Normal file
34
optee/optee_test/CMakeLists.txt
Normal 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)
|
||||
3
optee/optee_test/CMakeToolchain.txt
Normal file
3
optee/optee_test/CMakeToolchain.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
set (CMAKE_SYSTEM_NAME Linux)
|
||||
|
||||
set (CMAKE_SYSTEM_PROCESSOR arm)
|
||||
5
optee/optee_test/LICENSE.md
Normal file
5
optee/optee_test/LICENSE.md
Normal 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
95
optee/optee_test/Makefile
Normal 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
|
||||
10
optee/optee_test/README.md
Normal file
10
optee/optee_test/README.md
Normal 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
|
||||
20
optee/optee_test/cert/README.txt
Normal file
20
optee/optee_test/cert/README.txt
Normal 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
|
||||
21
optee/optee_test/cert/ca.crt
Normal file
21
optee/optee_test/cert/ca.crt
Normal 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-----
|
||||
27
optee/optee_test/cert/ca.key
Normal file
27
optee/optee_test/cert/ca.key
Normal 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-----
|
||||
1
optee/optee_test/cert/ca.srl
Normal file
1
optee/optee_test/cert/ca.srl
Normal file
@@ -0,0 +1 @@
|
||||
B7C435A31BDC8BEF
|
||||
14
optee/optee_test/cert/mid.conf
Normal file
14
optee/optee_test/cert/mid.conf
Normal 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
|
||||
19
optee/optee_test/cert/mid.crt
Normal file
19
optee/optee_test/cert/mid.crt
Normal 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-----
|
||||
17
optee/optee_test/cert/mid.csr
Normal file
17
optee/optee_test/cert/mid.csr
Normal 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-----
|
||||
1
optee/optee_test/cert/mid.ext
Normal file
1
optee/optee_test/cert/mid.ext
Normal file
@@ -0,0 +1 @@
|
||||
basicConstraints=CA:TRUE,pathlen:1
|
||||
28
optee/optee_test/cert/mid.key
Normal file
28
optee/optee_test/cert/mid.key
Normal 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-----
|
||||
1
optee/optee_test/cert/mid.srl
Normal file
1
optee/optee_test/cert/mid.srl
Normal file
@@ -0,0 +1 @@
|
||||
F16A44AAA2D04980
|
||||
13
optee/optee_test/cert/my.conf
Normal file
13
optee/optee_test/cert/my.conf
Normal 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
|
||||
19
optee/optee_test/cert/my.crt
Normal file
19
optee/optee_test/cert/my.crt
Normal 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-----
|
||||
17
optee/optee_test/cert/my.csr
Normal file
17
optee/optee_test/cert/my.csr
Normal 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-----
|
||||
28
optee/optee_test/cert/my.key
Normal file
28
optee/optee_test/cert/my.key
Normal 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-----
|
||||
11
optee/optee_test/host/supp_plugin/CMakeLists.txt
Normal file
11
optee/optee_test/host/supp_plugin/CMakeLists.txt
Normal 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})
|
||||
24
optee/optee_test/host/supp_plugin/Makefile
Normal file
24
optee/optee_test/host/supp_plugin/Makefile
Normal 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/
|
||||
17
optee/optee_test/host/supp_plugin/include/test_supp_plugin.h
Normal file
17
optee/optee_test/host/supp_plugin/include/test_supp_plugin.h
Normal 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 */
|
||||
93
optee/optee_test/host/supp_plugin/test_supp_plugin.c
Normal file
93
optee/optee_test/host/supp_plugin/test_supp_plugin.c
Normal 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,
|
||||
};
|
||||
149
optee/optee_test/host/xtest/CMakeLists.txt
Normal file
149
optee/optee_test/host/xtest/CMakeLists.txt
Normal 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})
|
||||
339
optee/optee_test/host/xtest/LICENSE
Normal file
339
optee/optee_test/host/xtest/LICENSE
Normal 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.
|
||||
234
optee/optee_test/host/xtest/Makefile
Normal file
234
optee/optee_test/host/xtest/Makefile
Normal 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)
|
||||
259
optee/optee_test/host/xtest/adbg/include/adbg.h
Normal file
259
optee/optee_test/host/xtest/adbg/include/adbg.h
Normal 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 */
|
||||
358
optee/optee_test/host/xtest/adbg/src/adbg_case.c
Normal file
358
optee/optee_test/host/xtest/adbg/src/adbg_case.c
Normal 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;
|
||||
}
|
||||
50
optee/optee_test/host/xtest/adbg/src/adbg_enum.c
Normal file
50
optee/optee_test/host/xtest/adbg/src/adbg_enum.c
Normal 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
|
||||
*************************************************************************/
|
||||
282
optee/optee_test/host/xtest/adbg/src/adbg_expect.c
Normal file
282
optee/optee_test/host/xtest/adbg/src/adbg_expect.c
Normal 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;
|
||||
}
|
||||
76
optee/optee_test/host/xtest/adbg/src/adbg_int.h
Normal file
76
optee/optee_test/host/xtest/adbg/src/adbg_int.h
Normal 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 */
|
||||
80
optee/optee_test/host/xtest/adbg/src/adbg_log.c
Normal file
80
optee/optee_test/host/xtest/adbg/src/adbg_log.c
Normal 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
|
||||
************************************************************************/
|
||||
267
optee/optee_test/host/xtest/adbg/src/adbg_run.c
Normal file
267
optee/optee_test/host/xtest/adbg/src/adbg_run.c
Normal 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;
|
||||
}
|
||||
239
optee/optee_test/host/xtest/adbg/src/security_utils_hex.c
Normal file
239
optee/optee_test/host/xtest/adbg/src/security_utils_hex.c
Normal 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
|
||||
*************************************************************************/
|
||||
118
optee/optee_test/host/xtest/adbg/src/security_utils_hex.h
Normal file
118
optee/optee_test/host/xtest/adbg/src/security_utils_hex.h
Normal 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*/
|
||||
@@ -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
|
||||
},
|
||||
@@ -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
|
||||
},
|
||||
966
optee/optee_test/host/xtest/asym_perf.c
Normal file
966
optee/optee_test/host/xtest/asym_perf.c
Normal 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(¶m_count, params, TEE_ATTR_DH_PRIME,
|
||||
keygen_dh_p, BITS_TO_BYTES(width_bits));
|
||||
xtest_add_attr(¶m_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(¶m_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);
|
||||
}
|
||||
145
optee/optee_test/host/xtest/benchmark_1000.c
Normal file
145
optee/optee_test/host/xtest/benchmark_1000.c
Normal 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)");
|
||||
97
optee/optee_test/host/xtest/benchmark_2000.c
Normal file
97
optee/optee_test/host/xtest/benchmark_2000.c
Normal 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)");
|
||||
58
optee/optee_test/host/xtest/clear_storage.c
Normal file
58
optee/optee_test/host/xtest/clear_storage.c
Normal 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;
|
||||
}
|
||||
11
optee/optee_test/host/xtest/clear_storage.h
Normal file
11
optee/optee_test/host/xtest/clear_storage.h
Normal 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*/
|
||||
53
optee/optee_test/host/xtest/crypto_common.h
Normal file
53
optee/optee_test/host/xtest/crypto_common.h
Normal 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 */
|
||||
534
optee/optee_test/host/xtest/ffa_spmc_1000.c
Normal file
534
optee/optee_test/host/xtest/ffa_spmc_1000.c
Normal 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");
|
||||
137
optee/optee_test/host/xtest/gp/TEE.xsl
Normal file
137
optee/optee_test/host/xtest/gp/TEE.xsl
Normal 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>&</xsl:text><xsl:value-of select="./@name" />
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<!--xsl:text>&</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>
|
||||
133
optee/optee_test/host/xtest/gp/TEE_Crypto_API.xsl
Normal file
133
optee/optee_test/host/xtest/gp/TEE_Crypto_API.xsl
Normal 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>&</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>&</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>
|
||||
148
optee/optee_test/host/xtest/gp/TEE_DataStorage_API.xsl
Normal file
148
optee/optee_test/host/xtest/gp/TEE_DataStorage_API.xsl
Normal 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>&</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>&</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>
|
||||
140
optee/optee_test/host/xtest/gp/TEE_Internal_API.xsl
Normal file
140
optee/optee_test/host/xtest/gp/TEE_Internal_API.xsl
Normal 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>&</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>&</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>
|
||||
151
optee/optee_test/host/xtest/gp/TEE_TimeArithm_API.xsl
Normal file
151
optee/optee_test/host/xtest/gp/TEE_TimeArithm_API.xsl
Normal 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>&</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>&</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>
|
||||
378
optee/optee_test/host/xtest/gp/include/xml_client_api.h
Normal file
378
optee/optee_test/host/xtest/gp/include/xml_client_api.h
Normal 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_ */
|
||||
281
optee/optee_test/host/xtest/gp/include/xml_common_api.h
Normal file
281
optee/optee_test/host/xtest/gp/include/xml_common_api.h
Normal 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_ */
|
||||
3589
optee/optee_test/host/xtest/gp/include/xml_crypto_api.h
Normal file
3589
optee/optee_test/host/xtest/gp/include/xml_crypto_api.h
Normal file
File diff suppressed because it is too large
Load Diff
2017
optee/optee_test/host/xtest/gp/include/xml_datastorage_api.h
Normal file
2017
optee/optee_test/host/xtest/gp/include/xml_datastorage_api.h
Normal file
File diff suppressed because it is too large
Load Diff
733
optee/optee_test/host/xtest/gp/include/xml_internal_api.h
Normal file
733
optee/optee_test/host/xtest/gp/include/xml_internal_api.h
Normal 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_ */
|
||||
1003
optee/optee_test/host/xtest/gp/include/xml_timearithm_api.h
Normal file
1003
optee/optee_test/host/xtest/gp/include/xml_timearithm_api.h
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
38
optee/optee_test/host/xtest/gp/patches/0008-TEE.xml.patch
Normal file
38
optee/optee_test/host/xtest/gp/patches/0008-TEE.xml.patch
Normal 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
|
||||
|
||||
@@ -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 task’s 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
|
||||
|
||||
@@ -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 handle’s 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 handle’s 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 handle’s 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 handle’s 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 handle’s 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 handle’s 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 handle’s 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 handle’s 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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
26
optee/optee_test/host/xtest/gp/prepare_suite.sh
Normal file
26
optee/optee_test/host/xtest/gp/prepare_suite.sh
Normal 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
|
||||
496
optee/optee_test/host/xtest/hash_perf.c
Normal file
496
optee/optee_test/host/xtest/hash_perf.c
Normal 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;
|
||||
}
|
||||
@@ -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 */
|
||||
156
optee/optee_test/host/xtest/install_ta.c
Normal file
156
optee/optee_test/host/xtest/install_ta.c
Normal 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;
|
||||
}
|
||||
12
optee/optee_test/host/xtest/install_ta.h
Normal file
12
optee/optee_test/host/xtest/install_ta.h
Normal 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*/
|
||||
10518
optee/optee_test/host/xtest/nist/186-2ecdsatestvectors.h
Normal file
10518
optee/optee_test/host/xtest/nist/186-2ecdsatestvectors.h
Normal file
File diff suppressed because it is too large
Load Diff
18471
optee/optee_test/host/xtest/nist/186-3dsatestvectors.h
Normal file
18471
optee/optee_test/host/xtest/nist/186-3dsatestvectors.h
Normal file
File diff suppressed because it is too large
Load Diff
11245
optee/optee_test/host/xtest/nist/ecccdhtestvectors.h
Normal file
11245
optee/optee_test/host/xtest/nist/ecccdhtestvectors.h
Normal file
File diff suppressed because it is too large
Load Diff
10019
optee/optee_test/host/xtest/pkcs11_1000.c
Normal file
10019
optee/optee_test/host/xtest/pkcs11_1000.c
Normal file
File diff suppressed because it is too large
Load Diff
12
optee/optee_test/host/xtest/pkcs11_1000.h
Normal file
12
optee/optee_test/host/xtest/pkcs11_1000.h
Normal 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*/
|
||||
117
optee/optee_test/host/xtest/rand_stream.c
Normal file
117
optee/optee_test/host/xtest/rand_stream.c
Normal 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;
|
||||
}
|
||||
20
optee/optee_test/host/xtest/rand_stream.h
Normal file
20
optee/optee_test/host/xtest/rand_stream.h
Normal 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*/
|
||||
3363
optee/optee_test/host/xtest/regression_1000.c
Normal file
3363
optee/optee_test/host/xtest/regression_1000.c
Normal file
File diff suppressed because it is too large
Load Diff
929
optee/optee_test/host/xtest/regression_2000.c
Normal file
929
optee/optee_test/host/xtest/regression_2000.c
Normal 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");
|
||||
6200
optee/optee_test/host/xtest/regression_4000.c
Normal file
6200
optee/optee_test/host/xtest/regression_4000.c
Normal file
File diff suppressed because it is too large
Load Diff
9070
optee/optee_test/host/xtest/regression_4000_data.h
Normal file
9070
optee/optee_test/host/xtest/regression_4000_data.h
Normal file
File diff suppressed because it is too large
Load Diff
2770
optee/optee_test/host/xtest/regression_4100.c
Normal file
2770
optee/optee_test/host/xtest/regression_4100.c
Normal file
File diff suppressed because it is too large
Load Diff
515
optee/optee_test/host/xtest/regression_5000.c
Normal file
515
optee/optee_test/host/xtest/regression_5000.c
Normal 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");
|
||||
2318
optee/optee_test/host/xtest/regression_6000.c
Normal file
2318
optee/optee_test/host/xtest/regression_6000.c
Normal file
File diff suppressed because it is too large
Load Diff
760
optee/optee_test/host/xtest/regression_8000.c
Normal file
760
optee/optee_test/host/xtest/regression_8000.c
Normal 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(¶m_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(¶m_count, params, TEE_ATTR_HKDF_SALT,
|
||||
hc->salt, hc->salt_len);
|
||||
if (hc->info)
|
||||
xtest_add_attr(¶m_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(¶m_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(¶m_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(¶m_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(¶m_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");
|
||||
323
optee/optee_test/host/xtest/regression_8100.c
Normal file
323
optee/optee_test/host/xtest/regression_8100.c
Normal 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*/
|
||||
698
optee/optee_test/host/xtest/sdp_basic.c
Normal file
698
optee/optee_test/host/xtest/sdp_basic.c
Normal 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;
|
||||
}
|
||||
37
optee/optee_test/host/xtest/sdp_basic.h
Normal file
37
optee/optee_test/host/xtest/sdp_basic.h
Normal 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 */
|
||||
396
optee/optee_test/host/xtest/sock_server.c
Normal file
396
optee/optee_test/host/xtest/sock_server.c
Normal 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));
|
||||
}
|
||||
43
optee/optee_test/host/xtest/sock_server.h
Normal file
43
optee/optee_test/host/xtest/sock_server.h
Normal 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
Reference in New Issue
Block a user