solicitado puede objeto example encontrar c# x509 x509certificate2

c# - puede - Exportar X509Certificate2 a la matriz de bytes con la clave privada



x509certificate2 c# example (2)

La función Export de la clase X509Certificate2 permite exportar un certificado con la clave privada a una matriz de bytes.

El siguiente código muestra cómo exportar un certificado con la clave privada:

X509Store store = new X509Store(StoreLocation.CurrentUser); store.Open(OpenFlags.ReadOnly); X509Certificate2 cert = store.Certificates[1]; // Export the certificate including the private key. byte[] certBytes = cert.Export(X509ContentType.Pkcs12);

Para asegurar su certificado exportado use la siguiente sobrecarga de la función Export :

byte[] certBytes = cert.Export(X509ContentType.Pkcs12, "SecurePassword");

Comience a editar

Para importar el certificado usa el siguiente código:

X509Certificate2 certToImport = new X509Certificate2(arr, "SecurePassword"); // To mark it as exportable use the following constructor: X509Certificate2 certToImport = new X509Certificate2(arr, "SecurePassword", X509KeyStorageFlags.Exportable); // certToImport.HasPrivateKey must be true here!! X509Store store2 = new X509Store(StoreName.TrustedPublisher, StoreLocation.CurrentUser); store2.Open(OpenFlags.MaxAllowed); store2.Add(certToImport); store2.Close();

EDICIÓN FINAL

Tengo un certificado X509Certificate2 en mi tienda que me gustaría exportar a una matriz de bytes con la clave privada . La matriz de bytes del certificado debe ser tal que cuando más tarde yo importara el certificado de la matriz de bytes, la clave privada tendría la clave privada.

He intentado de muchas maneras, pero no he logrado exportar el certificado con la clave privada .

X509Store store = new X509Store(StoreLocation.CurrentUser); store.Open(OpenFlags.ReadOnly); X509Certificate2 cert = store.Certificates[1]; byte[] certBytes = cert.GetRawCertData(); // Obviously does not work!

¿Es posible exportar con éxito el certificado con clave privada a una matriz de bytes?

La ayuda es muy apreciada.


Una razón para no obtener la clave privada, podría ser que se haya marcado como "No exportable" cuando se agregó originalmente a CAPI. En ese caso, no creo que sea una forma real de sacarlo.