Ich habe ein Projekt, wo ich einen verschlüsselten privaten RSA-Schlüssel für einen Benutzer von einem Server erhalte. Mit den vom Benutzer bereitgestellten Informationen kann ich die Daten in ein erwartetes Format zurückverschlüsseln. Ich kann jedoch nicht herausfinden, wie Sie den privaten Schlüssel in den iOS Keychain laden, um ihn in RSA Crypto-Funktionen zu verwenden.iOS: Hinzufügen eines privaten Schlüssels zu den Geräten KeyChain
Derzeit habe ich den folgenden Code, den ich aus verschiedenen Beispielen zusammengeschustert habe. Dieser Code funktioniert zum Hinzufügen eines öffentlichen Schlüssels, scheint aber überhaupt nicht zum Hinzufügen eines privaten Schlüssels zu funktionieren.
[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);
Wenn ich diesen Code mit dem privaten Schlüssel Daten ausgeführt (in DER-Format decodiert) die privateKey
Variable wird durch die SecItemAdd()
Anruf auf NULL gesetzt. Die sanityCheck
Variable zeigt jedoch "Kein Fehler" an. Ich weiß nicht, was ich vermisse.
Was muss ich tun, damit der private Schlüssel erfolgreich in den Schlüsselbund geladen wird?
mögliche Duplikate von [Mit einem öffentlichen RSA-Schlüssel auf iOS] (http://StackOverflow.com/questions/9728799/using-an-rsa-public-key-on-ios) – bobobobo