QtのSSL/TLSバックエンドを wolfSSL で動かしてみる
wolfSSL は IoT デバイス、組み込み向け小型、軽量の SSL/TLS ライブラリーです。多くのリアルタイムOSを含む組み込み向けOSにポーティングされていると同時に、サードパーティー向けのインテグレーションにも力を入れています。今回は、Qt 5の最新版 Qt 5.15 のSSL/TLSバックエンドをwolfSSLでビルドし、簡単なサンプルを動かしてみます。
概要
QtのデフォルトSSL/TLSライブラリーはOpenSSLです。このバックエンドをwolfSSLで置き換えます。今回は、LinuxやMacOS上でのコマンド環境を想定しています。
QtのSSL/TLSバックエンドを wolfSSLとしてビルドする
1.wolfSSLソースコードのダウンロードとパッチの入手
Qt 5.15 に対応した wolfSSL はもう間もなくの公開に向けて準備中です。また、Qt 5.15 のSSL/TLSバックエンドをwolfSSLに変更するためにパッチが必要となります。これらの入手については、公開までの少しの間wolfSSL までお問い合わせください。
2.wolfSSLのビルド
入手したwolfSSLをビルドします。
--prefix オプションで wolfSSL ライブラリーを任意のフォルダーにインストールします。
$ cd wolfssl
$ ./configure --enable-qt --enable-qt-test --enable-alpn --enable-rc2 --prefix=/custom/install/path
$ make
$ make check
$ sudo make install
3.リンク用の環境変数を設定
QtのSSL/TLSバックエンドとしてwolfSSLをリンクするために、次の環境変数を設定します。
Step2の-prefix オプションで指定した、/custom/install/pathをライブラリーパスとして指定します。
$ export WOLFSSL_LIBS="-L/custom/install/path/wolfssl-install/lib -lwolfssl"
4.Qtのソースコードをダウンロード
今回は、Qt のバージョン 5.15.2 を使用します。qt5 ディレクトリへ5.15.2 ブランチをクローンします
$ git clone git://code.qt.io/qt/qt5.git --branch v5.15.2
qt5 ディレクトリでサブモジュールを初期化します
$./init-repository --module-subset=qtbase
コンパイル時間節約のために、"--module-subset=qtbase"を指定していますが、フルモジュールでコンパイルするさいには、"--module-subset=qtbase"を除きます。
5.Qtにパッチを適用
QtのSSL/TLSバックエンドをwolfSSLに変更するために、パッチを適用します。ステップ1で入手したパッチをqt5フォルダーに配置しておきます。
$ cd /path/to/qt5/qtbase
$ git apply -v ../wolfssl_qt_src.patch
6.Qtをビルド
ビルド用のフォルダを作成し、Qtのビルドコンフィグを実行します。
$ cd ../../
$ mkdir qt_build
$ cd qt_build
$ ../qt5/configure -wolfssl-linked -I/path/to/wolf-install/include/wolfssl -I/path/to/wolf-install/include
コンフィグが終了したら、make を実行します。
$ make
QtのサンプルGUIプログラムを動かしてみる
出来上がった Qt のサンプルGUIプログラムを動かしてみます。また、Wireshark を使ってTLS通信を覗いてみます。
1.サンプルGUIプログラムの起動
$ cd /path/to/qtbase/examples/network/securesocketclient
$ ./securesocketclient
次の画面が表示されるので、"Connect To Host"をクリックします。
接続の様子は、wireshark で覗いてみます。
TLS 1.3 で接続出来ているようです。
あらためて、wolfSSL を使用しているか確認してみます。
$ ldd securesocketclient
wolfSSL を使用してるようです。
まとめ
今回は wolfSSL を Qt 5 の最新版バージョン 5.15 のSSL/TLSバックエンドとして使用する方法を紹介しました。
wolfSSLに関する詳細なドキュメント、製品情報については下記を参照してください。wolfSSLは、ソフトウェアの内容は同じですが無償のオープンソース版と有償商用版のデュアルライセンスとなっています。製品への組み込みの際は商用ライセンス契約が必要です。
wolfSSLのQtサポートまとめ:https://www.wolfssl.jp/qt_support/
ドキュメント:https://www.wolfssl.jp/docs/
英語サイト:https://www.wolfssl.com/
日本語サイト:https://www.wolfssl.jp/
Twitter: https://twitter.com/wolfSSL_Japan/
Author And Source
この問題について(QtのSSL/TLSバックエンドを wolfSSL で動かしてみる), 我々は、より多くの情報をここで見つけました https://qiita.com/MHKS/items/e075d8867f8e1baa5bc1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .