|
|
2 лет назад | |
|---|---|---|
| .. | ||
| main | 2 лет назад | |
| CMakeLists.txt | 2 лет назад | |
| README.md | 2 лет назад | |
| pytest_crypto.py | 2 лет назад | |
| sdkconfig.defaults | 2 лет назад | |
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
|---|
This is a combined crypto peripherals verification application using mostly HAL APIs. This application is intentionally kept simple and does not use any higher layer constructs. This application can help in the early verification of the new SoC.
This contains tests for the following features of the crypto peripherals:
MPI peripheral
ECC peripheral
If the hardware supports extended work modes then it also tests:
HMAC periperhal
DS peripheral
ECDSA peripheral
AES peripheral
SHA peripheral
NOTE: The verification tests for the HMAC and Digital Signature peripherals would get exercised in only in an FPGA environment.
Burning the HMAC key
The HMAC tests need an HMAC key to be burned in the BLOCK_KEY3 and BLOCK_KEY4 of the efuses. As this verification application is independent of the efuse component, the user needs to manually burn the keys and their key purposes using espefuse.py.
espefuse.py -p $ESPPORT burn_key BLOCK_KEY3 main/hmac/hmac_key.bin HMAC_DOWN_JTAG
espefuse.py -p $ESPPORT burn_key BLOCK_KEY4 main/hmac/hmac_key.bin HMAC_UP
The tests needs some HMAC keys to be burned in the BLOCK_KEY1, BLOCK_KEY2 and BLOCK_KEY3 of the efuses. As this verification application is independent of the efuse component, the user needs to manually burn the keys and their key purposes using espefuse.py.
If SOC_DS_SIGNATURE_MAX_BIT_LEN == 3072:
espefuse.py -p $ESPPORT burn_key BLOCK_KEY1 main/ds/keys/3072/ds_key1.bin HMAC_DOWN_DIGITAL_SIGNATURE
espefuse.py -p $ESPPORT burn_key BLOCK_KEY2 main/ds/keys/3072/ds_key2.bin HMAC_DOWN_DIGITAL_SIGNATURE
espefuse.py -p $ESPPORT burn_key BLOCK_KEY3 main/ds/keys/3072/ds_key3.bin HMAC_DOWN_DIGITAL_SIGNATURE
If SOC_DS_SIGNATURE_MAX_BIT_LEN == 4096:
espefuse.py -p $ESPPORT burn_key BLOCK_KEY1 main/ds/keys/4096/ds_key1.bin HMAC_DOWN_DIGITAL_SIGNATURE
espefuse.py -p $ESPPORT burn_key BLOCK_KEY2 main/ds/keys/4096/ds_key2.bin HMAC_DOWN_DIGITAL_SIGNATURE
espefuse.py -p $ESPPORT burn_key BLOCK_KEY3 main/ds/keys/4096/ds_key3.bin HMAC_DOWN_DIGITAL_SIGNATURE
The ECDSA tests need some ECDSA keys to be burned in the BLOCK_KEY1 and BLOCK_KEY2 of the efuses. As this verification application is independent of the efuse component, the user needs to manually burn the keys and their key purposes using espefuse.py.
espefuse.py -p $ESPPORT burn_key BLOCK_KEY1 main/ecdsa/ecdsa192_priv_key.pem ECDSA_KEY
espefuse.py -p $ESPPORT burn_key BLOCK_KEY2 main/ecdsa/ecdsa256_priv_key.pem ECDSA_KEY
idf.py set-target <TARGET>
idf.py build
idf.py flash monitor
Enter the test that you want to run locally
pytest --target <TARGET>