Erhalten Sie einen privaten Schlüssel vom BouncyCastle X509-Zertifikat? C #

7

Normalerweise, wenn ich ein X509Certificate2 aus meinem Keystore nehme, kann ich .PrivateKey aufrufen, um den privaten Schlüssel des Zertifikats als AsymmetricAlgorithm zu erhalten. Allerdings habe ich mich entschieden, Bouncy Castle zu benutzen und seine Instanz von X509Certificate hat nur eine getPublicKey(); Ich kann keinen Weg finden, den privaten Schlüssel aus dem Cert zu bekommen. Irgendwelche Ideen?

Ich erhalte das X509Certificate2 von meinem Windows-MY Keystore und benutze dann:

%Vor%

Gibt es trotzdem einen AsymmetricAlgorithm (C # privaten Schlüssel) in einen AsymmetricKeyParameter (bouncycastle privaten Schlüssel) zu konvertieren?

    
Petey B 13.07.2010, 18:28
quelle

3 Antworten

13

Ich kenne BouncyCastle nicht so gut, aber es scheint mir, dass es einfach ist, den Schlüssel basierend auf den Schlüsselparametern neu zu erstellen.

%Vor%

Sie können den Code mit

aufrufen %Vor%

Offensichtlich wird davon ausgegangen, dass das Zertifikat einen RSA-Schlüssel enthält, aber das gleiche Ergebnis kann für DSA mit DSACryptoServiceProvider und DSAParameters

erzielt werden     
CriGoT 13.07.2010, 22:47
quelle
19
%Vor%     
majkinetor 16.09.2011 11:10
quelle
1

Finden Sie .NET X509Certificate2:

%Vor%

Parsen Sie es zum BouncyCastle-Zertifikat und verwenden Sie X509Certificate2Signature, um die Signatur zu erhalten:

%Vor%     
Gabrielius 20.05.2015 11:08
quelle