Ahora tengo un problema con mi clave pública, utilicé SecKeyGeneratePair para generar pública y privada. Ahora tengo que enviar mi clave pública al servidor. He usado el siguiente método para convertir SecKeyRef en NSData, siempre obtengo la misma clave pública. Sin embargo, lo convertí en formato base64 y lo envié al servidor. Pero no funciona en absoluto y el servidor (Java) comienza a lanzar errores. Aquí está mi código de iOS:iOS SecKeyRef (clave pública) enviarlo al servidor
- (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;
}
¿Puede cualquiera que me ayude a convertir a SecKeyRef NSString o NSData.
Gracias de antemano!
-Murali Krishnan
¿Es posible anular la marca esto como un duplicado? Las respuestas aquí son perfectas para el caso de uso para usar pares de claves RSA generadas con iOS con un servidor Java, pero la pregunta vinculada no. – mikeho