Сертификация OpenSSL .NET c # X509 - PullRequest
3 голосов
/ 10 марта 2011

Привет, я использую оболочку OpenSSL .NET в моем проекте c #.Я хочу получить сертификат X509, но я не знаю, как это сделать.что он должен содержать (какие параметры) ... и т.д. это мой код, я сделал это после просмотра некоторых тестов:

        OpenSSL.X509.X509Certificate x509 = new OpenSSL.X509.X509Certificate();
        OpenSSL.Crypto.RSA rsa = new OpenSSL.Crypto.RSA();
        rsa.GenerateKeys(1024, 0x10001, null, null);
        OpenSSL.Crypto.CryptoKey key = new OpenSSL.Crypto.CryptoKey(rsa);
        OpenSSL.Crypto.MessageDigestContext digest = new OpenSSL.Crypto.MessageDigestContext(
                                                                 OpenSSL.Crypto.MessageDigest.SHA1);

Я полагаю, что сертификат должен принимать закрытый ключ RSA и дайджест в качестве параметров иЯ должен настроить его (дата ... и другие параметры).Кто-нибудь может мне помочь с этим?закончить мой код?спасибо.

1 Ответ

2 голосов
/ 28 февраля 2012

Я использую следующую процедуру:

// Initialize the following with your information
var serial = 1234;
var issuer = new X509Name("issuer");
var subject = new X509Name("subject");

// Creates the key pair
var rsa = new RSA();
rsa.GenerateKeys(1024, 0x10001, null, null);

// Creates the certificate
var key = new CryptoKey(rsa);
var cert = new X509Certificate(serial, subject, issuer, key, DateTime.Now, DateTime.Now.AddYears(20));

// Dumps the certificate into a .cer file
var bio = BIO.File("C:/temp/cert.cer", "w");
cert.Write(bio);
...