iOS SecKeyRef (öffentlicher Schlüssel) zum Server senden [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Extrahieren eines öffentlichen Schlüssels aus einem Schlüsselpaar in der Schlüsselkette 2 Antworten

Jetzt habe ich ein Problem mit meinem öffentlichen Schlüssel. Ich habe SecKeyGeneratePair verwendet, um öffentliche und private Schlüssel zu generieren. Jetzt muss ich meinen öffentlichen Schlüssel an den Server senden. Ich habe die folgende Methode verwendet, um SecKeyRef in NSData zu konvertieren, da ich immer den gleichen öffentlichen Schlüssel erhalte. Ich habe es jedoch in das Base64-Format konvertiert und an den Server gesendet. Aber es funktioniert überhaupt nicht und der Server (Java) löst Fehler aus. Hier ist mein iOS-Code:

- (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;
}

Kann mir jemand helfen, SecKeyRef in NSString oder NSData umzuwandeln.

Danke im Voraus!!!

-Murali Krishnan

Antworten auf die Frage(1)

Ihre Antwort auf die Frage