This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/CC3220SF-LAUNCHXL:ECC 密钥对与 SECP256R1

Guru**** 2562850 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/938447/ccs-cc3220sf-launchxl-ecc-key-pair-with-the-secp256r1

器件型号:CC3220SF-LAUNCHXL

工具/软件:Code Composer Studio

尊敬的先生:

这个线程我打开以获取符号和验证缓冲区示例。 在这里、我有一些负载、我使用私钥签名并通过 HTTPS 将其发送到客户端。 在这里、我一直在为我的应用寻找加密和解密方法、但由于文档和适当支持的湖、我的云无法执行安全内容交付方法、因此我提出了一些理想的方法、就像我的有效负载由云签署一样 具有唯一的 ECC 密钥,该密钥已按照 SimpleLinkTmWi-FiRegisteredCC3x20、CC3x3x 网络处理器指南存储在 entry0中。 据我所知,根据文档,密钥对于每个设备来说是唯一的,并且不能写入和擦除?

因此,我在这里尝试使用以下代码段读取存储的密钥。请查看。

/*获取公钥*/
configOpt = sl_NETUTIL_crypto_public_key_info;
Objid = 0;
CONFIGLen = 255;

RC = sl_NetUtilGet (configOpt、Objid、buf、&configLen);

如果(RC < 0)

show_error (rc、"sl_NetUtilCmd () failed");

其他

对于(ii = 0;ii < configLen;i++)

WMDebugInfo (debug_log、"HEX[%d]中索引[%d]处的密钥数据[%d]=%02x"、Objid、ii、buf[i]);

WMDebugInfo (debug_log、"public key %s"、base64decode);


 得到响应后、我在这里观察到一些情况。 嗯,我正在读取 SECP256R1密钥格式,这里我的私钥将是32字节,公钥将是64字节长,但从零(0)索引读取密钥时,我发现@configLen 它本身是64字节。 因此、我的 for 循环运行了64次、但它应该是32字节、但我不确定。

以下是有关此问题的以下问题:

1.哪种类型存储在条目0中? 是公钥还是私钥? 关键格式是什么,因为我无法直接打印。

2.我必须通过 HTTPS 发送已签名的有效负载、因此云等其他端必须 使用公钥验证有效负载签名、以便我通过 HTTPS 共享公共负载。

3.签名 数据的格式是什么?

4.如果我想查看密钥的元数据,我该怎么做? 以及如何在获得该数据时验证该数据?

 

请勿庸置疑。

谢谢  

Ketan vadodariya

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ketan、

    每个条目都包含一个密钥对(公钥和私钥)。

    索引0包含器件唯一密钥(固定密钥对)。  

    您可以使用"configOpt =SL_NETUTIL_crypto_public_key"读取公钥。  

    您无法访问私钥。

    有关 更多详细信息、请参阅编程人员指南(www.ti.com/.../swru455l.pdf)的第17章。

    BR、

    Kobi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kobi:

    在这里、我可以从 entry0读取公钥、但我对密钥的格式有疑问。

    该键将是常量键?? 我的意思是、每次读取该密钥时、该密钥都会更改??

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 kobi:

    这是我用于缓冲区签名和验证的代码。 请看一下。。。

    我希望这个 entry0是永久性的、不可改变的、并且对于每个处理器来说都是唯一的、如文档所示。  

    e2e.ti.com/.../ECDSA.c

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、每个器件的 entry0是永久性的且唯一的。

    我简要检查一下您的代码、看起来不错。

    BR、

    Kobi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kobi:

    感谢您的遵守。

    在这里生成索引0公共密钥将是永久性的,不可更改? 还是在从索引0生成公钥时发生变化?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    无法为索引0生成密钥。 它是持久的、不可改变的。

    您只需读取始终相同的公钥即可。

    您还可以读取此器件密钥的 CSR。

    BR、

    Kobi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 kobi。

    感谢您的回复。

    这是更充分的信息。

    谢谢!