Re: private Key aus P12 Datei



Hallo Andre,

Ich habe eine P12-Datei, die ich mit X509 auslese. Wie kann ich den privaten
Schlüssel bekommen, ... Der Private Schlüssel sollte als XML gespeichert sein.

was ist, wenn Du folgendes "x509.PublicKey.Key.ToXmlString(false)"
benutzt?

private void Form1_Load(object sender, EventArgs e)
{
CertSelect.Start();
}

class CertSelect
{
public static void Start()
{
try
{
X509Store store = new X509Store("MY",
StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
X509Certificate2Collection collection =
(X509Certificate2Collection)store.Certificates;
X509Certificate2Collection fcollection =
(X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid,
DateTime.Now, false);
X509Certificate2Collection scollection =
X509Certificate2UI.SelectFromCollection(fcollection, "Test Certificate
Select", "Select a certificate from the following list to get
information on that certificate", X509SelectionFlag.MultiSelection);
Console.WriteLine("Number of certificates: {0}{1}",
scollection.Count, Environment.NewLine);
foreach (X509Certificate2 x509 in scollection)
{
byte[] rawdata = x509.RawData;
Console.WriteLine("Content Type: {0}{1}",
X509Certificate2.GetCertContentType(rawdata), Environment.NewLine);
Console.WriteLine("Friendly Name: {0}{1}", x509.FriendlyName,
Environment.NewLine);
Console.WriteLine("Certificate Verified?: {0}{1}",
x509.Verify(), Environment.NewLine);
Console.WriteLine("Simple Name: {0}{1}",
x509.GetNameInfo(X509NameType.SimpleName, true), Environment.NewLine);
Console.WriteLine("Signature Algorithm: {0}{1}",
x509.SignatureAlgorithm.FriendlyName, Environment.NewLine);
Console.WriteLine("Private Key: {0}{1}",
x509.PrivateKey.ToXmlString(false), Environment.NewLine);
Console.WriteLine("Public Key: {0}{1}",
x509.PublicKey.Key.ToXmlString(false), Environment.NewLine);
Console.WriteLine("Certificate Archived?: {0}{1}",
x509.Archived, Environment.NewLine);
Console.WriteLine("Length of Raw Data: {0}{1}",
x509.RawData.Length, Environment.NewLine);
X509Certificate2UI.DisplayCertificate(x509);
x509.Reset();
}
store.Close();
}
catch (CryptographicException exp)
{
Console.WriteLine("Information could not be written out for this
certificate.\r\n" + exp.Message);
}
}
}


ciao Frank
--
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET
.