Передача публичного RSA ключа - C#
Формулировка задачи:
Здравствуйте. Недавно начал изучение криптографических возможностей языка c#. Для тренировки решил написать сервер и клиент: клиент отправляет на сервер публичный rsa-ключ, и сервер им шифрует что-либо и возвращает данные клиенту. Так вот вопрос: как передать этот ключ через сокеты? Вот код генерации ключей на стороне клиента:
Этот метод должен отправлять ключ:
public byte[] GenerateRsaKey()
{
var rsa = new RSACryptoServiceProvider(2048);
var PrivateKey = rsa.ExportCspBlob(true);
var PublicKey = rsa.ExportCspBlob(false);
privateKey = PrivateKey;
publicKey = PublicKey;
return publicKey;
}public void Send(byte[] data){
Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//
// Манипуляции с ключом
//
serverSocket.Send(data);
RecvFromServer();
}Решение задачи: «Передача публичного RSA ключа»
textual
Листинг программы
string s = Encoding.UTF8.GetString(tmpClient.buffer);
if(s.Contains("rsaKey:"))
{
* * byte[] key = Convert.FromBase64String(s.Substring("rsaKey:".Length));