主题中讨论的其他器件:SHA-256、 CC3220SF
我正在尝试连接 google 物联网内核。
我按照 JWT 令牌生成的所有步骤进行了操作。
使用 RSASSA 签名时遇到问题(使用{"ALG":"RS256"、"典型值":"JWT"}的页眉)
如何 使用 crypto utils 生成 RSA 散列?
(或)
还有其他方法吗?
谢谢你
瓦苏
。
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.
我正在尝试连接 google 物联网内核。
我按照 JWT 令牌生成的所有步骤进行了操作。
使用 RSASSA 签名时遇到问题(使用{"ALG":"RS256"、"典型值":"JWT"}的页眉)
如何 使用 crypto utils 生成 RSA 散列?
(或)
还有其他方法吗?
谢谢你
瓦苏
。
您好、Jesu、
感谢您的回复、
好的、我会等待
我还有一个问题
我研究了是否需要 ECDSA 签署两个参数
1) 1)签署消息
2) 2)私钥
signAttrib.Flags = 0;
signAttrib.Objid = 3;
signAttrib.SigType = SL_NETUTIL_Crypto_SIG_SHAwECDSA;//这是唯一支持的类型*/
CONFIGLen = 255;
状态= sl_NetUtilCmd (sl_NETUTIL_crype_CMD_sign_MSG、(_u8 *)&signAttrib、
sizeof (slNetUtilCryptoCmdSignAttrib_t)、
messageBuf、sizeof (messageBuf)、buff、configLen);
UART_PRINT ("签名 SHAwECDSA -%s\r\n、buff);
for (count=0;<configLen;count++)
{
UART_PRINT ("%02x "、*(buff + count));
}
UART_PRINT ("\n\n"r);
1)标志的用途是什么,如何使用?
2) 2)为什么使用标志值3?
3)请参阅 SL_NetUtilCmd 此处的 API 如何传递签名消息和用于签名的私钥(但此处仅提及一个参数
messageBuf 不提供私钥,这是如何签名的?
您好、Kobi、
SlNetUtilCryptoPubKeyInfo_t *spInfoKey;
slNetUtilCryptoCmdKeyMgnt_t skeyAttrib;
slNetUtilCryptoCmdVerifyAttrib_t sverAttrib;
uint16_t sresultLen = 0;
uint8_t sbuf[sl_NETUTIL_CMD_buffer_size];
uint8_t sname;
uint8_t *sverifyBuf;
int16_t sStatus;
int32_t sverifyResult;
skeyAttrib.Objid = 3;
skeyAttrib.SubCmd = sl_NETUTIL_crype_install_sub_CMD;
spInfoKey =(SlNetUtilCryptoPubKeyInfo_t *) sbuf;
spInfoKey->KeyAlgo = sl_NETUTIL_crypto_pub_key_算法;
spInfoKey->KeyParams.EcParams.CurveType =
SL_NETUTIL_Crypto_EC_curve_type_named;
spInfoKey->KeyParams.EcParams.CurveParams.NamedCurveParams =
SL_NETUTIL_crype_EC_named_curve_SECP256R1;
spInfoKey->CertFileNameLen = 0;
sname =((_u8 *) spInfoKey)+ sizeof (SlNetUtilCryptoPubKeyInfo_t);
sname += spInfoKey->CertFileNameLen;
strcpy ((char *) sname、"ec_private.der");
spInfoKey->KeyFileNameLen = strlen (ec_private.der")+ 1;
状态= sl_NetUtilCmd (
SL_NETUTIL_crype_CMD_INSTALL_OP、(_u8 *)和 skeyAtrib、
sizeof (slNetUtilCryptoCmdKeyMgnt_t)、
(_u8 *) spInfoKey、
sizeof (slNetUtilCryptoPubKeyInfo_t)+ spInfoKeyKey->KeyFileNameLen、NULL、
sresultLen (&S);
_u8 buff [256];
_u8 verifyBuf[1400];
slNetUtilCryptoCmdSignAttrib_t signAttrib;
signAttrib.Flags = 0;
signAttrib.Objid = 3;
signAttrib.SigType = SL_NETUTIL_Crypto_SIG_SHAwECDSA;/*(TI 提到)这是唯一支持的类型*/
CONFIGLen = 255;
状态= sl_NetUtilCmd (sl_NETUTIL_crype_CMD_sign_MSG、(_u8 *)&signAttrib、
sizeof (slNetUtilCryptoCmdSignAttrib_t)、
(const _u8 *) in、h话题 长度、buff、configLen);
UART_PRINT ("签名 SHAwECDSA -%s\r\n、buff);
for (count=0;<configLen;count++)
{
UART_PRINT ("%02x "、*(buff + count));
}
UART_PRINT ("\n\n"r); 您好、Vasu、
1) 1)我不确定问题是什么。 请尝试收集 NWP 日志 (processors.wiki.ti.com/.../CC3120_&_CC3220_Capture_NWP_Logs) 、以便获取更多详细信息。
2) 2)仅支持 DER 格式
3) 3) SHA-1是 SHA 算法的第一个版本、后来引入了 SHA-256。
4) 4)当前堆栈仅支持 SHA-1。
5) 5) 您可以集成外部 TLS 堆栈(例如 wolfsl 或 mbedtls)以支持此类签名。 您是否确实需要在器件上签名? (如果它仅用于密码 JWT,则可以脱机准备它)。
BR、
Kobi