28.06.2000 — Релиз PuTTY 0.49
Список изменений:
- Протокол SSH больше не отправляет пакеты «SSH_CMSG_STDIN_DATA» нулевой длины при нажатом «Shift». Они, кажется, безвредны для Unix sshd, но заставляли VMS sshd генерировать Exit signal.
- Исправлена небольшая ошибка при использовании специальных номеров портов в PSCP. Спасибо Йорису ван Рантвижку (Joris van Rantwijk).
- Три улучшения безопасности. Теперь PuTTY проверяет CRC входящих пакетов, проверяет что поля «packet length» и «string length» входящих «SSH_SMSG_*_DATA» пакетов являются постоянными, и запрещает попытки установить слишком большой размер терминала с помощью escape-последовательностей (противодействует xterm DoS-атакам, см. bugtraq #1298)
- Символы из второй половины (ANSI 160 и выше) теперь поддерживаются при вводе имени пользователя и пароля.
- Ключи RSA, формат хранения которых использовал нечётное число байт (т.е. битовая длина ключа, mod 16, была между 1 и 8 включительно), обрабатывались некорректно. В результате, sshd с 850-битным серверным ключом были не в состоянии принимать соединения от PuTTY.
- PSCP теперь имеет параметр
-ls
для получения списка директорий на удалённом хосте (путём отправки командыls -la
, таким образом, команда может не работать на SSH-серверах, отличных от Unix). Это должно, главным образом, обеспечить полезную возможность листинга директорий для потенциальных GUI-фронтэндов. - Локальный механизм обработки строк теперь вызывается в более чувствительных обстоятельствах, и понимает «Telnet Erase Line». Спасибо Robert de Bath.
- Поддержка мигающего курсора (отключено по умолчанию). Спасибо Robert de Bath.
- Поддержка xterm mouse tracking. Спасибо Везу Фурлонгу (Wez Furlong).
- Стоит надеется, значительно улучшено поведение PuTTY под нагрузкой, а также теперь мы можем обрабатывать входящие данные даже при move/resize. Спасибо Robert de Bath.
- Улучшена обработка ошибки, при которой нижнее подчёркивание выходило за пределы ячейки символа. Теперь оно вообще не рисуется, что всё ещё не идеально, но это лучше, чем неистовые искажения на экране. Спасибо Robert de Bath.
- Различные улучшения эмуляции терминала. Спасибо Robert de Bath.
- По многочисленным просьбам: «Shift+Tab» теперь посылает «ESC [ Z», вместо того, чтобы быть неотличимым от обычного Tab.
- Управляющие последовательности «^C», «^Z», и «^D» теперь поручают локальному механизму обработки строк посылать специальные управляющие коды Telnet. Локальный механизм обработки строк теперь может быть включён или отключён во время сеанса без потери данных, и это также связано с Telnet «ECHO». Спасибо Robert de Bath.
- Telnet «SYNCH» теперь предшествует «IAC», чего не было ранее. Патч Robert de Bath.
- Исправлена давняя ошибка, при которой «CSI ? Q» и «CSI Q» обрабатывались одинаково для большинства значений Q. Патч Robert de Bath.
- При нажатии «Return» во время Telnet сеанса, теперь посылается «NL» вместо «CR» (в raw-данных это «CR-LF» а не «CR-NUL», «^J» продолжает посылать просто «LF»). Unix-серверы telnetds не заметят никакой разницы, а другие могут внезапно начать работать. Патч Robert de Bath.
- Множество изменений в коде выбора шрифтов, смешанный «OEM+ANSI» режим рисования линий теперь будет более надежным. Патч Robert de Bath.
- Предпринята попытка разобраться со потерей входящих данных между декодированием и отображением.
- Заменены все алгоритмы, которые не являлись моим собственным кодом. Реализации DES, MD5, SHA, и CRC32, используемые PuTTY, теперь все написаны мной, и распространяются под лицензией PuTTY, вместо того чтобы быть заимствованными из множества других мест. А еще лучше, есть комментарии: реализация DES содержит подробное описание того, как алгоритм из спецификации был преобразован в оптимизированный алгоритм в коде, и реализация CRC32 объясняет, что такое CRC, и как работает алгоритм таблицы поиска.
- Поведение прокрутки изменилось. «ANSI Delete Line» в верхней части экрана теперь вставляет линии в прокрутку (ранее только явный scroll-up делал бы это). Тем не менее, прокрутка никогда не касается scroll-операций на альтернативном экране.
- Ответ на «Ctrl+E» теперь «PuTTY» заместо xterm-подобных последовательностей.
- Параметр командной строки
-log
теперь заставляет все данные, полученные от удалённого хоста, записываться в файл «putty.log». - PSCP больше не пробует «рекурсию» в директориях
.
и..
, как это было раньше. - Добавлены горячие клавиши в меню «System».
- «Warn On Close» больше не относится к неактивным окнам: вы можете закрыть любое из них без предупреждений.
- Существует система для генерации файлов сборки для Borland и Cygnus из главного makefile, так что люди могут собирать PuTTY с другими компиляторами. Но сам я поддерживаю только один makefile.