Код: Выделить всё
-----BEGIN PRIVATE KEY-----
Some hash here
-----END PRIVATE KEY-----
Код: Выделить всё
private static X509Certificate LoadCertificate()
{
var certBasePath = Environment.GetEnvironmentVariable("CERT_BASE_PATH");
var pathEnviroment = $"{Settings.Ambiente}";
var keyPath = Path.Combine(certBasePath, pathEnviroment, "my_client.key");
var certificatePath = Path.Combine(certBasePath, pathEnviroment, "my_client.pem");
var certPem = File.ReadAllText(certificatePath);
var keyPem = File.ReadAllText(keyPath);
var certObject = LoadCertificateFromPem(certPem);
var key = LoadPrivateKeyFromPem(keyPem);
var store = new Pkcs12Store();
var certificateEntry = new X509CertificateEntry(certObject);
store.SetCertificateEntry("cert", certificateEntry);
store.SetKeyEntry("key", new AsymmetricKeyEntry(key.Private), new[] { certificateEntry });
using (var ms = new MemoryStream())
{
store.Save(ms, new char[0], new SecureRandom());
return new X509Certificate2(ms.ToArray(), "", X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
}
}
private static Org.BouncyCastle.X509.X509Certificate LoadCertificateFromPem(string pem)
{
var certReader = new PemReader(new StringReader(pem));
var certObject = certReader.ReadObject() as Org.BouncyCastle.X509.X509Certificate;
if (certObject is null)
throw new InvalidOperationException("Não foi possível converter para certificado X509 o arquivo PEM.");
return certObject;
}
private static void LoadPrivateKeyFromPem(string pem)
{
var keyReader = new PemReader(new StringReader(pem));
//Here is my trouble :(
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... m-key-file
Мобильная версия