как небольшой (большой) проект хобби. Я решил сделать (очень примитивный) клиент ssh-2.0 на C#. Это исследовать и лучше понять DH и помочь процветать мое шифрование фамильярность :)примитивное соединение ssh (lowlevel)
В соответствии с RFC 4253, я начал первоначальное соединение, как это:
(выезд из значения предварительной настройки Варса и т.д.)
Random cookie_gen = new Random();
while ((ssh_response = unsecure_reader.ReadLine()) != null)
{
MessageBox.Show(ssh_response);
if (ssh_response.StartsWith("SSH-2.0-")
{
// you told me your name, now I'll tell you mine
ssh_writer.Write("SSH-2.0-MYSSHCLIENT\r\n");
ssh_writer.Flush();
// now I should write up my supported (which I'll keep to the required as per rfc 4253)
ssh_writer.Write(0x20); // SSH_MSG_KEXINIT
byte[] cookie = new byte[16];
for (int i = 0; i < 16; i++)
cookie[i] = Convert.ToByte(cookie_gen.Next(0, 10));
ssh_writer.Write(cookie); // cookie
// and now for the name-list
// This is where I'm troubled
// "Footer"
ssh_writer.Write(0x00); // first_kex_packet_follows
ssh_writer.Write(0x00); // 0
ssh_writer.Flush();
}
}
Как вы можете видеть на странице 16 RFC 4253, я должен дать 10 списков имен. Являются ли они просто предполагаемыми для строк, или как я могу отметить начало/конец каждого списка (просто с помощью новой строки \ n)? Я даже на правильном пути здесь? (имейте в виду, что я буду обрабатывать DH и шифрование за этот момент. Мой вопрос основан исключительно на первоначальном контакте).
Любая помощь или комментарии приветствуются и оценили,
PS: Я есть осведомленные библиотеки, но это не имеет отношения к моему проекту.
Вопрос в том, как отправить списки имен с помощью C#, поэтому я бы предположил, что это вопрос C#? Я получаю списки серверов, но это не в строковом формате как таковом, поэтому я спрашиваю, как я должен возвращать пользу и отвечать с помощью MY namelist (в каком формате). Надеюсь, это очистит его :) – Chuck