Независимо от того какой сертификат с ключами я ему импортирую, поле, содержащие полученный ключ(richBox3) не меняется.
код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Xml;
using System.Security.Cryptography;
using System.Windows.Forms;
using System.Security.Cryptography.X509Certificates;
namespace лаб4_вар_9
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string OpenCertificate = @textBox3.Text;
X509Certificate pubcert = new X509Certificate();
pubcert.Import(OpenCertificate);
string resultsTrue = pubcert.ToString(true);
string resultsFalse = pubcert.ToString(false);
string PrivatCertificate = @textBox2.Text;
X509Certificate privcert = new X509Certificate();
privcert.Import(PrivatCertificate);
string resultsTrue2 = privcert.ToString(true);
string resultsFalse2 = privcert.ToString(false);
RSACryptoServiceProvider RsaKey;
CspParameters cp = new CspParameters();
cp.KeyContainerName = "MyKeyContainerName";
RsaKey = new RSACryptoServiceProvider(cp);// начинаем рaботу с систем провайдер
label4.Text = label4.Text + RsaKey.KeySize.ToString();// показываем количество свободных байтов
string publickey = resultsTrue;// показываем ключ 1
string privatekey = RsaKey.ToXmlString(true);// показываем ключ 1
richTextBox2.Text = publickey; // выводим на экран
richTextBox1.Text = privatekey;
UnicodeEncoding ByteConverter = new UnicodeEncoding();
byte[] dataToEncrypt = ByteConverter.GetBytes(textBox1.Text);// символы переводим в байты
try
{
byte[] txtEnCrypt = RsaKey.Encrypt(dataToEncrypt, false);
richTextBox4.Text = Convert.ToBase64String(txtEnCrypt);
}
catch (CryptographicException ex)
{
MessageBox.Show(ex.Message);
}
}
private void button2_Click(object sender, EventArgs e)
{
CspParameters cp = new CspParameters();
cp.KeyContainerName = "MyKeyContainerName";
RSACryptoServiceProvider RsaKey = new RSACryptoServiceProvider(cp);
string publickey = RsaKey.ToXmlString(false);
richTextBox3.Text = publickey; // выводим на экран
byte[] dataToDecrypt = Convert.FromBase64String(richTextBox4.Text);// преобразуеи из байтов в нормальный текст
try
{
byte[] TxtToDecrypt = RsaKey.Decrypt(dataToDecrypt, false);// разшифрование
int len = TxtToDecrypt.Length;
char[] val = new char[len];
val = Encoding.Unicode.GetChars(TxtToDecrypt);
richTextBox5.Text = string.Join("", val);
}
catch (CryptographicException ex)
{
MessageBox.Show(ex.Message);
}
}
private void button3_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
textBox2.Text = openFileDialog1.FileName;
}
}
private void button4_Click(object sender, EventArgs e)
{
if (openFileDialog2.ShowDialog() == DialogResult.OK)
{
textBox3.Text = openFileDialog2.FileName;
}
}
Скрин формы