gpt4 book ai didi

ios - SecKeyGeneratePair 返回 errSecUnimplemented

转载 作者:可可西里 更新时间:2023-11-01 05:10:13 25 4
gpt4 key购买 nike

我试图在我的 iOS 应用程序中实现 RSA 加密算法,但当我尝试生成公钥和私钥对时,该函数返回 errSecUnimplemented 错误。我正在使用 5.1 SDK,目前目标是 5.1。

我不能使用这个函数,还是我在尝试生成对时设置了错误?

这是我的 key 生成代码:

SecKeyRef publicKey, privateKey;
CFDictionaryRef parameters;
const void* keys[] = {kSecAttrKeyType, kSecAttrKeyTypeRSA};
int keySize = 1024;
const void *values[] = {kSecAttrKeySizeInBits, &keySize};

parameters = CFDictionaryCreate(kCFAllocatorDefault, keys, values, 2, NULL, NULL);
OSStatus ret = SecKeyGeneratePair(parameters, &publicKey, &privateKey);
if ( ret == errSecSuccess )
{
NSLog(@"Key success!");
}
else
{
NSLog(@"Key Failure! %li", ret);
}

最佳答案

我对其进行了修改,以便为您完成解决方案。 1)您需要使用 CFNumberRef 而不是指向 int 的指针作为数值。 2) 值需要是值,键需要是键 - 您在每个“键”和“值”中混合了键和值。

SInt32 iKeySize = 1024;
CFNumberRef keySize = CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt32Type, &iKeySize);
const void* values[] = { kSecAttrKeyTypeRSA, keySize };
const void* keys[] = { kSecAttrKeyType, kSecAttrKeySizeInBits };
CFDictionaryRef parameters = CFDictionaryCreate(kCFAllocatorDefault, keys, values, 2, NULL, NULL);

SecKeyRef publicKey, privateKey;
OSStatus ret = SecKeyGeneratePair(parameters, &publicKey, &privateKey);
if ( ret == errSecSuccess )
NSLog(@"Key success!");
else
NSLog(@"Key Failure! %li", ret);

关于ios - SecKeyGeneratePair 返回 errSecUnimplemented,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10451249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com