Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions wolfProvider/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,13 @@ SOURCES = chapter01.md \
chapter07.md \
chapter08.md \
chapter09.md \
chapter10.md
chapter10.md \
chapter11.md

ifeq ($(DOC_LANG),JA)
PDF = wolfProvider-Manual-jp.pdf
else
PDF = wolfProvider-Manual.pdf
# chapter11 (Post-Quantum) is English-only until it is translated.
SOURCES += chapter11.md
endif

.PHONY: html-prep
Expand Down
2 changes: 1 addition & 1 deletion wolfProvider/header.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ header-includes:
# Fancy page headers
- \usepackage{fancyhdr}
- \pagestyle{fancy}
- \fancyfoot[LO,RE]{COPYRIGHT \copyright 2024 wolfSSL Inc.}
- \fancyfoot[LO,RE]{COPYRIGHT \copyright 2026 wolfSSL Inc.}
# Wrap long syntax highlighting code blocks
- \usepackage{fvextra}
- \DefineVerbatimEnvironment{Highlighting}{Verbatim}{breaklines,commandchars=\\\{\}}
Expand Down
5 changes: 3 additions & 2 deletions wolfProvider/mkdocs-ja.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,19 @@ site_name: wolfProvider マニュアル
site_url: https://wolfssl.com/
docs_dir: build/html/
site_dir: html/
copyright: Copyright © 2025 wolfSSL Inc.
copyright: Copyright © 2026 wolfSSL Inc.
nav:
- "1. イントロダクション": index.md
- "2. OpenSSLとの互換性": chapter02.md
- "3. wolfProviderのビルド": chapter03.md
- "4. FIPS 140-2のサポート": chapter04.md
- "4. FIPS 140-3のサポート": chapter04.md
- "5. ログ出力": chapter05.md
- "6. 移植性": chapter06.md
- "7. wolfProviderのロード": chapter07.md
- "8. wolfProviderの設計": chapter08.md
- "9. その他のオープンソースソフトウェアとの統合に関する注意事項": chapter09.md
- "10. サポートとOpenSSLバージョン追加": chapter10.md
- "11. ポスト量子暗号": chapter11.md
theme:
name: null
custom_dir: ../mkdocs-material/material
Expand Down
2 changes: 1 addition & 1 deletion wolfProvider/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ site_name: wolfProvider Manual
site_url: https://wolfssl.com/
docs_dir: build/html/
site_dir: html/
copyright: Copyright © 2024 wolfSSL Inc.
copyright: Copyright © 2026 wolfSSL Inc.
nav:
- "1. Introduction": index.md
- "2. OpenSSL Version Compatability": chapter02.md
Expand Down
6 changes: 5 additions & 1 deletion wolfProvider/src-ja/chapter01.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,15 @@ wolfProviderは、wolfSSL(libwolfssl)とOpenSSLにリンクする個別のスタ
wolfProviderは、wolfCryptネイティブAPIを内部的にラップするOpenSSLエンジンです。
wolfProviderの概要図、そしてアプリケーションやOpenSSLとどのように関連しているかを下の図1に示します。

wolfProviderの設計とアーキテクチャの詳細については、[wolfProviderの設計](chapter09.md) の章をご覧ください。
wolfProviderの設計とアーキテクチャの詳細については、[wolfProviderの設計](chapter08.md) の章をご覧ください。

![wolfProvider Overview](wolfProvider_overview.png)

wolfProviderは、**libwolfprov** という名前の共有ライブラリとしてコンパイルされます。
これは、アプリケーションまたはコンフィギュレーションファイルを介してOpenSSLによって実行時に動的に登録できます。
wolfProviderは、アプリケーションが静的ビルドでコンパイルされたときにエンジンをロードするためのエントリポイントも提供します。

wolfProviderはクロスプラットフォームであり、Linuxおよびその他の*nix系システム、macOS、Windows(Visual Studio 2022による`libwolfprov.dll`のビルドを含む)で動作します。
OpenSSL 3.xのすべてのリリースバージョンに対応しており、FIPSおよび非FIPSの両方の構成で使用できます。
サポートされているプラットフォームの一覧については、[移植性](chapter06.md)の章をご覧ください。

11 changes: 7 additions & 4 deletions wolfProvider/src-ja/chapter02.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
# OpenSSLとの互換性

wolfProviderは、以下のバージョンのOpenSSLを使用してテストを実行しています
これ以外のバージョンでは、変更や調整が必要になる場合があります
wolfProviderは、OpenSSL 3.xのすべてのリリースバージョンをサポートしています
OpenSSL 3.0.6から最新の3.xリリースまでの幅広いバージョンに対して、FIPSビルドおよび非FIPSビルドの両方で継続的にテストを行っています

