Extrahieren eines öffentlichen Schlüssels aus dem Schlüsselpaar in der Schlüsselkette

8

Das Problem: Abrufen eines öffentlichen Schlüssels

Für eine iPhone App muss ich ein RSA-Schlüsselpaar erstellen, es in der Schlüsselkette speichern und den öffentlichen Schlüssel abrufen.

Zum Glück hat Apple eine Crypto-Übung veröffentlicht, in der alles enthalten ist, was ich brauche kann gefunden werden (Klasse SecKeyWrapper , Funktionen generateKeyPair und getPublicKeyBits ).

Aber nach dem Versuch, diese Funktionen zu verwenden, bekomme ich immer die gleiche Ausgabe für meinen öffentlichen Schlüssel für verschiedene Schlüsselpaare (anstelle von verschiedenen öffentlichen Schlüsselbits für verschiedene Schlüsselpaare).

Implementierung meiner generateKeyPair und getPublicKeyBits Funktion:

Ich erstelle zuerst ein Schlüsselpaar durch Aufruf von generateKeyPairWithKeySizeInBits (was gut zu funktionieren scheint), danach extrahiere ich die öffentlichen Schlüsselbits mit getPublicKeyBits und NSLog diese ...

%Vor%

Ausgabe (der "public bits" -Teil (letzte Zeile) ist immer gleich):

%Vor%     
Jörn Buitink 13.07.2012, 08:56
quelle

2 Antworten

5

So funktioniert Ihr SecItemDelete-Code nicht so, wie Sie es erwarten. Wenn Sie alle Elemente in Ihrem Schlüsselbund löschen möchten (zu Testzwecken natürlich), sollten Sie sich den Code in -[Credentials resetCredentials] method im AdvancedURLConnections-Beispielcode ansehen.

Ссылка

Sie finden möglicherweise auch die Methode -dumpCredentials während des Debuggens.

Also Das Problem mit SecItemDelete bedeutet, dass SecKeyGeneratePair jedes Mal, wenn Sie die App ausführen, einen neuen Schlüsselsatz generiert. Jeder dieser Schlüssel hat das gleiche Anwendungs-Tag, so dass Sie nicht erkennen können, welcher Schlüssel von Ihrem SecItemCopyMatching-Aufruf in - getPublicKeyBits: zurückgegeben wird. Es stellt sich heraus, dass Sie bei der aktuellen Systemsoftware immer den ersten Schlüssel erhalten, so dass Sie immer dieselben öffentlichen Schlüssel erhalten.

    
Jörn Buitink 14.08.2012, 07:03
quelle
2

Der öffentliche Schlüssel besteht aus zwei Komponenten: Exponent und Modulus. Sie können dies versuchen

nach dem Aufruf der PublickeyBits-Methode

%Vor%     
012346 17.07.2012 09:23
quelle

Tags und Links