请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC3220SF 之前有人问过如何以 DER 或 PEM 等更常见的形式获取 EC 公钥。 螺纹在未提供解决方案的情况下闭合。
答案是、需要在从 API 接收到的 x9.63二进制数据之前添加固定的26字节前缀、以便获取 DER 格式输出文件:
$ od -t x1 -Ax /tmp/key.prefix
000000 30 59 30 13 06 07 2a 86 48 ce 3D 02 01 06 08 2a 000010 86 48 ce 3D 03 01 07 03 42 00 00001a
下面是一些代码:
内转台;
uint8_t CONFIG_OPT = sl_NETUTIL_crypto_public_key;
uint32_t obj_id = 0;
uint8_t buf[256];
uint16_t CONFIG_LEN = 0;
CONFIG_LEN = 255;
//获取公钥
RET = sl_NetUtilGet (CONFIG_OPT、obj_id、buf、&CONFIG_len);
如果(RET < 0)
{
返回;
}
//这是 ECDSA 公钥所需的.der 格式标头。
字符串键("\X30\X59\X30\X13\x06\x07\X2a\x86\x48\xce\X3D\x02\x01\x06\x08"
"\x2a\x86\x48\xce\x3D\x03\x01\x07\x03\x42\x00"、26);
key.append(((const char*)buf、config_len);
下面是用于测试输出的 openssl 命令:
$ openssl EC -inform der -pubin -text -noout -in /tmp/public-key.der