- OpenSSL 3.0.0
- OpenSSL 3.5.0
一部の機能には、OpenSSLの最小バージョン要件があります。

- ポスト量子アルゴリズム(ML-KEM、ML-DSA)およびLMSを使用するには、OpenSSL 3.6以降が必要です。

OpenSSL 3.0.3から3.0.5については、上流のECX `EVP_PKEY_cmp` に関する不具合があるため推奨していません。3.0.xシリーズをご利用の場合は、OpenSSL 3.0.6以降をご使用ください。

他のOpenSSLバージョンのサポート追加を希望される場合は、[info@wolfssl.jp](mailto:info@wolfssl.jp) にご連絡ください。
32 changes: 29 additions & 3 deletions wolfProvider/src-ja/chapter03.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ wolfProviderパッケージは、以下のように構成しています。

```
certs/ (ユニットテストで使用されるテスト用証明書、鍵)
docs/ (インテグレーションガイドおよびFIPSインテグレーションガイド)
examples/ (実装例)
include/
wolfprovider/ (wolfProviderヘッダーファイル)
Expand Down Expand Up @@ -39,13 +40,13 @@ user_settings.h (user_settings.hサンプル)
スクリプトを呼び出す前に、各種環境変数を設定する方法:

```
OPENSSL_TAG=openssl-3.2.0 WOLFSSL_TAG=v5.7.2-stable WOLFPROV_DEBUG=1 ./scripts/build-wolfprovider.sh
OPENSSL_TAG=openssl-3.5.0 WOLFSSL_TAG=v5.9.2-stable WOLFPROV_DEBUG=1 ./scripts/build-wolfprovider.sh
```

スクリプトの引数として指定する方法:

```
./scripts/build-wolfprovider.sh --openssl-ver=openssl-3.2.0 --wolfssl-ver=v5.7.2-stable --debug
./scripts/build-wolfprovider.sh --openssl-ver=openssl-3.5.0 --wolfssl-ver=v5.9.2-stable --debug
```

これらの方法を組み合わせて、目的のビルドの組み合わせを実現することもできます。
Expand Down Expand Up @@ -236,6 +237,25 @@ Visual StudioでwolfProviderプロジェクトをロードします。
この実行可能ファイルに`--help`の引数をつけて実行すると、オプションの一覧を表示できます。
wolfProviderを静的エンジンとして使用するには`--static`を付けて実行する必要があります。

## Windows上でのビルド (Visual Studio)

wolfProviderには、`IDE/WINVS/wolfprovider.sln` にVisual Studio 2022ソリューションが含まれており、wolfSSLをバックエンドとするOpenSSL 3.xプロバイダーである **`libwolfprov.dll`** をビルドします。
DLL名は重要です。`-provider libwolfprov` は `libwolfprov.dll` に解決されます。
Windows上では`configure`ステップはなく、wolfSSLは`user_settings.h`を介して構成します。

前提条件:

* C++ツールセット (v143) およびMASM (`ml64.exe`) を含むVisual Studio 2022
* OpenSSLをビルドするためのPerl、NASM、git(Strawberry PerlにはNASMが含まれています)

このソリューションは4つのx64構成を提供します。
`DLL Release` と `DLL Debug` は、実際に配布されるプロバイダー (`libwolfprov.dll`) をビルドします。
`Static Release` と `Static Debug` は、単体テストを実行するための `unit-test.exe` をビルドします
(OpenSSLは`LoadLibraryA`でプロバイダーをロードしてから`OSSL_provider_init`を探すため、静的ライブラリはプロバイダーとして動作できません)。
wolfProvider、wolfSSL、OpenSSLは同じ階層に並べて配置されていることを前提としています。
パスは`wolfprovider.props`で設定されており、コマンドラインから上書きできます(例: `/p:wolfCryptDir=D:\wolfssl`)。
非FIPS版・FIPS版いずれのwolfSSLビルドもサポートしています。

## ビルドオプション (./configure に指定するオプション)

ライブラリの構築方法をカスタマイズするために`./configure`スクリプトに追加できるオプションを以下に示します。
Expand All @@ -261,7 +281,10 @@ wolfProviderを静的エンジンとして使用するには`--static`を付け
| --enable-usersettings | **無効** | user_settings.h を使用し、MakefileのCFLAGSを使用しない |
| --enable-dynamic | 有効 | wolfProviderをダイナミックプロバイダーとしてロードできるようにする |
| --enable-singlethreaded | **無効** | wolfProviderをシングルスレッド環境で使用する |
| --enable-pqc | **無効** | ポスト量子アルゴリズム (ML-KEM、ML-DSA、SLH-DSA) をすべて有効にする |
| --enable-debug-silent | **無効** | デバッグログをコンパイルには含めるが、実行時に WOLFPROV_LOG_LEVEL / WOLFPROV_LOG_COMPONENTS で有効化するまで出力を抑制する |
| --enable-replace-default | **無効** | wolfProviderがOpenSSLのデフォルトプロバイダーとなるよう、置き換え用デフォルトプロバイダーをビルドする (CFLAGSに -DWOLFPROV_REPLACE_DEFAULT を指定することでも有効化可能) |
| --enable-seed-src | **無効** | フォークセーフなエントロピーのために、/dev/urandom キャッシュを使用する SEED-SRC エントロピーソースを有効にする |
| --enable-pqc | **無効** | ML-KEM、ML-DSA、SLH-DSA (FIPS 203/204/205) を有効にする。wolfSSL master/v5.9.2以降およびOpenSSL 3.6以降が必要 |
| --enable-mlkem | **無効** | ML-KEM (FIPS 203) のみを有効にする |
| --enable-mldsa | **無効** | ML-DSA (FIPS 204) のみを有効にする |
| --enable-slhdsa | **無効** | SLH-DSA (FIPS 205) のみを有効にする |
Expand Down Expand Up @@ -306,6 +329,7 @@ wolfProviderは、お客様がwolfProviderのビルド方法を設定できる
| WP_HAVE_GMAC | GMAC (ガロア/カウンターモード認証) を有効化 |
| WP_HAVE_HKDF | HKDF (HMACベースの鍵導出関数) を有効化 |
| WP_HAVE_HMAC | HMAC (ハッシュベースのメッセージ認証コード) を有効化 |
| WP_HAVE_KBKDF | KBKDF (鍵ベースの鍵導出関数) を有効化 |
| WP_HAVE_KRB5KDF | Kerberos 5 鍵導出関数を有効化 |
| WP_HAVE_LMS | LMS (RFC 8554 / SP 800-208) 検証を有効化 |
| WP_HAVE_MD5 | MD5 ハッシュアルゴリズムを有効化 |
Expand All @@ -315,6 +339,7 @@ wolfProviderは、お客様がwolfProviderのビルド方法を設定できる
| WP_HAVE_PBE | パスワードベースの暗号化を有効化 |
| WP_HAVE_RANDOM | 乱数生成を有効化 |
| WP_HAVE_RSA | RSA 暗号化と署名を有効化 |
| WP_HAVE_SEED | SEED-SRC エントロピーソースを有効化 |
| WP_HAVE_SHA1 | SHA1 ハッシュアルゴリズムを有効化 |
| WP_HAVE_SHA224 | SHA224 ハッシュアルゴリズムを有効化 |
| WP_HAVE_SHA256 | SHA256 ハッシュアルゴリズムを有効化 |
Expand All @@ -328,6 +353,7 @@ wolfProviderは、お客様がwolfProviderのビルド方法を設定できる
| WP_HAVE_SHA512_224 | SHA512/224 ハッシュアルゴリズムを有効化 |
| WP_HAVE_SHA512_256 | SHA512/256 ハッシュアルゴリズムを有効化 |
| WP_HAVE_SHAKE_256 | SHAKE256 拡張出力関数を有効化 |
| WP_HAVE_SSHKDF | SSHKDF (SSH 鍵導出関数) を有効化 |
| WP_HAVE_SLHDSA | SLH-DSA (FIPS 205) ポスト量子署名を有効化 |
| WP_HAVE_TLS1_PRF | TLS1 擬似乱数関数を有効化 |
| WP_HAVE_X25519 | X25519 楕円曲線を有効化 |
Expand Down
8 changes: 6 additions & 2 deletions wolfProvider/src-ja/chapter04.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# FIPS 140-2のサポート
# FIPS 140-3のサポート

wolfProviderは、FIPSで検証されたバージョンのwolfCryptに対して適切にコンパイルされた場合にのみ、FIPS140-2に対応した動作を行うよう設計しています
wolfProviderは、FIPSで検証されたバージョンのwolfCryptに対して適切にコンパイルされた場合にのみ、FIPS140-3に対応した動作を行うよう設計しています
この使用シナリオには、wolfSSL Inc. から入手した、適切にライセンスされ、検証されたバージョンのwolfCryptが必要です。

wolfCrypt FIPSライブラリは、非FIPSモードに「切り替える」ことができません。
Expand All @@ -15,4 +15,8 @@ OpenSSL構成に基づいて、デフォルトのOpenSSLエンジンまたは他
それらのアルゴリズムはwolfProviderおよびFIPS版wolfCryptのスコープに含みません。
FIPS認証取得に際し、問題となる可能性があります。

完全なFIPS適合を実現するには、wolfProviderは通常、置き換え用デフォルトモード(`--enable-replace-default`)でビルドされます。
これにより、wolfProviderがOpenSSLのデフォルトプロバイダーとなり、アプリケーションが誤って非FIPSアルゴリズムにフォールバックすることを防ぎます。
置き換え用デフォルトモードについては[wolfProviderのロード](chapter07.md)の章を、FIPSベースライン検証や本番FIPSビルドのワークフロー(wolfCrypt FIPSモジュールの世代(例: v5、v6、v7)やFIPS Readyバンドルを含む)についてはwolfProvider FIPSインテグレーションガイド(wolfProviderパッケージ内の`docs/FIPS_INTEGRATION_GUIDE.md`)をご参照ください。

FIPS版wolfCrypt(140-2/140-3)の使用に関する詳細については、wolfSSL(info@wolfssl.jp)までお問い合わせください。
12 changes: 6 additions & 6 deletions wolfProvider/src-ja/chapter05.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ wolfProviderは以下のログ出力レベルをサポートします。
ret = PROVIDER_ctrl_cmd(e, “log_level”, WP_LOG_ERROR | WP_LOG_INFO,
NULL, NULL, 0);
if (ret != 1) {
printf(Failed to set logging level\n);
printf("Failed to set logging level\n");
}
```

