wolfSSLは先日プルリクエスト#8548により、CMakeLists.txtに新たなWOLFSSL_CLU
オプションを追加しました。
これにより、autotoolsビルドシステムの--enable-wolfclu
オプションでのみ利用可能だった機能をCMake環境でも使用できるようになります。
wolfCLUとは
wolfSSLコマンドラインユーティリティ、通称wolfCLUは、CLIを通じて暗号化操作を提供するツールセットです。wolfSSLの暗号エンジンであるwolfCryptを使用して、以下のような処理をCLIから簡単に実行できます。
- 証明書と証明書要求(CSR)の作成
- キーペア(公開鍵/秘密鍵)の生成
- デジタル署名の作成・検証
- ファイルの暗号化・復号
- X.509証明書のパース
- 認証局(CA)との証明書チェーンの確立
wolfCLUは、OpenSSLがインストールされていない環境や、wolfSSLの軽量で高いセキュリティ性能を有する実装をお好みのユーザーにとって、OpenSSLのコマンドラインツールの代替として機能します。
技術的な拡張
今回のプルリクエストでは、wolfSSLのCMakeLists.txtに新しいWOLFSSL_CLU
オプションを追加しています。これを有効にすることで、wolfCLUが必要とするすべての機能をwolfSSLが有するよう、wolfSSLを自動的に設定します。具体的には、次のようなものです。
1. 証明書操作
- 証明書生成(WOLFSSL_CERTGEN)
- 証明書要求(CSR)生成(WOLFSSL_CERTREQ)
- 証明書拡張(WOLFSSL_CERTEXT)
2. 暗号化アルゴリズム
- MD5(WOLFSSL_MD5)
- AES CTRモード(WOLFSSL_AESCTR)
- デジタル署名用ED25519(WOLFSSL_ED25519)
- SHA-512(WOLFSSL_SHA512)
- トリプルDES(WOLFSSL_DES3)
3. 追加機能
- 鍵生成(WOLFSSL_KEYGEN)
- OpenSSL互換性(WOLFSSL_OPENSSLALL)
- PKCS#7サポート(WOLFSSL_PKCS7)
4. コンパイラフラグ
- -DHAVE_OID_ENCODING:OIDエンコーディング機能を有効化
- -DWOLFSSL_NO_ASN_STRICT:厳密なASN.1パースを無効化
- -DWOLFSSL_ALT_NAMES:代替名サポートを有効化
- -DOPENSSL_ALL:OpenSSL互換性関数が利用可能であることを保証
このプルリクエストでは新しいオプションをテストするためにGitHub Actionsワークフローも更新しており、CI環境で正しく動作することを確認しています。
使用方法
wolfSSLを構成する際、CMakeコマンドに-DWOLFSSL_CLU=yes
オプションを追加します。
mkdir build
cd build
cmake .. -DWOLFSSL_CLU=yes
make
これにより、wolfCLUをサポートするために必要なすべての機能とコンパイラフラグを使用して、wolfSSLが設定されます。
まとめ
CMakeLists.txtにWOLFSSL_CLU
オプションを追加し、wolfCLUを使用する際の手順をよりシンプルにしました。
引き続き、異なるビルドシステム間においても一貫したビルドオプションを提供し、開発者体験をさらに向上できるよう努めてまいります。
wolfCLUの詳細については、こちらのページやwolfCLU GitHubリポジトリをご参照ください。
ご質問がございましたら、ぜひ info@wolfssl.jp までお問い合わせください。
原文:https://www.wolfssl.com/enhancing-wolfssls-cmake-build-system-adding-wolfssl_clu-support