Код: Выделить всё
using (RSA rsa = RSA.Create(2048))
{
var privateKeyPem = rsa.ExportPkcs8PrivateKeyPem();
var publicKeyPem = rsa.ExportSubjectPublicKeyInfoPem();
}
===================== =========
В Windows я использую следующий код для создания публичных, частных Ключи и CSR с использованием OpenSSL и RSA с размером ключа 2048 бит в формате PEM.
Код: Выделить всё
string[] textArray1 = new string[] { "req -new -utf8 -nameopt multiline,utf8 -config \"", this.CNF_FILEPATH, "\" -newkey rsa:2048 -nodes -keyout \"", this.PRIVATEKEY_FILEPATH, "\" -out \"", this.CSR_FILEPATH, "\"" };
if (this.RunOpenSslWithArguments(string.Concat(textArray1)) == 0)
{
string[] textArray2 = new string[] { "rsa -in \"", this.PRIVATEKEY_FILEPATH, "\" -out \"", this.PUBLICKEY_FILEPATH, "\" -pubout -outform PEM" };
if (this.RunOpenSslWithArguments(string.Concat(textArray2)) == 0)
{
string CSRKey = File.ReadAllText(this.CSR_FILEPATH);
string PrivateKey = File.ReadAllText(this.PRIVATEKEY_FILEPATH);
string PublicKey = File.ReadAllText(this.PUBLICKEY_FILEPATH);
MessageBox.Show("The certificate request was successfully generated");
}
}
Код: Выделить всё
using (var rsa = RSA.Create(2048))
{
var request = new CertificateRequest("CN=YourName", rsa,
HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
var csrkey= request.CreateSigningRequestPem();
var privateKey = rsa.ExportPkcs8PrivateKeyPem();
string publicKey = rsa.ExportSubjectPublicKeyInfoPem();
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... ndroid-ios