OpenSSL 1.1.1 対応
Eröffnet am: 2016-12-14 23:51
Letztes Update: 2019-10-16 21:14
Auswertung: | yutakapon | Verantwortlicher: | yutakapon |
---|---|---|---|
Priorität: | 7 | Meilenstein: | Tera Term 4.105 |
Typ: | Funktionsanfragen | Schweregrad: | 7 |
Komponente: | TTSSH | Status: | Offen [Owner assigned] |
Lösung | Accepted |
Einzelheiten
OpenSSL 1.0.2から1.1.0になって、APIのインターフェイスが変更されており、
OpenSSL 1.1.0系をリンクするためには、TTSSHとTTProxyの実装を改修する必要がある。
●●●OpenSSL 1.1.1●●●
ブランチ
https://osdn.net/projects/ttssh2/scm/svn/tree/head/branches/openssl_1_1_1_v2/
進捗状況(r7980)
ライブラリビルド (OpenSSL 1.1.1c)
- VS2017とVS2019ではビルドが通った。
- VS2005ではビルドが通らない(*1) → 解決(r7688)
(*1) OpenSSL GitHubにも問い合わせ中→クローズ https://github.com/openssl/openssl/issues/8948
全体ビルド
- TTSSH→OK
- TTProxy→OK(*2)
(*2) TTProxyのSSL/TLS通信は未サポートなので、実質OpenSSLは使われない。
単体テスト
- 修正箇所(約1100個)の単体テストはほぼ完了。
- "blowfish-ctr"と"cast128-ctr"の単体テストが未完了。
レガシーWindowsサポート状況
Tera Termの起動確認
- Windows98以降OK
- Windows95 NG(*3)→解決(r7980)
(*3) 阻害要因のAPIは下記の通り。
CryptAcquireContextW InitializeCriticalSectionAndSpinCount InterlockedCompareExchange InterlockedExchangeAdd
Tera Termの疎通確認(SSH通信)
- WindowsXP OK
- Windows2000 OK
- WindowsNT4.0 OK(*4)
- WindowsMe OK(*5)
- Windows98 OK
- Windows95 OK(*6)
(*4) r7975で処置した。
(*5) r7957, r7959, r7973で処置した。r7957は必須ではない。
(*6) r7980で処置した。
libresslサポート
- libresslはOpenSSL 1.1 APIをサポートしているため、libresslをリンクすることもできるはず。→ NG(*6)
(*6) libressl 2.9.2(stable)と3.0.0(development)いずれもビルドエラー。ただし、libresslは目下1.1 API対応中なので、将来ビルドできるようになると思われる。
OpenSSL 3.0.0サポート
- openssl-SNAP-20190808.tar.gz でお試し。
- VS2005ではビルドエラー。VS2019では問題なし。
- VS2019を使って3.0.0を組み込んだTTSSHで導通した。
●●●OpenSSL 1.1.0●●●
ブランチ
https://osdn.net/projects/ttssh2/scm/svn/tree/head/branches/openssl_1_1_0/
進捗状況
ビルド
- VS2015でビルドが通るところまで到達(r6557 - r6576)
- VS2005では未確認。→ 済み(r6577 - r6578)
- TTProxyはビルドが通らない。→ 済み(r6580 - r6581)
動作テスト
- Tera Termの起動時、ttxssh.dll がロードできない。 → 解決 (*1)
- 修正箇所の単体テストは進行中。詳細は下記ファイル参照。 http://ttssh2.osdn.jp/tmp/openssl_api_list/ttssh.diff
(*1) dumpbin /dependents コマンドで見ると、 ttxssh.dll が「libcrypto-1_1.dll」に 依存関係を持っているのが原因。当該DLLを格納すれば起動はできた。 r6576で処置済み。
調査結果
TTSSHがリンクしているOpenSSLの関数
http://ttssh2.osdn.jp/tmp/openssl_api_list/ func_list.txt
参考
OpenSSLのAPIマニュアル
https://www.openssl.org/docs/manpages.html
OpenSSLのサポート期限
https://www.openssl.org/policies/releasestrat.html
https://www.openssl.org/source/
- OpenSSL 1.0.2 2019-12-31 (LTS)
- OpenSSL 1.1.0 2018-08-31
- OpenSSL 1.1.1 2023-09-11 (LTS)
Letzte Aktualisierung für dieses Ticket
2019-10-16 21:14 Aktualisiert von: yutakapon
- Meilenstein Update from (Keine) to Tera Term 4.105