我已经在我的集成开发环境中定义了一个AES-128密钥作为构建符号,这样它就会像这样调用GCC:
换句话说,GCC预处理器能否将关键字符串分成2个字符块,并在它们之间添加"
arm-none-eabi-gcc -D"AES_KEY=3B7116E69E222295163FF1CAA1681FAC" ...
这等同于 #define AES_KEY 3B7116E69E222295163FF1CAA1681FAC
。
好处是,这个符号也可以自动作为参数传递给一个后构建的 CLI 脚本,该脚本使用此密钥加密编译后的代码(例如用于安全固件更新)...
但是如何在代码中将此密钥存储为字节数组? 我想定义一个预处理器宏来进行转换:
uint8_t aes_key[] = { SPLIT_MACRO(AES_KEY) };
为了
uint8_t aes_key[] = {0x3B, 0x71, 0x16, 0xE6, 0x9E, 0x22, 0x22, 0x95, ...};
换句话说,GCC预处理器能否将关键字符串分成2个字符块,并在它们之间添加"
, 0x
"?
uint8_t aes_key[] = {0x3B, Ox71, 0x16, 0xE6, 0x9E, 0x22, 0x22, 0x95, ...}
(注意到[]
)对吧? - Stephan Lechner"\x3b\x71\x16..."
),并更改其他后构建脚本以使其接受它。 - Matteo Italia