Ios SecKeyGetBlockSize()上的EXC\u BAD\u访问代码=1

Ios SecKeyGetBlockSize()上的EXC\u BAD\u访问代码=1,ios,encryption,keychain,Ios,Encryption,Keychain,我正在尝试向密钥链中添加一个密钥,然后用它加密数据 NSData* peerTag = [@"Test PublicKey" dataUsingEncoding:NSUTF8StringEncoding]; NSDictionary * peerPublicKeyAttr = [NSDictionary dictionaryWithObjectsAndKeys: (__bridge id)kSecClassKey, kSecClass, (__bridge id)kSecAttrKeyTy

我正在尝试向密钥链中添加一个密钥,然后用它加密数据

NSData* peerTag = [@"Test PublicKey" dataUsingEncoding:NSUTF8StringEncoding];

NSDictionary * peerPublicKeyAttr = [NSDictionary dictionaryWithObjectsAndKeys:
 (__bridge id)kSecClassKey, kSecClass,
 (__bridge id)kSecAttrKeyTypeRSA, kSecAttrKeyType,
 (__bridge id)kSecAttrKeyClassPublic, kSecAttrKeyClass,
 peerTag, kSecAttrApplicationTag,
 testPubKey, kSecValueData,
 kCFBooleanTrue, kSecReturnPersistentRef,
                                    nil];

OSStatus sanityCheck = noErr;
sanityCheck = SecItemDelete((__bridge CFDictionaryRef) peerPublicKeyAttr);
SecKeyRef persistPeer = NULL;
sanityCheck = SecItemAdd((__bridge CFDictionaryRef)peerPublicKeyAttr, (CFTypeRef *)&persistPeer);


NSData* passwordData = [@"password" dataUsingEncoding:NSUTF8StringEncoding];
NSData* encryptedPass = [[Methods sharedCenter]encrypt:passwordData usingKey:persistPeer];

size_t cipherBufferSize = SecKeyGetBlockSize(persistPeer);
SecKeyGetBlockSizekey;导致EXC\u错误\u访问代码=1


我以前没有使用过这个,所以我不确定是什么导致了这个错误。我在这里做错了什么?

您在哪里定义了密钥? 检查它是否确实存在:ifkey{。。。
我认为密钥未定义或为空?

哦,很抱歉,复制粘贴错误。但我认为我已经解决了这个问题,今天晚些时候我必须对它进行测试。@Nicolas解决方法是什么?我已经定义了密钥。但在同一个函数上仍然会出现此错误。