我有一個項目,我從服務器接收用戶的加密RSA私鑰。使用用戶提供的信息,我能夠將數據解密成預期的格式。但是,我無法弄清楚如何將私鑰加載到iOS密鑰鏈中以便在RSA加密函數中使用。iOS:將私鑰添加到設備KeyChain
目前,我有以下代碼,我已經從各種示例拼湊在一起。此代碼適用於添加公鑰,但似乎根本無法添加私鑰。
[peerPublicKeyAttr setObject:(__bridge id)kSecClassKey forKey:(__bridge id)kSecClass];
[peerPublicKeyAttr setObject:(__bridge id)kSecAttrKeyTypeRSA forKey:(__bridge id)kSecAttrKeyType];
[peerPublicKeyAttr setObject:peerTag forKey:(__bridge id)kSecAttrApplicationTag];
[peerPublicKeyAttr setObject:privateKeyData forKey:(__bridge id)kSecValueData];
[peerPublicKeyAttr setObject:[NSNumber numberWithBool:YES] forKey:(__bridge id)kSecReturnRef];
sanityCheck = SecItemDelete((__bridge CFDictionaryRef) peerPublicKeyAttr) ;
sanityCheck = SecItemAdd((__bridge CFDictionaryRef) peerPublicKeyAttr, (CFTypeRef *)&privateKey);
當運行此代碼與私有密鑰數據(解碼成DER格式),privateKey
變量由SecItemAdd()
呼叫設置爲NULL。但是,sanityCheck
變量指示「無錯誤」。我不知道我錯過了什麼。
我需要做什麼才能讓私鑰成功加載到鑰匙串中?
[在iOS上使用RSA公鑰](http://stackoverflow.com/questions/9728799/using-an-rsa-public-key-on-ios) – bobobobo 2013-04-19 02:00:14