【发布时间】:2022-07-17 18:12:45
【问题描述】:
尝试使用 PSA Crypto API 库为 ARM Renesas RA6M1 控制器构建程序。 看起来像在我的项目中添加密码库会在调试构建时生成太大的二进制文件。我只需要整个库功能的一小部分:
-
生成密钥 RSA 2048 位 RSA PKCS #1 v2.2
-
签名和检查签名功能 RSASSA-PKCS1-v1_5
-
加密功能 RSASSA-PKCS1-v1_5
我发现文件 crypto_config.h 看起来像允许选择所需内容的配置文件。我是正确的?但我的 Segger Embedded 项目不包含此标头。为什么?
如何通过加密库配置使二进制文件更小?
crypto_config.h 的内容:
#ifndef PSA_CRYPTO_CONFIG_H
#define PSA_CRYPTO_CONFIG_H
#define PSA_WANT_ALG_DETERMINISTIC_ECDSA 1
#define PSA_WANT_ALG_ECDH 1
#define PSA_WANT_ALG_ECDSA 1
#define PSA_WANT_ALG_HKDF 1
#define PSA_WANT_ALG_HMAC 1
#define PSA_WANT_ALG_MD2 1
#define PSA_WANT_ALG_MD4 1
#define PSA_WANT_ALG_MD5 1
#define PSA_WANT_ALG_RIPEMD160 1
#define PSA_WANT_ALG_RSA_OAEP 1
#define PSA_WANT_ALG_RSA_PKCS1V15_CRYPT 1
#define PSA_WANT_ALG_RSA_PKCS1V15_SIGN 1
#define PSA_WANT_ALG_RSA_PSS 1
#define PSA_WANT_ALG_SHA_1 1
#define PSA_WANT_ALG_SHA_224 1
#define PSA_WANT_ALG_SHA_256 1
#define PSA_WANT_ALG_SHA_384 1
#define PSA_WANT_ALG_SHA_512 1
#define PSA_WANT_ALG_TLS12_PRF 1
#define PSA_WANT_ALG_TLS12_PSK_TO_MS 1
#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR 1
#define PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY 1
#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR 1
#define PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY 1
#endif /* PSA_CRYPTO_CONFIG_H */
【问题讨论】:
-
您是否尝试将所有设置为 0 以确认该文件确实不包含在内?
-
我添加了“blablabla”行以损坏头文件,并期望得到编译错误。重建后没有发现错误。
-
您在编译时是否尝试过优化大小?它应该能够从最终的精灵中删除未使用的功能。
标签: c arm embedded cryptoapi mbedtls