diff --git a/wolfProvider/mkdocs-ja.yml b/wolfProvider/mkdocs-ja.yml index c222d46e..719af2e3 100644 --- a/wolfProvider/mkdocs-ja.yml +++ b/wolfProvider/mkdocs-ja.yml @@ -5,14 +5,14 @@ site_dir: html/ copyright: Copyright © 2024 wolfSSL Inc. nav: - "1. イントロダクション": index.md - - "2. OpenSSL版との互換性": chapter02.md + - "2. OpenSSLとの互換性": chapter02.md - "3. wolfProviderのビルド": chapter03.md - - "4. FIPS 140-2 のサポート": chapter04.md - - "5. ロギング": chapter05.md + - "4. FIPS 140-2のサポート": chapter04.md + - "5. ログ出力": chapter05.md - "6. 移植性": chapter06.md - "7. wolfProviderのロード": chapter07.md - "8. wolfProviderの設計": chapter08.md - - "9. オープンソース統合に関する注意事項": chapter09.md + - "9. その他のオープンソースソフトウェアとの統合に関する注意事項": chapter09.md - "10. サポートとOpenSSLバージョン追加": chapter10.md theme: name: null diff --git a/wolfProvider/src-ja/chapter01.md b/wolfProvider/src-ja/chapter01.md index 7cc1b635..1a4b7973 100644 --- a/wolfProvider/src-ja/chapter01.md +++ b/wolfProvider/src-ja/chapter01.md @@ -1,16 +1,18 @@ # イントロダクション -wolfCrypt エンジン (wolfProvider) は、wolfCrypt および wolfCrypt FIPS 暗号化ライブラリを OpenSSLエンジンフレームワークに適合させるためのライブラリです。 wolfProvider は、共有または静的ライブラリとして OpenSSL エンジンの実装を提供し、現在 OpenSSL を使用しているアプリケーションが FIPS および非 FIPS ユースケースで wolfCrypt 暗号化ライブラリを活用できるようにします。 +wolfCryptエンジン(wolfProvider)は、wolfCryptおよびwolfCrypt FIPS暗号化ライブラリをOpenSSLエンジンフレームワークに適合させるためのライブラリです。 +wolfProviderは、共有または静的ライブラリとしてOpenSSLエンジン互換の実装を提供し、 +現在OpenSSLを使用しているアプリケーションがFIPSおよび非FIPSユースケースでwolfCrypt暗号化ライブラリを活用できるようにします。 -wolfProvider は、wolfSSL (libwolfssl) と OpenSSL にリンクする個別のスタンドアロン ライブラリとして構成されています。 wolfProvider は、wolfCrypt ネイティブ API を内部的にラップする **OpenSSL エンジンの実装** を実装および公開します。 wolfProvider の概要図と、それがアプリケーションおよび OpenSSL とどのように関連しているかを下の図 1 に示します。 +wolfProviderは、wolfSSL(libwolfssl)とOpenSSLにリンクする個別のスタンドアロンライブラリとして構成されています。 +wolfProviderは、wolfCryptネイティブAPIを内部的にラップするOpenSSLエンジンです。 +wolfProviderの概要図、そしてアプリケーションやOpenSSLとどのように関連しているかを下の図1に示します。 +wolfProviderの設計とアーキテクチャの詳細については、[wolfProviderの設計](chapter09.md) の章をご覧ください。 -wolfProvider の設計とアーキテクチャの詳細については、[wolfProvider の設計](chapter09.md) の章を参照してください。 +![wolfProvider Overview](../png/wolfProvider_overview.png) - - - -![wolfProvider Overview](../png/wolfprovider_overview.png) - -wolfProvider は、デフォルトで **libwolfprovider** と呼ばれる共有ライブラリとしてコンパイルされます。これは、アプリケーションまたはコンフィギュレーションファイルを介して OpenSSL によって実行時に動的に登録できます。 wolfProvider は、アプリケーションが静的ビルドでコンパイルされたときにエンジンをロードするためのエントリ ポイントも提供します。 +wolfProviderは、**libwolfprovider** という名前の共有ライブラリとしてコンパイルされます。 +これは、アプリケーションまたはコンフィギュレーションファイルを介してOpenSSLによって実行時に動的に登録できます。 +wolfProviderは、アプリケーションが静的ビルドでコンパイルされたときにエンジンをロードするためのエントリポイントも提供します。 diff --git a/wolfProvider/src-ja/chapter02.md b/wolfProvider/src-ja/chapter02.md index 90517ef2..674d21d3 100644 --- a/wolfProvider/src-ja/chapter02.md +++ b/wolfProvider/src-ja/chapter02.md @@ -1,9 +1,9 @@ -# OpenSSL版との互換性 +# OpenSSLとの互換性 -wolfProvider は、以下のバージョンの OpenSSL に対してテストされています。 wolfProvider は他のバージョンでも動作する可能性がありますが、変更や調整が必要になる場合があります: +wolfProviderは、以下のバージョンのOpenSSLを使用してテストを実行しています。 +これ以外のバージョンでは、変更や調整が必要になる場合があります。 - OpenSSL 1.0.2h - OpenSSL 1.1.1b -wolfProvider に他の OpenSSL バージョンのサポート追加を希望される場合は、[facts@wolfssl.com](mailto:facts@wolfssl.com) にご連絡ください。 - +他のOpenSSLバージョンのサポート追加を希望される場合は、[info@wolfssl.jp](mailto:info@wolfssl.jp) にご連絡ください。 diff --git a/wolfProvider/src-ja/chapter03.md b/wolfProvider/src-ja/chapter03.md index f038ee95..fb7a80ae 100644 --- a/wolfProvider/src-ja/chapter03.md +++ b/wolfProvider/src-ja/chapter03.md @@ -1,17 +1,18 @@ -# wolfProvider のビルド +# wolfProviderのビルド -## wolfProvider のソースコードの取得 +## wolfProviderのダウンロード -wolfProvider の最新バージョンは、wolfSSL Inc. から直接入手できます。詳細については、[facts@wolfssl.com](mailto:facts@wolfssl.com) までお問い合わせください。 +wolfProviderの最新バージョンは、wolfSSL Inc. から直接入手できます。 +詳細については、[info@wolfssl.jp](mailto:info@wolfssl.jp)までお問い合わせください。 -## wolfProvider パッケージ構成 +## パッケージ構成 -一般的な wolfProvider パッケージは次のように構成されています: +wolfProviderパッケージは、以下のように構成しています。 ``` certs/ (ユニットテストで使用されるテスト用証明書、鍵) -provider.conf  (wolfProviderを使用する場合のOpenSSLコンフィギュレーションファイルサンプル) +provider.conf (wolfProviderを使用する場合のOpenSSLコンフィギュレーションファイルサンプル) include/ wolfprovider/ (wolfProviderヘッダーファイル) openssl_patches/ @@ -22,20 +23,21 @@ src/ (wolfProvider ソースファイル) test/ (wolfProvider テストファイル) user_settings.h (user_settings.hサンプル) ``` -## OpenSSL のバージョンに関する注意事項 -wolfProvider で使用されている OpenSSL のバージョンに応じて、次のようないくつかのアルゴリズム サポートの注意事項があります: +## OpenSSLのバージョンに関する注意事項 -- SHA-3 はOpenSSL versions 1.1.1以降でサポートされます -- EC_KEY_METHOD はOpenSSL versions 1.1.1以降でサポートされます +次に示すアルゴリズムを利用するには、併記したOpenSSLバージョンが必要です。 -## *nix 上でのビルド +- SHA-3:OpenSSL バージョン1.1.1以降が必要 +- EC_KEY_METHOD:OpenSSL バージョン1.1.1以降が必要 +## *nix上でのビルド ### OpenSSLをビルド -OpenSSL のプリインストールされたバージョンを wolfProvider で使用することも (上記のアルゴリズムの警告を除いて)、または OpenSSL を再コンパイルして wolfProvider で使用することもできます。 *nix のようなプラットフォームで OpenSSL をコンパイルするための一般的な手順は、次のようになります。 完全で包括的な OpenSSL のビルド手順については、OpenSSL INSTALL ファイルとドキュメントを参照してください。 - +すでにインストールされたOpenSSLを使用することも、新しく1からOpenSSLをコンパイルして使用することもできます。 +以下に、*nix(Linux, Unix)上でOpenSSLをコンパイルする一般的な手法を示します。 +より詳しいビルド手順をお求めでしたら、OpenSSLの[INSTALLファイル](https://github.com/openssl/openssl/blob/master/INSTALL.md)や[ドキュメント](https://docs.openssl.org/master/)をご参照ください。 ``` git clone https://github.com/openssl/openssl.git @@ -47,24 +49,26 @@ sudo make install ### wolfSSLをビルド -wolfProvider で wolfSSL の FIPS 検証済みバージョンを使用する場合は、特定の FIPS 検証済みソース バンドルとセキュリティ ポリシーで提供されるビルド手順に従ってください。 正しい「--enable-fips」設定オプションに加えて、wolfProvider は"**WOLFSSL_PUBLIC_MP**"が定義された状態で wolfSSL をコンパイルする必要があります。 たとえば、Linux で「wolfCrypt Linux FIPSv2」バンドルをビルドする場合: +wolfProviderでwolfSSL FIPS版を使用するには、特定のFIPS検証済みソースバンドルやセキュリティポリシーで指定されたビルド手順に従う必要があります。 +まずコンフィギュレーションオプションとして`--enable-fips`が必要で、かつ **WOLFSSL_PUBLIC_MP** が定義された状態でwolfSSLをコンパイルします。 +以下に、Linuxで「wolfCrypt Linux FIPSv2バンドル」をビルドする例を示します。 ``` cd wolfssl-X.X.X-commercial-fips-linuxv ./configure **--enable-fips=v2 CFLAGS=”-DWOLFSSL_PUBLIC_MP”** make ./wolfcrypt/test/testwolfcrypt -#--< fips_test.c 内の verifyCore を hash output from testwolfcryptスクリプトが出力するハッシュ値に更新してください >-- +#--< ここで、fips_test.c内のverifyCoreを開き、testwolfcryptスクリプトが出力するハッシュ値に更新してください >-- make ./wolfcrypt/test/testwolfcrypt -#--< 全アルゴリズムでパスするはずです>-- +#--< すべてのテストでPASSできるはずです >-- sudo make install ``` -wolfProvider で使用する非 FIPS wolfSSL をビルドするには: +非FIPS版のwolfSSLを使用する場合は、以下のようになります。 ``` cd wolfssl-X.X.X @@ -74,7 +78,8 @@ make sudo make install ``` -GitHub から wolfSSL をクローンする場合、`./configure` を実行する前に `autogen.sh` スクリプトを実行する必要があります。 これにより、configure スクリプトが生成されます: +なおwolfSSLをGitHubリポジトリから取得された場合は、`./configure`を実行する前に`autogen.sh`スクリプトを実行する必要があります。 +これにより、configureスクリプトが生成されます。 ``` ./autogen.sh @@ -82,70 +87,76 @@ GitHub から wolfSSL をクローンする場合、`./configure` を実行す ### wolfProviderをビルド -Linux またはその他の *nix ライクなシステムで wolfProvider をビルドする場合は、autoconf システムを使用してください。 wolfProvider を構成およびコンパイルするには、wolfProvider ルート ディレクトリから次の 2 つのコマンドを実行します: - +Linuxなどの*nixライクな環境でwolfProviderをビルドする場合は、autoconfをご利用ください。 +wolfProviderをビルドするには、wolfProviderのルートディレクトリ上で次のコマンドを実行します。 ``` ./configure make ``` -GitHub から wolfProvider を取得してビルドする場合は、configure を実行する前に autogen.sh を実行します: +wolfProviderをGitHubリポジトリから取得された場合は、`./configure`を実行する前に`autogen.sh`スクリプトを実行する必要があります。 + ``` ./autogen.sh ``` -任意の数のビルドオプションを ./configure に追加できます。 利用可能なビルド オプションのリストについては、以下の「ビルド オプション」セクションを参照するか、次のコマンドを実行して、./configure スクリプトに渡す利用可能なビルド オプションのリストを表示してください: - +任意の数のビルドオプションを `./configure` に追加できます。 +利用可能なビルドオプションの一覧については、後の「ビルドオプション」セクションに掲載しているほか、 +次のコマンドを実行することで表示できます。 ``` ./configure --help ``` -"--with-openssl"オプションで変更しない限り、wolfProvider はシステムのデフォルトの OpenSSL ライブラリのインストールを使用します: - +wolfProviderは通常、システムにインストールされたデフォルトのOpenSSLライブラリを使用します。 +`--with-openssl`オプションにより、特定のディレクトリに存在するOpenSSLを使用することもできます。 ``` ./configure --with-openssl=/usr/local/ssl ``` -カスタム OpenSSL のインストール場所も、ライブラリ検索パスに追加する必要となる場合があります。Linux では、`LD_LIBRARY_PATH` が使用されます: + +デフォルト以外のOpenSSLを使用する場合、ライブラリ検索パスに追加しなければならないケースがあります。 +Linuxシステムでは、次のように`LD_LIBRARY_PATH`を編集します。 ``` export LD_LIBRARY_PATH=/usr/local/ssl:$LD_LIBRARY_PATH ``` -wolfProvider をビルドしてインストールするには、以下を実行します: +wolfProviderをビルドしインストールするには、以下のコマンドを実行します。 ``` make make install ``` -インストールにはスーパーユーザー権限が必要な場合があります。その場合は、コマンドの前に sudo を付けます: +インストール時にはroot権限を求められる場合があります。 +その際は、コマンドの前に`sudo`を付加します。 ``` sudo make install ``` -ビルドをテストするには、ルート wolfProvider ディレクトリからビルトインテストを実行します: +ビルド結果をテストするには、wolfProviderのルートディレクトリで以下のコマンドを実行します。 ``` ./test/unit.test ``` -または autoconf を使用してテストを実行します: +次のように、autoconfを使用して実行することもできます。 ``` make check ``` -`error while loading shared libraries: libssl.so.3` のようなエラーが発生した場合は、ライブラリが見つからなかった為です。上記のセクションで説明したように、`LD_LIBRARY_PATH` 環境変数を使用します: - +ライブラリが見つからない場合、 +`error while loading shared libraries: libssl.so.3` +のようなエラーが発生します。 +環境変数`LD_LIBRARY_PATH`を編集することで解決しないかお試しください。 ## WinCE上でのビルド -wolfProvider との完全な互換性のために、wolfCrypt の `user_settings.h` ファイルに以下の定義があることを確認してください: - +wolfProviderとの互換性を保つために、wolfCryptの`user_settings.h`ファイルに以下の定義があることをご確認ください。 ``` #define WOLFSSL_CMAC @@ -161,27 +172,31 @@ wolfProvider との完全な互換性のために、wolfCrypt の `user_settings #define ECC_MIN_KEY_SZ=192 ``` -使用するアルゴリズムと機能に応じて、`user_settings.h` ファイルに wolfProvider フラグを追加します。 wolfProvider のディレクトリにある `user_settings.h` ファイルで、wolfProvider ユーザー設定フラグが参照できます。 - -Windows CE 用の wcecompat、wolfCrypt、および OpenSSL をビルドし、それらのパスを参照できるようにします。 +使用するアルゴリズムと機能に応じて、`user_settings.h`ファイルにwolfProviderフラグを追加します。 +wolfProviderディレクトリにある`user_settings.h`ファイルで、wolfProviderユーザー設定フラグを参照できます。 -wolfProvider ディレクトリでソースファイルを開き、OpenSSL、wolfCrypt、および `user_settings.h` パスを使用しているディレクトリに変更します。 INCLUDES セクションと TARGETLIBS セクションのパスを更新する必要があります。 +Windows CE用のwcecompat、wolfCrypt、およびOpenSSLをビルドし、それらのパスを参照できるようにします。 -Visual Studio で wolfProvider プロジェクトをロードします。 ベンチマークまたは単体テストを実行するかどうかに応じて、「bench.c」、または「unit.h」と「unit.c」のいずれかを含めます。 +wolfProviderディレクトリでソースファイルを開き、OpenSSL、wolfCrypt、および `user_settings.h` パスを使用しているディレクトリに変更します。 +INCLUDESセクションとTARGETLIBSセクションのパスを更新する必要があります。 -プロジェクトをビルドすると、wolfProvider.exe 実行可能ファイルが作成されます。 この実行可能ファイルを --help で実行すると、オプションの完全なリストが表示されます。 wolfProvider を静的エンジンとして使用するには、`--static` フラグを付けて実行する必要があります。 +Visual StudioでwolfProviderプロジェクトをロードします。 +ベンチマークまたは単体テストを実行する場合は、「bench.c」、または「unit.h」と「unit.c」のいずれかを含めます。 +プロジェクトをビルドすると、実行可能ファイルwolfProvider.exeが作成されます。 +この実行可能ファイルに`--help`の引数をつけて実行すると、オプションの一覧を表示できます。 +wolfProviderを静的エンジンとして使用するには`--static`を付けて実行する必要があります。 ## ビルドオプション (./configure に指定するオプション) -以下は、wolfProvider ライブラリの構築方法をカスタマイズする目的で `./configure` スクリプトに追加できるオプションです。 - -デフォルトでは、wolfProvider は共有ライブラリのみを構築し、静的ライブラリの構築は無効になっています。 これにより、ビルド時間が 2 倍速くなります。 どちらのモードも、必要に応じて明示的に無効または有効にすることができます。 +ライブラリの構築方法をカスタマイズするために`./configure`スクリプトに追加できるオプションを以下に示します。 +デフォルトでは、ビルド時間を半分にするために共有ライブラリのみをビルドします。 +必要に応じて、静的ライブラリをビルドしたり共有ライブラリのビルドを無効化したりできます。 | オプション | デフォルト | 意味 | | :--------- | :---------------: | :-------------- | -| --enable-static | **無効** | スタティックライブラリとしてビルド | +| --enable-static | **無効** | 静的ライブラリとしてビルド | | --enable-shared | 有効 | 共有ライブラリとしてビルド | | --enable-debug | **無効** | wolfProviderのデバッグ出力を有効にする | | --enable-coverage | **無効** | コードカバレッジレポートを作成する用ビルド | @@ -224,13 +239,13 @@ Visual Studio で wolfProvider プロジェクトをロードします。 ベン ## ビルド用マクロ定義 -wolfProvider は、ユーザーが wolfProvider の構築方法を設定できるようにするいくつかのプリプロセッサマクロを公開しています。 これらについては、次の表で説明します: - +wolfProviderは、お客様がwolfProviderのビルド方法を設定できるようにするいくつかのプリプロセッサマクロを公開しています。 +以下にその一覧を示します。 | マクロ定義 | 意味 | -| :---------------------------------------------- | :-------------- | -| WOLFPROVIDER_DEBUG | デバッグ シンボル、最適化レベル、デバッグ ロギングを使用して wolfProvider をビルドします | -| WP_NO_DYNAMIC_PROVIDER | wolfProviderをダイナミックエンジンとしてビルドしない。ダイナミックエンジンとはOpenSSLが実行時に動的にロードするエンジンです。 | +| :---------- | :--------------------- | +| WOLFPROVIDER_DEBUG | デバッグシンボル、最適化レベル、デバッグロギングを使用してwolfProviderをビルドします | +| WP_NO_DYNAMIC_PROVIDER | wolfProviderをダイナミックエンジンとしてビルドしない。ダイナミックエンジンとは、OpenSSLが実行時に動的にロードするエンジンのことです。 | | WP_SINGLE_THREADED | wolfProviderをシングルスレッドモードでビルドする。このマクロ定義によりグローバルリソースの使用の排他用に内部的に使用するロック機構を取り除きます。| | WP_USE_HASH | ハッシュアルゴリズムを wc_Hash APIを使って有効にする | | WP_HAVE_SHA1 | SHA-1 を有効にする | @@ -238,30 +253,30 @@ wolfProvider は、ユーザーが wolfProvider の構築方法を設定でき | WP_HAVE_SHA256 | SHA-2 256を有効にする | | WP_HAVE_SHA384 | SHA-2 384を有効にする | | WP_HAVE_SHA512 | SHA-2 512を有効にする | -| WP_SHA1_DIRECT | SHA-1 をwc_Sha APIを使って有効にする。WP_USE_HASHとはコンパチブルではない | -| WP_SHA224_DIRECT | SHA-2 224 を wc_Sha224 APIを使って有効にする。WP_USE_HASHとはコンパチブルではない | -| WP_SHA256_DIRECT | SHA-2 256 を wc_Sha256 APIを使って有効にする。WP_USE_HASHとはコンパチブルではない | +| WP_SHA1_DIRECT | SHA-1 をwc_Sha APIを使って有効にする。WP_USE_HASHとは同時に指定できません。 | +| WP_SHA224_DIRECT | SHA-2 224 を wc_Sha224 APIを使って有効にする。WP_USE_HASHとは同時に指定できません。 | +| WP_SHA256_DIRECT | SHA-2 256 を wc_Sha256 APIを使って有効にする。WP_USE_HASHとは同時に指定できません。 | | WP_HAVE_SHA3_224 | SHA-3 224を有効にする(OpenSSL 1.0.2では利用不可)| | WP_HAVE_SHA3_256 | SHA-3 256を有効にする(OpenSSL 1.0.2では利用不可)| | WP_HAVE_SHA3_384 | SHA-3 384を有効にする(OpenSSL 1.0.2では利用不可)| | WP_HAVE_SHA3_512 | SHA-3 512を有効にする(OpenSSL 1.0.2では利用不可)| | WP_HAVE_EVP_PKEY | EVP_PKEY APIを使用する機能を有効にする(RSA, DH等も含む) | -| WP_HAVE_CMAC | CMAC を有効にする | -| WP_HAVE_HMAC | HMAC を有効にする | -| WP_HAVE_DES3CBC | DES3-CBC を有効にする | -|WP_HAVE_AESECB | AES-ECB を有効にする | -| WP_HAVE_AESCBC | AES-CBC を有効にする | +| WP_HAVE_CMAC | CMACを有効にする | +| WP_HAVE_HMAC | HMACを有効にする | +| WP_HAVE_DES3CBC | DES3-CBCを有効にする | +| WP_HAVE_AESECB | AES-ECBを有効にする | +| WP_HAVE_AESCBC | AES-CBCを有効にする | | WP_HAVE_AESCTR | AES-countee modeを有効にする | -| WP_HAVE_AESGCM | AES-GCM を有効にする | -| WP_HAVE_AESCCM | AES-CCM を有効にする | -| WP_HAVE_RANDOM | wolfCrypt の疑似乱数生成実装を有効にする | -| WP_HAVE_RSA | RSA 操作 (すなわち 署名, 検証, 鍵生成等)を有効にする | -| WP_HAVE_DH | Diffie-Hellman 操作 (すなわち 鍵生成, 共有シークレット計算等)を有効にする | +| WP_HAVE_AESGCM | AES-GCMを有効にする | +| WP_HAVE_AESCCM | AES-CCMを有効にする | +| WP_HAVE_RANDOM | wolfCryptの疑似乱数生成実装を有効にする | +| WP_HAVE_RSA | RSA操作(署名、検証、鍵生成等)を有効にする | +| WP_HAVE_DH | Diffie-Hellman操作(鍵生成、共有シークレット計算等)を有効にする | | WP_HAVE_ECC | 楕円曲線暗号を有効にする | | WP_HAVE_EC_KEY | EC_KEY_METHODのサポートを有効にする(OpenSSL 1.0.2では利用不可) | | WP_HAVE_ECDSA | ECDSA を有効にする | -| WP_HAVE_ECDH | EC Diffie-Hellman operationsを有効にする | -| WP_HAVE_ECKEYGEN | EC key generationを有効にする | +| WP_HAVE_ECDH | EC Diffie-Hellman操作を有効にする | +| WP_HAVE_ECKEYGEN | EC鍵生成を有効にする | | WP_HAVE_EC_P192 | EC Curve P192を有効にする | | WP_HAVE_EC_P224 | EC Curve P224を有効にする | | WP_HAVE_EC_P256 | EC Curve P256を有効にする | diff --git a/wolfProvider/src-ja/chapter04.md b/wolfProvider/src-ja/chapter04.md index 1aca1bd1..f61750d8 100644 --- a/wolfProvider/src-ja/chapter04.md +++ b/wolfProvider/src-ja/chapter04.md @@ -1,13 +1,18 @@ -# FIPS 140-2 のサポート +# FIPS 140-2のサポート -wolfProvider は、FIPS で検証されたバージョンの wolfCrypt に対してコンパイルされた場合に、FIPS 140-2 で検証されたバージョンの wolfCrypt で動作するように設計されています。 この使用シナリオには、wolfSSL Inc. から入手した、適切にライセンスされ、検証されたバージョンの wolfCrypt が必要です。 +wolfProviderは,FIPSで検証されたバージョンのwolfCryptに対して適切にコンパイルされた場合にのみ、FIPS140-2に対応した動作を行うよう設計しています。 +この使用シナリオには、wolfSSL Inc. から入手した、適切にライセンスされ、検証されたバージョンのwolfCryptが必要です。 -wolfCrypt FIPS ライブラリは、非 FIPS モードに「切り替える」ことができないことに注意してください。 wolfCrypt FIPS と通常の wolfCrypt は、2 つの別個のソース コード パッケージです。 +wolfCrypt FIPSライブラリは、非FIPSモードに「切り替える」ことができません。 +通常の非FIPS版wolfCryptとFIPS版wolfCryptは、それぞれ別々のソースコードパッケージで提供しています。 -wolfProvider が wolfCrypt FIPS を使用するようにコンパイルされると、FIPS で検証されたアルゴリズム、モード、およびキー サイズのサポートおよび登録エンジン コールバックのみが含まれます。 OpenSSL ベースのアプリケーションが非 FIPS 検証済みアルゴリズムを呼び出す場合、実行は wolfProvider に入らず、OpenSSL 構成に基づいて、デフォルトの OpenSSL エンジンまたは他の登録済みエンジン プロバイダーによって処理される可能性があります。 - -**注** : FIPS 準拠を対象としており、wolfCrypt 以外の FIPS アルゴリズムが別のエンジンから呼び出される場合、それらのアルゴリズムは wolfProvider および wolfCrypt FIPS であり、FIPS で検証されていない可能性があります。 - -wolfCrypt FIPS (140-2 / 140-3) の使用に関する詳細については、wolfSSL (facts@wolfssl.com) までお問い合わせください。 +wolfProviderをFIPS版wolfCryptを使用するようにコンパイルすると、 +FIPSで検証されたアルゴリズム、モード、および鍵サイズのサポートおよび登録エンジンコールバックのみが含まれます。 +OpenSSLベースのアプリケーションがFIPS検証が行われていないアルゴリズムを呼び出す場合、実行はwolfProviderに入らず、 +OpenSSL構成に基づいて、デフォルトのOpenSSLエンジンまたは他の登録済みエンジンプロバイダーによって処理される可能性があります。 +**注**:wolfCrypt以外に実装されたFIPSアルゴリズムを別のプロバイダーから呼び出す場合、 +それらのアルゴリズムはwolfProviderおよびFIPS版wolfCryptのスコープに含みません。 +FIPS認証取得に際し、問題となる可能性があります。 +FIPS版wolfCrypt(140-2/140-3)の使用に関する詳細については、wolfSSL(info@wolfssl.jp)までお問い合わせください。 \ No newline at end of file diff --git a/wolfProvider/src-ja/chapter05.md b/wolfProvider/src-ja/chapter05.md index d8021e69..eaea0b00 100644 --- a/wolfProvider/src-ja/chapter05.md +++ b/wolfProvider/src-ja/chapter05.md @@ -1,15 +1,20 @@ -# ロギング +# ログ出力 + +wolfProviderは、情報提供とデバッグを目的としたログメッセージの出力をサポートしています。 +デバッグログ出力を有効にするには、最初にデバッグサポートを有効にしてwolfProviderをコンパイルする必要があります。 +autoconfを使用している場合、これは`./configure`に`--enable-debug`オプションを加えることで実現できます。 -wolfProvider は、情報提供とデバッグを目的としたログ メッセージの出力をサポートしています。 デバッグ ロギングを有効にするには、最初にデバッグ サポートを有効にして wolfProvider をコンパイルする必要があります。 Autoconf を使用している場合、これは `./configure` に `--enable-debug` オプションを使用して行われます: ``` ./configure --enable-debug ``` -Autoconf/configure を使用しない場合は、wolfProvider ライブラリをコンパイルするときに `WOLFPROVIDER_DEBUG` を定義します。 +autoconf/configureを使用しない場合は、wolfProviderライブラリをコンパイルする際に `WOLFPROVIDER_DEBUG` を定義します。 ## デバッグログの有効化/無効化 -デバッグ サポートがライブラリにコンパイルされたら、セクション 5 で指定された wolfProvider コントロール コマンドを使用して実行時にデバッグを有効にする必要があります。 0" を指定すると、ロギングが無効になります。 `PROVIDER_ctrl_cmd()` API を使用してロギングを有効にするには: +デバッグサポートを有効化してコンパイルを行った後、以下に示すwolfProviderコントロールコマンドを使用して実行時にデバッグを有効にする必要があります。 +"0" を指定すると、ログ出力が無効になります。 +`PROVIDER_ctrl_cmd()` APIを使用してログ出力を有効にする例を以下に示します。 ``` int ret = 0; @@ -19,26 +24,28 @@ if (ret != 1) { } ``` -wolfProvider がデバッグ サポートを有効にしてコンパイルされていない場合、`PROVIDER_ctrl_cmd()` で `enable_debug` を設定しようとすると失敗 (0) が返されます。 - -## ロギングレベルの制御 +wolfProviderがデバッグサポート無効の状態でコンパイルされた場合、`PROVIDER_ctrl_cmd()`で`enable_debug`を設定しようとすると失敗(0)が返されます。 -wolfProvider は以下のロギング レベルをサポートします。 これらは、"include/wolfprovider/wp_logging.h"ヘッダー ファイルで、wolfProvider_LogType enum の一部として定義されています: +## ログ出力レベルの制御 -| ロギングレベル | 意味 | レベル値 | -| :-------------- | :------------------------------|:-------------------- | -| WP_LOG_ERROR | エラーをロギングする | 0x0001 | -| WP_LOG_ENTER | 関数に入った際にロギングする | 0x0002 | -| WP_LOG_LEAVE | 関数を抜ける際にロギングする | 0x0004 | -| WP_LOG_INFO | 情報提供のメッセージをロギングする | 0x0008 | -| WP_LOG_VERBOSE | 暗号化/復号のデータを含めた詳細ログ | 0x0010 | -| WP_LOG_LEVEL_DEFAULT | デフォルトのログレベル(VERBOS以外を全て含む) | WP_LOG_ERROR | WP_LOG_ENTER | WP_LOG_LEAVE | WP_LOG_INFO | -|WP_LOG_LEVEL_ALL WP_LOG_ERROR | 全ログレベルが有効 | WP_LOG_ENTER | WP_LOG_LEAVE | WP_LOG_INFO | WP_LOG_VERBOSE | +wolfProviderは以下のログ出力レベルをサポートします。 +これらは、`include/wolfprovider/wp_logging.h`で、`wolfProvider_LogType enum`の一部として定義しています。 +| ログ出力レベル | 意味 | レベル値 | +| :---------------- | :------------------------------|:----------------- | +| WP_LOG_ERROR | エラーログを出力 | 0x0001 | +| WP_LOG_ENTER | 関数に入った際にログを出力 | 0x0002 | +| WP_LOG_LEAVE | 関数を抜ける際にログを出力 | 0x0004 | +| WP_LOG_INFO | 情報提供のメッセージをログを出力 | 0x0008 | +| WP_LOG_VERBOSE | 暗号化/復号のデータを含めた詳細ログを出力 | 0x0010 | +| WP_LOG_LEVEL_DEFAULT | デフォルトのログレベル(VERBOSE以外を全て含む) | WP_LOG_ERROR | WP_LOG_ENTER | WP_LOG_LEAVE | WP_LOG_INFO | +| WP_LOG_LEVEL_ALL WP_LOG_ERROR | 全てのログを出力 | WP_LOG_ENTER | WP_LOG_LEAVE | WP_LOG_INFO | WP_LOG_VERBOSE | -デフォルトの wolfProvider ロギング レベルには、"WP_LOG_ERROR"、"WP_LOG_ENTER"、"WP_LOG_LEAVE"、および"WP_LOG_INFO"が含まれます。 これには、詳細ログ (`WP_LOG_VERBOSE`) を除くすべてのログ レベルが含まれます。 +デフォルトのwolfProviderログ出力レベルには、`WP_LOG_ERROR`、`WP_LOG_ENTER`、`WP_LOG_LEAVE`、`WP_LOG_INFO`を含みます。 +すなわち、詳細ログ(`WP_LOG_VERBOSE`) を除くすべてのログが出力されます。 -ログ レベルは、`PROVIDER_ctrl_cmd()` API または OpenSSL 構成ファイル設定のいずれかを介して、実行時に"**log_level**"エンジン制御コマンドを使用して制御できます。 たとえば、"log_level"制御コマンドを使用してエラー ログと情報ログのみを有効にするには、アプリケーションで次のように呼び出します: +ログレベルは、`PROVIDER_ctrl_cmd()`APIまたはOpenSSL構成ファイル設定のいずれかを介して、実行時に"**log_level**"エンジン制御コマンドを使用して制御できます。 +例えば、"log_level"制御コマンドを使用してエラーログと情報ログのみを有効にするには、アプリケーションで次のように実装します。 ``` #include @@ -50,13 +57,14 @@ if (ret != 1) { } ``` -## コンポーネント単位のロギングの制御 +## コンポーネント単位のログ出力の制御 -wolfProvider では、コンポーネントごとにログを記録できます。 コンポーネントは `include/wolfprovider/wp_logging.h` の wolfProvider_LogComponents 列挙で定義されます: +wolfProviderでは、コンポーネントごとにログを出力できます。 +コンポーネントは`include/wolfprovider/wp_logging.h`の`wolfProvider_LogComponents`に定義しています。 | ログ対象コンポーネント | 意味 | コンポーネントを示す値 | -| :------------------- |:---- |:-------------------- | -| WP_LOG_RNG | ランダム数生成コンポーネント | 0x0001 | +| :----------- |:----------- |:---------- | +| WP_LOG_RNG | 乱数生成コンポーネント | 0x0001 | | WP_LOG_DIGEST | ダイジェストコンポーネント (SHA-1/2/3) | 0x0002 | | WP_LOG_MAC | MAC機能コンポーネント (HMAC, CMAC) | 0x0004 | | WP_LOG_CIPHER | 暗号化コンポーネント(AES, 3DES) | 0x0008 | @@ -66,10 +74,12 @@ wolfProvider では、コンポーネントごとにログを記録できます | WP_LOG_COMPONENTS_ALL | 全コンポーネント | WP_LOG_RNG | WP_LOG_DIGEST | WP_LOG_MAC | WP_LOG_CIPHER | WP_LOG_PK | WP_LOG_KE | WP_LOG_PROVIDER | | WP_LOG_COMPONENTS_DEFAULT | デフォルトコンポーネント (all). | WP_LOG_COMPONENTS_ALL | +デフォルトでは、すべてのコンポーネントを対象としてログを出力します(`WP_LOG_COMPONENTS_DEFAULT`)。 -デフォルトの wolfProvider ロギング構成は、すべてのコンポーネントをログに記録します (`WP_LOG_COMPONENTS_DEFAULT`)。 +ログ出力の対象とするコンポーネントは、`PROVIDER_ctrl_cmd()`APIまたはOpenSSL構成ファイル設定のいずれかを介して、 +実行時に"**log_components**"エンジン制御コマンドを使用して制御できます。 +たとえば、DigestおよびCipherアルゴリズムのみのログ出力を有効にするには、次のようにします。 -ログに記録されたコンポーネントは、`PROVIDER_ctrl_cmd()` API または OpenSSL 構成ファイル設定のいずれかを介して、実行時に"**log_components**"エンジン制御コマンドを使用して制御できます。 たとえば、Digest および Cipher アルゴリズムのロギングのみをオンにするには、次のようにします: ``` #include @@ -79,11 +89,13 @@ if (ret != 1) { printf(“Failed to set log components\n”); } ``` -## カスタムロギングコールバックの設定 -デフォルトでは、wolfProvider は **fprintf()** を使用してデバッグ ログ メッセージを **stderr** に出力します。 +## カスタムログ出力コールバックの設定 + +デフォルトでは、wolfProviderは **fprintf()** を使用してデバッグログメッセージを **stderr** に出力します。 -ログ メッセージの出力方法や出力場所をより詳細に制御したいアプリケーションは、カスタム ロギング コールバックを記述して wolfProvider に登録できます。 ロギング コールバックは、`include/wolfprovider/wp_logging.h` の wolfProvider_Logging_cb のプロトタイプと一致する必要があります: +ログメッセージの出力方法や出力場所を変更したい場合は、カスタムログ出力コールバック関数を記述してwolfProviderに登録します。 +その際、`include/wolfprovider/wp_logging.h`に示す`wolfProvider_Logging_cb`のプロトタイプ宣言と一致させる必要があります。 ``` /** @@ -95,7 +107,8 @@ if (ret != 1) { typedef void (*wolfProvider_Logging_cb)(const int logLevel, const int component, const char *const logMessage); ``` -その後、"**set_logging_cb**"エンジン制御コマンドを使用して、コールバックを wolfProvider に登録できます。 たとえば、`PROVIDER_ctrl_cmd()` API を使用してカスタム ロギング コールバックを設定するには、次のようにします: +その後、"**set_logging_cb**"エンジン制御コマンドを使用して、コールバック関数をwolfProviderに登録できます。 +例えば、`PROVIDER_ctrl_cmd()`APIを使用してカスタムログ出力コールバック関数を設定するには次のようにします。 ``` diff --git a/wolfProvider/src-ja/chapter06.md b/wolfProvider/src-ja/chapter06.md index def0dd4c..78d05884 100644 --- a/wolfProvider/src-ja/chapter06.md +++ b/wolfProvider/src-ja/chapter06.md @@ -1,21 +1,25 @@ # 移植性 -wolfProvider は、関連する wolfCrypt および OpenSSL ライブラリの移植性を活用するように設計されています。 +wolfProviderは、関連するwolfCryptおよびOpenSSLライブラリの移植性を活用するように設計しています。 ## スレッド対応 -wolfProvider はスレッド セーフであり、必要に応じて wolfCrypt (`wc_LockMutex()`、`wc_UnLockMutex()`) のミューテックス ロック メカニズムを使用します。 wolfCrypt には、サポートされているプラットフォーム用に抽象化されたミューテックス操作があります。 +wolfProviderはスレッドセーフであり、必要に応じてwolfCryptのミューテックスロックメカニズム`wc_LockMutex()`、`wc_UnLockMutex()`を使用します。 +wolfCryptには、サポートしているプラットフォーム用に抽象化されたミューテックス操作があります。 ## 動的メモリ使用 -wolfProvider は、OpenSSL のメモリ割り当て関数を使用して、OpenSSL の動作との一貫性を維持します。 wolfProvider の内部で使用される割り当て関数には、"OPENSSL_malloc()"、"OPENSSL_free()"、"OPENSSL_zalloc()"、および"OPENSSL_realloc()"が含まれます。 +wolfProviderはOpenSSLのメモリ割り当て関数を使用して、OpenSSLの動作との一貫性を維持します。 +wolfProviderの内部で使用される割り当て関数には、`OPENSSL_malloc()`、`OPENSSL_free()`、`OPENSSL_zalloc()`、`OPENSSL_realloc()`があります。 -## ロギング +## ログ出力 -wolfProvider はデフォルトで `fprintf()` 経由で stderr にログを記録します。 アプリケーションは、カスタム ロギング関数を登録することでこれをオーバーライドできます ([第 6 章](chapter06.md) を参照)。 +wolfProviderはデフォルトで`fprintf()`によりstderrにログを出力します。 +アプリケーションは、カスタムロギング関数を登録することでこれをオーバーライドできます。 +詳しくは[5章](chapter05.md)をご覧ください。 -ログの動作を調整するために wolfProvider をコンパイルするときに定義できる追加のマクロには、次のものがあります: +wolfProviderをコンパイルする際、以下のマクロを追加することでログの動作を調整できます。 -**WOLFPROVIDER_USER_LOG** - ログ出力の関数名を定義するマクロ。 ユーザーは、これを fprintf の代わりに使用するカスタム ログ関数に定義できます +**WOLFPROVIDER_USER_LOG** - ログ出力の関数名を定義するマクロ。お客様はこれをfprintfの代わりに使用するカスタムログ関数として定義できます。 -**WOLFPROVIDER_LOG_PRINTF** - fprintf (stderr) を切り替えて、代わりに printf (stdout) を使用するように定義します。 WOLFPROVIDER_USER_LOG またはカスタム ロギング コールバックを使用している場合は適用されません。 +**WOLFPROVIDER_LOG_PRINTF** - `fprintf(stderr)`ではなく、代わりに`printf(stdout)`を使用するように定義します。`WOLFPROVIDER_USER_LOG`またはカスタムロギングコールバックを使用している場合は適用されません。 diff --git a/wolfProvider/src-ja/chapter07.md b/wolfProvider/src-ja/chapter07.md index 9fae572d..5fb7e11a 100644 --- a/wolfProvider/src-ja/chapter07.md +++ b/wolfProvider/src-ja/chapter07.md @@ -1,13 +1,15 @@ # wolfProviderのロード -## OpenSSLをエンジン使用可能に構成 +## OpenSSLをエンジンを利用できるように構成 -アプリケーションが OpenSSL エンジンを使用および使用する方法に関するドキュメントについては、OpenSSL のドキュメントを参照してください: +アプリケーションがOpenSSLエンジンを使用および使用する方法については、OpenSSLのドキュメントをご参照ください。 -[OpenSSL 1.0.2](https://www.openssl.org/docs/man1.0.2/man3/provider.html) -[OpenSSL 1.1.1](https://www.openssl.org/docs/man1.1.1/man3/PROVIDER_add.html) +- [OpenSSL 1.0.2](https://www.openssl.org/docs/man1.0.2/man3/provider.html) +- [OpenSSL 1.1.1](https://www.openssl.org/docs/man1.1.1/man3/PROVIDER_add.html) -アプリケーションがエンジンの使用を消費、登録、および構成するために選択できる方法はいくつかあります。 最も単純な使用法では、OpenSSL にバンドルされているすべての PROVIDER 実装をロードして登録するには、アプリケーションで次を呼び出す必要があります (上記の OpenSSL ドキュメントから引用): +アプリケーションがエンジンを使用するための方法はいくつかあります。 +最も単純なものとして、OpenSSLにバンドルされているすべてのPROVIDER実装をロードして登録し、アプリケーションで次のコードを呼び出す方法があります。 + (上記のOpenSSLドキュメントから引用しています) ``` /* For OpenSSL 1.0.2, need to make the “dynamic” PROVIDER available */ PROVIDER_load_dynamic(); @@ -18,36 +20,47 @@ PROVIDER_load_builtin_providers(); /* Register all of them for every algorithm they collectively implement */ PROVIDER_register_all_complete(); ``` -この時点で、アプリケーションが OpenSSL 構成ファイルを読み取り/使用するように構成されている場合は、そこで追加のエンジン セットアップ手順を実行できます。 OpenSSL 構成ドキュメントについては、OpenSSL ドキュメントを参照してください: -[OpenSSL 1.0.2 ドキュメント](https://www.openssl.org/docs/man1.0.2/man3/OPENSSL_config.html)
-[OpenSSL 1.1.1 ドキュメント](https://www.openssl.org/docs/man1.1.1/man3/OPENSSL_config.html) +アプリケーションがOpenSSL設定ファイルを使用するように設定されている場合、 +追加のプロバイダー設定ステップをそこで行うことができます。 +OpenSSLを構成する方法については、OpenSSLドキュメントをご覧ください。 + +- [OpenSSL 1.0.2 ドキュメント](https://www.openssl.org/docs/man1.0.2/man3/OPENSSL_config.html) +- [OpenSSL 1.1.1 ドキュメント](https://www.openssl.org/docs/man1.1.1/man3/OPENSSL_config.html) + +アプリケーションはデフォルトのOpenSSL構成ファイル (`openssl.cnf`)や、 +`OPENSSL_CONF`環境変数によって設定された構成の `[openssl_conf]` セクションを呼び出して、読み取り、使用できます。 -たとえば、アプリケーションは、デフォルトの OpenSSL 構成ファイル (openssl.cnf) または OPENSSL_CONF 環境変数によって設定された構成、およびデフォルトの [openssl_conf] セクションを呼び出して、読み取り、使用できます ``` OPENSSL_config(NULL); ``` -OpenSSL コンフィギュレーションファイルを使用する代わりに、アプリケーションは希望の PROVIDER_* API を使用して明示的に wolfProvider を初期化および登録できます。 一例として、wolfProvider の初期化とすべてのアルゴリズムの登録は、以下を使用して行うことができます: +OpenSSLコンフィギュレーションファイルを使用する代わりに、アプリケーションは`PROVIDER_*` APIを使用して明示的に wolfProviderの初期化やアルゴリズムの登録を行うこともできます。 +一例として、wolfProviderの初期化とすべてのアルゴリズムの登録を行う場合を以下に示します。 + ``` PROVIDER* e = NULL; e = PROVIDER_by_id(“wolfprovider”); if (e == NULL) { -printf(“Failed to find wolfProvider\n”); -/* error */ + printf(“Failed to find wolfProvider\n”); + /* error */ } PROVIDER_set_default(e, PROVIDER_METHOD_ALL); -/* normal application execution / behavior */ +/* アプリケーションの実装 */ PROVIDER_finish(e); PROVIDER_cleanup(); ``` -## OpenSSL コンフィギュレーションファイルからの wolfProvider のロード +## OpenSSLコンフィギュレーションファイルによるwolfProviderのロード -OpenSSLを使用するアプリケーションがコンフィギュレーションファイルを処理するように設定されている場合、wolfProviderはOpenSSLコンフィギュレーションファイルからロードできます。 wolfProvider ライブラリをコンフィギュレーションファイルに追加する方法の例を以下に示します。 [wolfssl_section] は、必要に応じてエンジン制御コマンド (enable_debug) を設定するように変更できます。 +OpenSSLを使用するアプリケーションがコンフィギュレーションファイルを処理するように設定されている場合、 +wolfProviderはOpenSSLコンフィギュレーションファイルからロードできます。 + +wolfProviderライブラリをコンフィギュレーションファイルに追加する方法の例を以下に示します。 +`[wolfssl_section]`は、必要に応じてエンジン制御コマンド(`enable_debug`)を設定するように変更できます。 ``` openssl_conf = openssl_init @@ -71,9 +84,11 @@ amounts of output. # enable_debug = 1 ``` -## wolfProvider 静的エントリポイント +## wolfProvider静的エントリポイント + +wolfProviderを静的ライブラリとして使用する場合、アプリケーションは次のエントリポイントを呼び出して +wolfProviderをロードできます。 -wolfProvider がスタティック ライブラリとして使用される場合、アプリケーションは次のエントリ ポイントを呼び出して wolfProvider をロードできます: ``` #include PROVIDER_load_wolfprovider(); diff --git a/wolfProvider/src-ja/chapter08.md b/wolfProvider/src-ja/chapter08.md index a18cb61a..a4541985 100644 --- a/wolfProvider/src-ja/chapter08.md +++ b/wolfProvider/src-ja/chapter08.md @@ -1,38 +1,42 @@ -# wolfProvider の設計 +# wolfProviderの設計 -wolfProvider は次のソース ファイルで構成され、すべて wolfProvider パッケージの"src"サブディレクトリの下にあります。 +wolfProviderは次のソースファイルで構成され、すべてwolfProviderパッケージの`src`サブディレクトリの下にあります。 | ソースファイル | 詳細 | -| --------------- | ---------------- | -| wp_wolfprovider.c | ライブラリ エントリ ポイントが含まれます。 OpenSSL エンジン フレームワークを使用してライブラリを動的にロードするために OpenSSL IMPLEMENT_DYNAMIC_BIND_FN を呼び出します。 コンパイルしてスタティック ライブラリとして使用する場合のスタティック エントリ ポイントも含まれます | -| wp_internal.c | エンジン アルゴリズム コールバックの登録を処理する wolfprovider_bind() 関数が含まれています。 他の wolfprovider の内部機能も含まれています。 | -| wp_logging.c | wolfProvider ロギング フレームワークと関数の実装 | -| wp_openssl_bc.c | wolfProvider OpenSSL バイナリ互換抽象化レイヤー。複数の OpenSSL バージョンで wolfProvider をサポートするために使用されます。 | -| wp_aes_block.c | wolfProvider AES-ECB および AES-CBC の実装 | -| wp_aes_cbc_hmac.c | wolfProvider AES-CBC-HMAC 実装 | -| wp_aes_ccm.c | wolfProvider AES-CCM 実装 | -| wp_aes_ctr.c | wolfProvider AES-CTR 実装 | -| wp_aes_gcm.c | wolfProvider AES-GCM 実装 | -| wp_des3_cbc.c | wolfProvider 3DES-CBC の実装 | -| wp_dh.c | wolfProvider DH の実装 | -| wp_digest.c | wolfProvider メッセージ ダイジェストの実装 (SHA-1、SHA-2、SHA-3) | -| wp_ecc.c | wolfProvider ECDSA および ECDH の実装 | -| wp_mac.c | wolfProvider HMAC および CMAC の実装 | -| wp_random.c | wolfProvider RAND 実装 | -| wp_rsa.c | wolfProvider RSA 実装 | -| wp_tls_prf.c | wolfProvider TLS 1.0 PRF 実装 | +| ---- | ---------------- | +| wp_wolfprovider.c | ライブラリエントリポイントが含まれます。 OpenSSLエンジンフレームワークを使用してライブラリを動的にロードするために、OpenSSL IMPLEMENT_DYNAMIC_BIND_FNを呼び出します。コンパイルして静的ライブラリとして使用する場合のスタティックエントリポイントも含みます。 | +| wp_internal.c | エンジンアルゴリズムコールバックの登録を処理する`wolfprovider_bind()`関数が含まれています。他のwolfProviderの内部機能も含みます。 | +| wp_logging.c | wolfProviderログ出力フレームワークと関数の実装 | +| wp_openssl_bc.c | wolfProvider OpenSSLバイナリ互換抽象化レイヤーです。複数のOpenSSLバージョンでwolfProviderをサポートするために使用します。 | +| wp_aes_block.c | wolfProvider AES-ECBおよびAES-CBC実装 | +| wp_aes_cbc_hmac.c | wolfProvider AES-CBC-HMAC実装 | +| wp_aes_ccm.c | wolfProvider AES-CCM実装 | +| wp_aes_ctr.c | wolfProvider AES-CTR実装 | +| wp_aes_gcm.c | wolfProvider AES-GCM実装 | +| wp_des3_cbc.c | wolfProvider 3DES-CBCの実装 | +| wp_dh.c | wolfProvider DHの実装 | +| wp_digest.c | wolfProvider メッセージダイジェストの実装(SHA-1、SHA-2、SHA-3) | +| wp_ecc.c | wolfProvider ECDSAおよびECDHの実装 | +| wp_mac.c | wolfProvider HMACおよびCMACの実装 | +| wp_random.c | wolfProvider RAND実装 | +| wp_rsa.c | wolfProvider RSA実装 | +| wp_tls_prf.c | wolfProvider TLS 1.0 PRF実装 | + +## wolfProviderエントリーポイント + +wolfProviderライブラリへの主なエントリポイントは、**wolfprovider_bind** () または **PROVIDER_load_wolfprovider** () のいずれかです。 +wolfProviderが動的にロードされている場合、`wolfprovider_bind()`はOpenSSL によって自動的に呼び出されます。 +`PROVIDER_load_wolfprovider()` はwolfProvider静的に構築および使用されている場合に、アプリケーションが呼び出す必要があるエントリポイントです。 + +## wolfProviderアルゴリズムコールバック登録 + +wolfProviderは、FIPS版wolfCryptでサポートしているすべてのコンポーネントに対して、アルゴリズム構造体とコールバックを OpenSSLエンジンフレームワークに登録します。 +この登録は、`wp_internal.c` の `wolfprovider_bind()` 内で行われます。 +`wolfprovider_bind()`は、wolfProvider エンジンを表す`PROVIDER`構造体ポインタを受け取ります。 +次に、個々のアルゴリズム/コンポーネントのコールバックまたは構造体が、``の適切なAPIを使用してその`PROVIDER`構造体に登録されます。 + +これらのAPI呼び出しには、以下のものが含まれます。 -## wolfProvider エントリーポイント - -wolfProvider ライブラリへの主なエントリ ポイントは、**wolfprovider_bind** () または **PROVIDER_load_wolfprovider** () のいずれかです。 wolfProvider が動的にロードされている場合、wolfprovider_bind() は OpenSSL によって自動的に呼び出されます。 PROVIDER_load_wolfprovider() は、wolfProvider が動的ではなく静的に構築および使用されている場合に、アプリケーションが呼び出す必要があるエントリ ポイントです。 - -## wolfProvider アルゴリズム コールバック登録 - -wolfProvider は、wolfCrypt FIPS でサポートされているすべてのコンポーネントに対して、アルゴリズム構造体とコールバックを OpenSSL エンジン フレームワークに登録します。 この登録は、`wp_internal.c` の `wolfprovider_bind()` 内で行われます。 `wolfprovider_bind()` は、wolfProvider エンジンを表す PROVIDER 構造体ポインタを受け取ります。 次に、個々のアルゴリズム/コンポーネントのコールバックまたは構造体が、 の適切な API を使用してその PROVIDER 構造体に登録されます。 - - - -これらの API 呼び出しには、次のものが含まれます: ``` PROVIDER_set_id(e, wolfprovider_id) PROVIDER_set_name(e, wolfprovider_name) @@ -51,4 +55,5 @@ PROVIDER_set_cmd_defns(e, wolfprovider_cmd_defns) PROVIDER_set_ctrl_function(e, wolfprovider_ctrl) ``` -上記の呼び出しで使用される各アルゴリズム/コンポーネントのコールバック関数または構造体 (例: wp_digests、wp_ciphers など) は、`wp_internal.c` またはそれぞれのアルゴリズム ソース ファイルに実装されています。 +上記の呼び出しで使用される各アルゴリズム/コンポーネントのコールバック関数または構造体 +(例: wp_digests、wp_ciphers など) は、`wp_internal.c` またはそれぞれのアルゴリズムソースファイルに実装しています。 diff --git a/wolfProvider/src-ja/chapter09.md b/wolfProvider/src-ja/chapter09.md index 49eab27b..5a73a497 100644 --- a/wolfProvider/src-ja/chapter09.md +++ b/wolfProvider/src-ja/chapter09.md @@ -1,34 +1,38 @@ -# オープンソース統合に関する注意事項 - -wolfProvider は、一般的な OpenSSL エンジン フレームワークとアーキテクチャに準拠しています。 そのため、OpenSSL を使用するアプリケーションから、OpenSSL 構成ファイルを介して、または PROVIDER API 呼び出しを介して他のエンジン実装と同様にwolfProviderをプログラムで利用することができます。 - -wolfSSL は、いくつかのオープン ソース プロジェクトで wolfProvider をテストしました。 この章には、wolfProvider 統合に関する注意事項とヒントが含まれています。 この章は、wolfProvider によるすべてのオープンソース プロジェクトのサポートを網羅しているわけではなく、wolfSSL またはコミュニティが追加のオープン ソース プロジェクトで wolfProvider をテストおよび使用することを報告するにつれて拡張されます。 +# その他のオープンソースソフトウェアとの統合に関する注意事項 +wolfProviderは、一般的なOpenSSLエンジンフレームワークとアーキテクチャに準拠しています。 +そのため、OpenSSLを使用するアプリケーションからOpenSSL構成ファイルを介して、または`PROVIDER` API呼び出しを介して、他のエンジン実装と同様にwolfProviderをプログラムで利用できます。 +wolfSSLは、いくつかのオープンソースプロジェクトでwolfProviderをテストしました。 +この章には、wolfProviderとのインテグレーションに関する注意事項とヒントを示します。 +ただし、すべてのオープンソースプロジェクトを網羅しているわけではありません。 +今後も随時、wolfSSLまたはコミュニティが追加のオープンソースプロジェクトでwolfProviderの動作を確認し追記します。 ## cURL -cURL は、OpenSSL 構成ファイルを利用するように既にセットアップされています。 wolfProvider を利用するには: +cURLはすでにOpenSSL構成ファイルを利用するようにセットアップされています。 +wolfProviderを利用するには、次のステップを実行してください。 -1. wolfProvider エンジン情報を OpenSSL 設定ファイルに追加します -2. 必要に応じて、OPENSSL_CONF 環境変数が OpenSSL 構成ファイルを指すように設定します: +1. wolfProviderエンジン情報をOpenSSL設定ファイルに追加します +2. 必要に応じて、`OPENSSL_CONF`環境変数がOpenSSL設定ファイルを指すように設定します ``` $ export OPENSSL_CONF=/path/to/openssl.cnf ``` -3. OPENSSL_PROVIDERS 環境変数を wolfProvider 共有ライブラリ ファイルの場所を指すように設定します: +3. `OPENSSL_PROVIDERS` 環境変数をwolfProvider共有ライブラリファイルの場所を指すように設定します ``` $ export OPENSSL_PROVIDERS=/path/to/wolfprovider/library/dir ``` ## stunnel -stunnel は wolfProvider でテストされています。 ノートは近日公開予定。 +stunnelはwolfProviderでテスト済みです。 詳細は追って更新いたします。 ## OpenSSH -OpenSSH は、`--with-ssl-provider` 構成オプションを使用して、OpenSSL エンジン サポートでコンパイルする必要があります。 必要に応じて、`--with-ssl-dir=DIR` を使用して、使用されている OpenSSL ライブラリのインストール場所を指定することもできます: +OpenSSHは、`--with-ssl-provider`構成オプションを使用して、OpenSSLエンジンサポートでコンパイルする必要があります。 +必要に応じて`--with-ssl-dir=DIR`を使用して、使用されているOpenSSLライブラリのインストール場所を指定することもできます。 ``` $ cd openssh @@ -38,8 +42,9 @@ $ make $ sudo make install ``` -OpenSSH には、wolfProvider を活用するための OpenSSL 構成ファイルのセットアップも必要です。 必要に応じて、OPENSSL_CONF 環境変数を構成ファイルを指すように設定できます。 OPENSSL_PROVIDERS 環境変数も、wolfProvider 共有ライブラリの場所に設定する必要があります: - +OpenSSHには、wolfProviderを活用するためのOpenSSL構成ファイルのセットアップも必要です。 +必要に応じて、`OPENSSL_CONF`環境変数を構成ファイルを指すように設定できます。 +`OPENSSL_PROVIDERS`環境変数も、wolfProvider共有ライブラリの場所に設定する必要があります。 ``` $ export OPENSSL_CONF=/path/to/openssl.cnf diff --git a/wolfProvider/src-ja/chapter10.md b/wolfProvider/src-ja/chapter10.md index 65c26602..5504a21b 100644 --- a/wolfProvider/src-ja/chapter10.md +++ b/wolfProvider/src-ja/chapter10.md @@ -1,4 +1,4 @@ # サポートとOpenSSLバージョン追加 -wolfProvider のサポートについては、[support@wolfssl.com](mailto:support@wolfssl.com) 宛てお問い合わせください。 サポートが必要となるOpenSSL バージョンの追加を希望される場合は[facts@wolfssl.com](mailto:facts@wolfssl.com) 宛てにご連絡ください。 - +wolfProviderのサポートについては、[info@wolfssl.jp](mailto:info@wolfssl.jp) までお問い合わせください。 +サポートが必要となるOpenSSLバージョンの追加を希望される場合も、ぜひお知らせください。