Ora ho un problema con la mia chiave pubblica, ho usato SecKeyGeneratePair per generare pubblico e privato. Ora devo inviare la mia chiave pubblica al server. Ho usato il seguente metodo per convertire SecKeyRef in NSData, ci sono sempre la stessa chiave pubblica. Tuttavia l'ho convertito in formato base64 e l'ho inviato al server. Ma non funziona affatto e il server (Java) inizia a generare errori. Qui è il mio codice iOS:iOS SecKeyRef (Chiave pubblica) inviarlo al server
- (NSData *)getPublicKeyBits {
OSStatus sanityCheck = noErr;
NSData * publicKeyBits = nil;
NSMutableDictionary * queryPublicKey = [[NSMutableDictionary alloc] init];
// Set the public key query dictionary.
[queryPublicKey setObject:(id)kSecClassKey forKey:(id)kSecClass];
[queryPublicKey setObject:publicTag forKey:(id)kSecAttrApplicationTag];
[queryPublicKey setObject:(id)kSecAttrKeyTypeRSA forKey:(id)kSecAttrKeyType];
[queryPublicKey setObject:[NSNumber numberWithBool:YES] forKey:(id)kSecReturnData];
// Get the key bits.
sanityCheck = SecItemCopyMatching((CFDictionaryRef)queryPublicKey, (CFTypeRef *)&publicKeyBits);
if (sanityCheck != noErr)
{
publicKeyBits = nil;
}
[queryPublicKey release];
return publicKeyBits;
}
uno può aiutare a convertire i SecKeyRef a NSString o NSData.
Grazie in anticipo !!!
-Murali Krishnan
è possibile smarcare questo come un duplicato? Le risposte qui sono perfette per il caso d'uso per l'utilizzo di coppie di chiavi RSA generate da iOS con un server Java, ma la domanda collegata no. – mikeho