iOS SecKeyRef (chave pública) envie para o servidor [duplicado]

Esta questão já tem uma resposta aqui:

Extraindo uma chave pública do par de chaves no chaveiro 2 respostas

Agora eu tenho um problema com a minha chave pública, eu usei SecKeyGeneratePair para gerar público e privado. Agora eu tenho que enviar minha chave pública para o servidor. Eu usei o método abaixo para converter SecKeyRef para NSData, sempre estou recebendo a mesma chave pública. No entanto eu converti-lo em formato base64 e enviá-lo para o servidor. Mas não está funcionando e servidor (Java) começa a gerar erros. Aqui está o meu código do 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;
}

Qualquer um pode me ajudar a converter SecKeyRef para NSString ou NSData.

Desde já, obrigado!!!

-Murali Krishnan

questionAnswers(1)

yourAnswerToTheQuestion