Код: Выделить всё
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");
}
}
Код: Выделить всё
private int RunOpenSslWithArguments(string args)
{
int exitCode;
string path = @"C:\Program Files\OpenSSL-Win64\bin\openssl.exe";
if (!Environment.Is64BitOperatingSystem)
{
path = @"C:\Program Files\OpenSSL-Win32\bin\openssl.exe";
}
if (!File.Exists(path))
{
MessageBox.Show("The path to the certificate request generation tool is not valid" );
exitCode = -1;
}
else
{
System.Diagnostics.Process process = new System.Diagnostics.Process
{
StartInfo = {
WindowStyle =System.Diagnostics.ProcessWindowStyle.Hidden,
CreateNoWindow = true,
UseShellExecute = false,
FileName = path,
Arguments = args
}
};
process.Start();
process.WaitForExit();
exitCode = process.ExitCode;
}
return exitCode;
}
Код: Выделить всё
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAph0TLX18fyIdj5e52yT1
rC1REhkotx5zKCbwMm0lKAjWEFDbDK6weNGBEnlIekS6h8wez7GHr65GckWqLPn0
9XqmMuVkXaBQFLhben+KC/j9Z89QZE4wE7PcOuUqzx8ZvfiTo2d1C89lYFuVS5xe
/RSL8YzqK2TpPm37j0TUXCOv8t4l5T7iZZsye9UxgqYXebBesCnM94GOUvoLvcTh
cRAMnsDKm9uXEh3/jzRZf6s0mUbSaqnoArUZwi+Ndao6h0MNVrH7vFMV4Ierznr9
5RPCMBh3n+rVlYAETU5FpMgRNbDk7s0E7ruX4QSl/WlhXoE75m2JZegzvQAqaCgI
LwIDAQAB
-----END PUBLIC KEY-----
**451 characters with 9 lines**
Как реализовать это в MAUI для Android?
Я использую следующий код в MAUI Android< /p>
Код: Выделить всё
public static void GenerateKeys()
{
using (RSA rsa = RSA.Create(2048))
{
// Export the private key
var privateKey = rsa.ExportRSAPrivateKey();
var privateKeyPem = $"-----BEGIN PRIVATE KEY-----\n{Convert.ToBase64String(privateKey, Base64FormattingOptions.InsertLineBreaks)}\n-----END PRIVATE KEY-----";
// Export the public key
var publicKey = rsa.ExportRSAPublicKey();
var publicKeyPem = $"-----BEGIN PUBLIC KEY-----\n{Convert.ToBase64String(publicKey, Base64FormattingOptions.InsertLineBreaks)}\n-----END PUBLIC KEY-----";
Console.WriteLine("Private Key:\n" + privateKeyPem);
Console.WriteLine("Public Key:\n" + publicKeyPem);
}
}
Код: Выделить всё
-----BEGIN PUBLIC KEY-----
MIIBCgKCAQEAyTF/BTWz7BfvJwspprK22sVljBA1AcRBbCgpQUeyMBZtl4GDmgHs0IhTLRembdC/
alVNYbZqv6v3ptorTnUp2MfuI3Ffd0kge3X7yKWH3FUz/wXnu2hzJTd7Jf8NTCq429YgrVlE45Y5
GsKithqUZI9tMDyY/v76b7l6fHKkfRU/Mp3YuvcaRfqy7P7jzBXo69sB9qRPwg4Qn1XxwPCot4br
qF+xcekPb+N4lOEKKiepDg/8MEuyeJ6j1pfnzeL1ZtnMJLiAwq7lCn3mwt3qux1OIzlDbEGVExoT
sin3wWdB5KGDmoz8LqIgrq+UjmkNCT/ptbCsLJ+ZFAPksNClrwIDAQAB
-----END PUBLIC KEY-----
**419 characters with 8 lines**
В Разделе(1) открытый ключ состоит из 451 символа и 9 строк , в разделе(2) открытый ключ состоит из 419 символов и 8 строк.
Раздел(1) правильный.
Я многое пробовал. Но желаемого результата я не получил
Подробнее здесь: https://stackoverflow.com/questions/791 ... -android-i