Quantcast
Channel: All Open Tickets - Tera Term on OSDN
Viewing all articles
Browse latest Browse all 2128

OpenSSL 1.1.1 対応 - Tera Term Ticket #36876 on OSDN

$
0
0

OpenSSL 1.1.1 対応

Eröffnet am: 2016-12-14 23:51

Letztes Update: 2019-08-08 22:56

Auswertung:yutakaponVerantwortlicher:yutakapon
Priorität:7Meilenstein:(Keine)
Typ:FunktionsanfragenSchweregrad:7
Komponente:TTSSHStatus:Offen [Owner assigned]
LösungPostponed

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/

進捗状況(r7909)

ライブラリビルド (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)

(*3) 阻害要因のAPIは下記の通り。

CryptAcquireContextW
InitializeCriticalSectionAndSpinCount
InterlockedCompareExchange
InterlockedExchangeAdd

Tera Termの疎通確認(SSH通信)

  • WindowsXP OK
  • Windows2000 OK
  • WindowsNT4.0 NG(*4)
  • WindowsMe NG(*5)

(*4) CryptAcquireContextWを使った乱数処理が正常動作しないため。OpenSSL 1.0.2とは異なる新しい処理。

(*5) 原因不明。

libresslサポート

  • libresslはOpenSSL 1.1 APIをサポートしているため、libresslをリンクすることもできるはず。→ NG(*6)

(*6) libressl 2.9.2(stable)と3.0.0(development)いずれもビルドエラー。ただし、libresslは目下1.1 API対応中なので、将来ビルドできるようになると思われる。

●●●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)

動作テスト

(*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-08-08 22:56 Aktualisiert von: yutakapon

  • Details Updated

Viewing all articles
Browse latest Browse all 2128