测试指南
4 Dec 2024
Read time: 2 minute(s)
CE 的测试主要覆盖以下几个要点:
-
驱动所实现的所有算法
-
不同数据长度的处理
-
输入输出 buffer 是否 4 KB 对齐(需要支持不对齐的情况)
-
多进程/线程并发访问
测试的方式主要是通过对算法处理后的数据进行“比数”的方式进行,结果与参考结果一致,则表明测试通过。
测试工具:
-
主机端工具:OpenSSL (主机需要安装)
-
平台端工具:crypto_kcapi (编译 source/artinchip/test-ce)
-
编译 crypto_kcapi 需要在 SDK 顶层目录执行:
make menuconfig
-
选择配置:
ArtInChip packages Sample code [*] test-ce
测试对象,需要测试的算法有:
对称密钥算法 | 非对称密钥算法 | 消息摘要算法 |
---|---|---|
|
|
|
测试方法
- 创建测试用例的脚本HOST 端,通过 gen_xxx_test_data.sh 脚本,生成对应算法的测试脚本。 gen_xxx_test_data.sh 脚本所做的事情包括:
- 生成测试数据:指定长度的 0x00 ~ 0xFF 循环数据
- 使用 OpenSSL 工具,根据指定的密钥,生成对应算法加解密后的数据
- 使用 OpenSSL 工具,对生成的结果计算 MD5 值
- 将对应的 MD5 值写入生成的
test_xxx_script_kcapi.sh
中,作为比较依据 - 生成的 test_xxx_script_kcapi.sh 使用 DEVICE 端的
crypto_kcapi
工具进行测试相关的脚本和数据在 source/artinchip/test-ce/test 目录下。目前有下列用于生成测试用例的脚本:
gen_hash_test_data.sh gen_rsa_test_data.sh gen_skcipher_ssram_test_data.sh gen_skcipher_test_data.sh
- 测试用例脚本
DEVICE 端在系统运行起来之后,可以在 /usr/local/bin/test 目录下,运行测试用例脚本。
测试脚本所做的事情包括:
- 生成测试数据:与 HOST 端一样,指定长度的 0x00 ~ 0xFF 循环数据
- 使用 crypto_kcapi 工具,根据指定的密钥,生成对应算法加解密后的数据
- 使用 crypto_kcapi 工具,对生成的结果计算 MD5 值
- 对比测试脚本中的 MD5 值,如果一样,则测试通过,否则失败
目前有下列用于测试的脚本:
test_aes_cbc_huk_script_kcapi.sh test_aes_cbc_script_kcapi.sh test_aes_cbc_ssk_script_kcapi.sh test_aes_ctr_huk_script_kcapi.sh test_aes_ctr_script_kcapi.sh test_aes_ctr_ssk_script_kcapi.sh test_aes_ecb_huk_script_kcapi.sh test_aes_ecb_script_kcapi.sh test_aes_ecb_ssk_script_kcapi.sh test_des_cbc_script_kcapi.sh test_des_ecb_script_kcapi.sh test_hash_all_script_kcapi.sh test_md5_script_kcapi.sh test_rsa_1024_script_kcapi.sh test_rsa_2048_script_kcapi.sh test_rsa_512_script_kcapi.sh test_sha1_script_kcapi.sh test_sha224_script_kcapi.sh test_sha256_script_kcapi.sh test_sha384_script_kcapi.sh test_sha512_script_kcapi.sh test_skciper_all_script_kcapi.sh