主题中讨论的其他器件:SysConfig、 CC2745R10-Q1
工具与软件:
为了使用 ECDH_generatePublicKey()函数、我根据文档编写了以下代码。
但是、此代码返回 ECDH_STATUS_resource_unavailable (-2)作为函数的返回值。
将值更改为密钥的值时返回相同的结果、该值应该能够生成其他密钥对。 使用时是否有问题?
""
void ecdhGenPubCallback (ECDH_Handle handle、int_fast16_t returnStatus、ECDH_Operation 操作、ECDH_OperationType OperationType)
{
/* LED 关闭*/
ECDH_Close (handle);
}
void * mainThread (void * arg0)
{
uint8_t myPrivateKeyingMaterial[curse_length]={0x00、0x00、0x00、0x00、0x00、 0x00、0x00、0x00、
0x00、0x00、0x00、0x00、0x00、 0x00、0x00、0x00、
0x00、0x00、0x00、0x00、0x00、 0x00、0x00、0x00、
0x00、0x00、0x00、0x00、0x00、 0x00、0x00、0x01};
uint8_t myPublicKeyingMaterial[2 * curse_length + 1]={0};
GPIO_init ();
/* LED 亮起*/
GPIO_WRITE (CONFIG_GPIO_LED_0、CONFIG_GPIO_LED_ON);
//由于我们使用默认的 ECDH_Params、因此我们只需为该参数传递 NULL 即可。
ECDH_PARAMS_INIT (&PARAMS);
params.returnBehavior = ECDH_return_Behavior_callback;
Params.callbackFxn = ecdhGenPubCallback;
ecdhHandle = ECDH_open (0、&Params);
如果(!ecdhHandle){
//处理错误
}
//初始化 myPrivateKey 和 myPublicKey
CryptoKeyPlainText_initKey (&myPrivateKey、myPrivateKeyingMaterial、sizeof (myPrivateKeyingMaterial));
CryptoKeyPlaintext_initBlankKey (&myPublicKey、myPublicKeyingMaterial、sizeof (myPublicKeyingMaterial));
ECDH_OperationGeneratePublicKey_init (&operationGeneratePublicKey);
operGeneratePublicKey.curve =&ECCParams_NISTP256;
操作 GeneratePublicKey.myPrivateKey =&myPrivateKey;
OperationGeneratePublicKey.myPublicKey =&myPublicKey;
//生成 myPublicKey 的密钥材料并将其存储在 myPublicKeyingMaterial 中
operationResult = ECDH_generatePublicKey (ecdhHandle、&GeneroperationatePublicKey);
while (1)
{
睡眠(100);
}
}