iOS SecKeyRef (clave pública) enviarlo al servidor [duplicar]
Esta pregunta ya tiene una respuesta aquí:
Extraer una clave pública del par de claves en el llavero 2 respuestasAhora tengo un problema con mi clave pública, usé SecKeyGeneratePair para generar público y privado. Ahora tengo que enviar mi clave pública al servidor. He utilizado el siguiente método para convertir SecKeyRef a NSData, siempre obtengo la misma clave pública. Sin embargo, lo convertí a 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:
- (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 alguien ayudarme a convertir SecKeyRef a NSString o NSData?
¡¡¡Gracias por adelantado!!!
-Murali Krishnan