Expand Down Expand Up @@ -71,7 +71,7 @@ wolfProviderでは、コンポーネントごとにログを出力できます
ret = PROVIDER_ctrl_cmd(e, “log_components”, WP_LOG_DIGEST | WP_LOG_CIPHER,
NULL, NULL, 0);
if (ret != 1) {
printf(Failed to set log components\n);
printf("Failed to set log components\n");
}
```

Expand All @@ -80,7 +80,7 @@ if (ret != 1) {
デフォルトでは、wolfProviderは **fprintf()** を使用してデバッグログメッセージを **stderr** に出力します。

ログメッセージの出力方法や出力場所を変更したい場合は、カスタムログ出力コールバック関数を記述してwolfProviderに登録します。
その際、`include/wolfprovider/wp_logging.h`に示す`wolfProvider_Logging_cb`のプロトタイプ宣言と一致させる必要があります。
その際、`include/wolfprovider/wp_logging.h`に示す`wolfProv_Logging_cb`のプロトタイプ宣言と一致させる必要があります。

```
/**
Expand All @@ -89,7 +89,7 @@ if (ret != 1) {
* component - [IN] - Component that log message is coming from
* logMessage - [IN] - Log message
*/
typedef void (*wolfProvider_Logging_cb)(const int logLevel, const int component, const char *const logMessage);
typedef void (*wolfProv_Logging_cb)(const int logLevel, const int component, const char *const logMessage);
```

その後、"**set_logging_cb**"エンジン制御コマンドを使用して、コールバック関数をwolfProviderに登録できます。
Expand All @@ -102,15 +102,15 @@ const char* const logMessage)
{
(void)logLevel;
(void)component;
fprintf(stderr, wolfProvider log message: %d\n”, logMessage);
fprintf(stderr, "wolfProvider log message: %s\n", logMessage);
}

int main (void)
{
int ret;
PROVIDER* e;
...
ret = PROVIDER_ctrl_cmd(e, “set_logging_cb”, 0, NULL, (void(*)(void))my_Logging_cb, 0);
ret = PROVIDER_ctrl_cmd(e, “set_logging_cb”, 0, NULL, (void(*)(void))customLogCallback, 0);
if (ret != 1) {
/* failed to set logging callback */
}
Expand Down
12 changes: 12 additions & 0 deletions wolfProvider/src-ja/chapter06.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,18 @@

wolfProviderは、関連するwolfCryptおよびOpenSSLライブラリの移植性を活用するように設計しています。

## 対応プラットフォーム

wolfProviderはクロスプラットフォームであり、wolfSSLおよびOpenSSLがサポートする主要なプラットフォーム上でビルドできます。
対応プラットフォームは以下の通りです。

* Linuxおよびその他の*nix系システム。autoconfシステムを使用してビルドします([wolfProviderのビルド](chapter03.md)を参照)
* macOS
* Windows。`libwolfprov.dll`をビルドするVisual Studio 2022ソリューションを使用します([wolfProviderのビルド](chapter03.md)を参照)
* Windows CE

これらのプラットフォームでは、FIPSビルドと非FIPSビルドの両方をサポートしています。

## スレッド対応

wolfProviderはスレッドセーフであり、必要に応じてwolfCryptのミューテックスロックメカニズム`wc_LockMutex()`、`wc_UnLockMutex()`を使用します。
Expand Down
Loading
Loading