Релиз библиотеки libssh 0.6.0

10.01.2014 13:07

После двух с половиной лет разработки увидел свет релиз библиотеки libssh 0.6.0, предназначенной для интеграции поддержки SSH в программы на языке Си. Библиотека позволяет выполнять программы на удаленном сервере, копировать файлы через защищенное соединение, обеспечивать работу приложения в роли SSH-сервера. Поддерживаются такие механизмы, как scp и sftp. Исходные тексты библиотеки распространяются под лицензией LGPL.

Основные новшества:

  • Новый серверный API на основе callback-вызовов;
  • Поддержка алгоритма формирования цифровых подписей ECDSA (Elliptic Curve Digital Signature Algorithm) при сборке с OpenSSL и методов обмена ключами curve25519-sha256@libssh.org.
  • Новый API для управления открытыми ключами;
  • Поддержка GSSAPI (Kerberos), протестированная с FreeIPA и gssproxy. Для управления добавлены опции GSSAPIServerIdentity, GSSAPIClientIdentity, GSSAPIDelegateCredentials;
  • Новый API для аутентификации пользователей.
  • Новые функции ssh_get_publickey_hash() и ssh_get_poll_flags();
  • Поддержка алгоритма ECDH (Elliptic Curve Diffie Hellman);
  • Расширены возможности системы ведения логов;
  • Поддержка перенаправления SSH-agent;
  • Поддержка инициированая повторного обмена ключами (key-reexchange).
  • Расширено число unit-тестов.

Особенности Libssh (не путать с проектом libssh2, который близок по функциональности, но распространяется в рамках лицензии BSD):

  • Поддержка серверных и клиентских функций;
  • Поддержка режимов шифрования AES-128, AES-192, AES-256, Blowfish, 3DES в CBC, AES в режиме CTR, ECDH (Elliptic Curve Diffie Hellman);
  • Поддержка протоколов SSH1 и SSH2;
  • Поддержка расширений протокола, специфичных для OpenSSH;
  • Возможность работы с серверами публичных ключей RSA и DSS;
  • Поддержка Kerberos (GSSAPI);
  • Поддержка сжатия данных;
  • Работа совместно с ssh-agent и возможность организации работы нескольких сеансов в рамках одного соединения;
  • Поддержка сборки с использованием внешних библиотек libcrypto (из OpenSSL) и libgcrypt (GCrypt).