project_name: wolfcrypt_test package: platform quality: experimental label: wolfSSL - wolfCrypt test and benchmark (EFR32xG25) description: > Runs the wolfCrypt algorithm self-test and benchmark on an EFR32xG25, with crypto routed to the Secure Element through the wolfSSL crypto callback port (WOLFSSL_SILABS_CRYPTOCB). Output goes to the kit VCOM. category: Example|Platform filter: - name: "Device Type" value: ["SoC"] - name: "MCU" value: ["32-bit MCU"] - name: "Project Difficulty" value: ["Advanced"] source: - path: app.c - path: ../../../wolfssl/wolfcrypt/src/aes.c - path: ../../../wolfssl/wolfcrypt/src/arc4.c - path: ../../../wolfssl/wolfcrypt/src/ascon.c - path: ../../../wolfssl/wolfcrypt/src/asn.c - path: ../../../wolfssl/wolfcrypt/src/async.c - path: ../../../wolfssl/wolfcrypt/src/blake2b.c - path: ../../../wolfssl/wolfcrypt/src/blake2s.c - path: ../../../wolfssl/wolfcrypt/src/camellia.c - path: ../../../wolfssl/wolfcrypt/src/chacha.c - path: ../../../wolfssl/wolfcrypt/src/chacha20_poly1305.c - path: ../../../wolfssl/wolfcrypt/src/cmac.c - path: ../../../wolfssl/wolfcrypt/src/coding.c - path: ../../../wolfssl/wolfcrypt/src/compress.c - path: ../../../wolfssl/wolfcrypt/src/cpuid.c - path: ../../../wolfssl/wolfcrypt/src/cryptocb.c - path: ../../../wolfssl/wolfcrypt/src/curve25519.c - path: ../../../wolfssl/wolfcrypt/src/curve448.c - path: ../../../wolfssl/wolfcrypt/src/des3.c - path: ../../../wolfssl/wolfcrypt/src/dh.c - path: ../../../wolfssl/wolfcrypt/src/dsa.c - path: ../../../wolfssl/wolfcrypt/src/ecc.c - path: ../../../wolfssl/wolfcrypt/src/eccsi.c - path: ../../../wolfssl/wolfcrypt/src/ed25519.c - path: ../../../wolfssl/wolfcrypt/src/ed448.c - path: ../../../wolfssl/wolfcrypt/src/error.c - path: ../../../wolfssl/wolfcrypt/src/falcon.c - path: ../../../wolfssl/wolfcrypt/src/fe_448.c - path: ../../../wolfssl/wolfcrypt/src/fe_low_mem.c - path: ../../../wolfssl/wolfcrypt/src/fe_operations.c - path: ../../../wolfssl/wolfcrypt/src/fips.c - path: ../../../wolfssl/wolfcrypt/src/fips_test.c - path: ../../../wolfssl/wolfcrypt/src/ge_448.c - path: ../../../wolfssl/wolfcrypt/src/ge_low_mem.c - path: ../../../wolfssl/wolfcrypt/src/ge_operations.c - path: ../../../wolfssl/wolfcrypt/src/hash.c - path: ../../../wolfssl/wolfcrypt/src/hmac.c - path: ../../../wolfssl/wolfcrypt/src/hpke.c - path: ../../../wolfssl/wolfcrypt/src/integer.c - path: ../../../wolfssl/wolfcrypt/src/kdf.c - path: ../../../wolfssl/wolfcrypt/src/logging.c - path: ../../../wolfssl/wolfcrypt/src/md2.c - path: ../../../wolfssl/wolfcrypt/src/md4.c - path: ../../../wolfssl/wolfcrypt/src/md5.c - path: ../../../wolfssl/wolfcrypt/src/memory.c - path: ../../../wolfssl/wolfcrypt/src/pkcs12.c - path: ../../../wolfssl/wolfcrypt/src/pkcs7.c - path: ../../../wolfssl/wolfcrypt/src/poly1305.c - path: ../../../wolfssl/wolfcrypt/src/puf.c - path: ../../../wolfssl/wolfcrypt/src/pwdbased.c - path: ../../../wolfssl/wolfcrypt/src/random.c - path: ../../../wolfssl/wolfcrypt/src/rc2.c - path: ../../../wolfssl/wolfcrypt/src/ripemd.c - path: ../../../wolfssl/wolfcrypt/src/rng_bank.c - path: ../../../wolfssl/wolfcrypt/src/rsa.c - path: ../../../wolfssl/wolfcrypt/src/sakke.c - path: ../../../wolfssl/wolfcrypt/src/selftest.c - path: ../../../wolfssl/wolfcrypt/src/sha.c - path: ../../../wolfssl/wolfcrypt/src/sha256.c - path: ../../../wolfssl/wolfcrypt/src/sha3.c - path: ../../../wolfssl/wolfcrypt/src/sha512.c - path: ../../../wolfssl/wolfcrypt/src/signature.c - path: ../../../wolfssl/wolfcrypt/src/siphash.c - path: ../../../wolfssl/wolfcrypt/src/sm2.c - path: ../../../wolfssl/wolfcrypt/src/sm3.c - path: ../../../wolfssl/wolfcrypt/src/sm4.c - path: ../../../wolfssl/wolfcrypt/src/sp_arm32.c - path: ../../../wolfssl/wolfcrypt/src/sp_arm64.c - path: ../../../wolfssl/wolfcrypt/src/sp_armthumb.c - path: ../../../wolfssl/wolfcrypt/src/sp_c32.c - path: ../../../wolfssl/wolfcrypt/src/sp_c64.c - path: ../../../wolfssl/wolfcrypt/src/sp_cortexm.c - path: ../../../wolfssl/wolfcrypt/src/sp_int.c - path: ../../../wolfssl/wolfcrypt/src/sp_riscv64.c - path: ../../../wolfssl/wolfcrypt/src/sp_sm2_arm32.c - path: ../../../wolfssl/wolfcrypt/src/sp_sm2_arm64.c - path: ../../../wolfssl/wolfcrypt/src/sp_sm2_armthumb.c - path: ../../../wolfssl/wolfcrypt/src/sp_sm2_c32.c - path: ../../../wolfssl/wolfcrypt/src/sp_sm2_c64.c - path: ../../../wolfssl/wolfcrypt/src/sp_sm2_cortexm.c - path: ../../../wolfssl/wolfcrypt/src/sp_sm2_riscv64.c - path: ../../../wolfssl/wolfcrypt/src/sp_sm2_x86_64.c - path: ../../../wolfssl/wolfcrypt/src/sp_x86_64.c - path: ../../../wolfssl/wolfcrypt/src/srp.c - path: ../../../wolfssl/wolfcrypt/src/tfm.c - path: ../../../wolfssl/wolfcrypt/src/tsp.c - path: ../../../wolfssl/wolfcrypt/src/wc_encrypt.c - path: ../../../wolfssl/wolfcrypt/src/wc_frodokem.c - path: ../../../wolfssl/wolfcrypt/src/wc_frodokem_mat.c - path: ../../../wolfssl/wolfcrypt/src/wc_lms.c - path: ../../../wolfssl/wolfcrypt/src/wc_lms_impl.c - path: ../../../wolfssl/wolfcrypt/src/wc_mldsa.c - path: ../../../wolfssl/wolfcrypt/src/wc_mlkem.c - path: ../../../wolfssl/wolfcrypt/src/wc_mlkem_poly.c - path: ../../../wolfssl/wolfcrypt/src/wc_pkcs11.c - path: ../../../wolfssl/wolfcrypt/src/wc_port.c - path: ../../../wolfssl/wolfcrypt/src/wc_she.c - path: ../../../wolfssl/wolfcrypt/src/wc_slhdsa.c - path: ../../../wolfssl/wolfcrypt/src/wc_xmss.c - path: ../../../wolfssl/wolfcrypt/src/wc_xmss_impl.c - path: ../../../wolfssl/wolfcrypt/src/wolfcrypt_first.c - path: ../../../wolfssl/wolfcrypt/src/wolfcrypt_last.c - path: ../../../wolfssl/wolfcrypt/src/wolfentropy.c - path: ../../../wolfssl/wolfcrypt/src/wolfevent.c - path: ../../../wolfssl/wolfcrypt/src/wolfmath.c - path: ../../../wolfssl/src/internal.c - path: ../../../wolfssl/src/keys.c - path: ../../../wolfssl/src/ssl.c - path: ../../../wolfssl/src/tls.c - path: ../../../wolfssl/src/tls13.c - path: ../../../wolfssl/src/wolfio.c - path: tls13_test.c - path: ../../../wolfssl/wolfcrypt/src/port/arm/thumb2-aes-asm_c.c - path: ../../../wolfssl/wolfcrypt/src/port/arm/thumb2-sha256-asm_c.c - path: ../../../wolfssl/wolfcrypt/src/port/arm/thumb2-sha512-asm_c.c - path: ../../../wolfssl/wolfcrypt/src/port/arm/thumb2-chacha-asm_c.c - path: ../../../wolfssl/wolfcrypt/src/port/arm/thumb2-poly1305-asm_c.c - path: ../../../wolfssl/wolfcrypt/src/port/silabs/silabs_aes.c - path: ../../../wolfssl/wolfcrypt/src/port/silabs/silabs_cb_cipher.c - path: ../../../wolfssl/wolfcrypt/src/port/silabs/silabs_cb_cmac.c - path: ../../../wolfssl/wolfcrypt/src/port/silabs/silabs_cb_hash.c - path: ../../../wolfssl/wolfcrypt/src/port/silabs/silabs_cb_kdf.c - path: ../../../wolfssl/wolfcrypt/src/port/silabs/silabs_cb_pk.c - path: ../../../wolfssl/wolfcrypt/src/port/silabs/silabs_cb_rng.c - path: ../../../wolfssl/wolfcrypt/src/port/silabs/silabs_cryptocb.c - path: ../../../wolfssl/wolfcrypt/src/port/silabs/silabs_ecc.c - path: ../../../wolfssl/wolfcrypt/src/port/silabs/silabs_hash.c - path: ../../../wolfssl/wolfcrypt/src/port/silabs/silabs_key.c - path: ../../../wolfssl/wolfcrypt/src/port/silabs/silabs_random.c - path: ../../../wolfssl/wolfcrypt/test/test.c - path: ../../../wolfssl/wolfcrypt/benchmark/benchmark.c include: - path: . file_list: - path: user_settings.h - path: ../../../wolfssl file_list: - path: wolfssl/wolfcrypt/settings.h readme: - path: README.md component: - id: se_manager - id: sl_main - id: device_init - id: clock_manager - id: printf - id: iostream_retarget_stdio - id: iostream_recommended_stream - id: sleeptimer - id: sl_string - id: status_string requires: - name: device_has_semailbox configuration: - name: SL_STATUS_STRING_ENABLE_BLUETOOTH value: 0 - name: SL_STATUS_STRING_ENABLE_WIFI value: 0 - name: SL_BOARD_ENABLE_VCOM value: 1 # wolfcrypt_test exercises deep call chains (ECC, RSA, ASN.1). The part has # 512 KB of RAM and the app uses about 2 KB of static data, so spend some of it # on stack rather than risk an overflow mid-test. - name: SL_STACK_SIZE value: 32768 - name: SL_IOSTREAM_USART_VCOM_FLOW_CONTROL_TYPE value: usartHwFlowControlNone define: - name: WOLFSSL_USER_SETTINGS toolchain_settings: - option: optimize value: speed