2010-07-26 5 views
6

ich ein DSA privaten Schlüssel exportierten die DSACryptoServiceProvider.ToXmlString verwenden, und ich muß es PEM-Format („file.pem“) konvertieren, so kann ich es öffnen in PHP mit openssl_pkey_get_private Funktion.Konvertieren DSA asymmetrische Schlüssel in .NET XML-Format in PEM-Format

Wie bewerkstellige ich das?

Die Lösung kann DSACryptoServiceProvider.ExportCspBlob Methode verwenden, wenn es irgendeine Hilfe ist, muss ich nur den Schlüssel konvertieren.

Antwort

9

Mit der Bouncycastle C# -Bibliothek Klasse DotNetUtilities ist es ziemlich einfach.

+1

+1, ich bin nur überrascht, es gibt keinen direkten Weg, wie das zu tun, nur mit reinen .NET-Framework (keine zusätzlichen externen Bibliotheken). – Paya

+0

Nun, das PEM-Format ist kein echter Standard, sondern eher ein De-facto-Standard. –

+0

Wenn ich diesen genauen Code unter Verwendung von .NET 4.5 und der neuesten BouncyCastle von NuGet (1.7.0) ausführe, erhalte ich beim Aufruf von pw.WriteObject (dsaKey) eine StackOverflowException. Ich habe auch versucht, .NET 3.0, 3.5 und 4.0, dasselbe Problem zu verwenden. Irgendwelche Ideen, was ist los? –