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 respuestas

Ahora 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

Respuestas a la pregunta(1)

Su respuesta a la pregunta