|
2 | 2 |
|
3 | 3 | wolfProviderは次のソースファイルで構成され、すべてwolfProviderパッケージの`src`サブディレクトリの下にあります。 |
4 | 4 |
|
5 | | -| ソースファイル | 詳細 | |
6 | | -| ---- | ---------------- | |
7 | | -| wp_wolfprovider.c | ライブラリエントリポイントが含まれます。 OpenSSLエンジンフレームワークを使用してライブラリを動的にロードするために、OpenSSL IMPLEMENT_DYNAMIC_BIND_FNを呼び出します。コンパイルして静的ライブラリとして使用する場合のスタティックエントリポイントも含みます。 | |
8 | | -| wp_internal.c | エンジンアルゴリズムコールバックの登録を処理する`wolfprovider_bind()`関数が含まれています。他のwolfProviderの内部機能も含みます。 | |
9 | | -| wp_logging.c | wolfProviderログ出力フレームワークと関数の実装 | |
10 | | -| wp_openssl_bc.c | wolfProvider OpenSSLバイナリ互換抽象化レイヤーです。複数のOpenSSLバージョンでwolfProviderをサポートするために使用します。 | |
11 | | -| wp_aes_block.c | wolfProvider AES-ECBおよびAES-CBC実装 | |
12 | | -| wp_aes_cbc_hmac.c | wolfProvider AES-CBC-HMAC実装 | |
13 | | -| wp_aes_ccm.c | wolfProvider AES-CCM実装 | |
14 | | -| wp_aes_ctr.c | wolfProvider AES-CTR実装 | |
15 | | -| wp_aes_gcm.c | wolfProvider AES-GCM実装 | |
16 | | -| wp_des3_cbc.c | wolfProvider 3DES-CBCの実装 | |
17 | | -| wp_dh.c | wolfProvider DHの実装 | |
18 | | -| wp_digest.c | wolfProvider メッセージダイジェストの実装(SHA-1、SHA-2、SHA-3) | |
19 | | -| wp_ecc.c | wolfProvider ECDSAおよびECDHの実装 | |
20 | | -| wp_mac.c | wolfProvider HMACおよびCMACの実装 | |
21 | | -| wp_random.c | wolfProvider RAND実装 | |
22 | | -| wp_rsa.c | wolfProvider RSA実装 | |
23 | | -| wp_tls_prf.c | wolfProvider TLS 1.0 PRF実装 | |
| 5 | +| ソースファイル | 説明 | |
| 6 | +| ------ | ---------------- | |
| 7 | +| wp_wolfprov.c | ライブラリのエントリポイントが含まれています。OpenSSL プロバイダフレームワークを使用してライブラリを動的にロードするために、OpenSSL IMPLEMENT_DYNAMIC_BIND_FN を呼び出します。コンパイルして静的ライブラリとして使用する場合は、静的エントリポイントも含みます。 | |
| 8 | +| wp_internal.c | プロバイダアルゴリズムのコールバックの登録を処理する wolfprovider_bind() 関数が含まれています。また、その他の wolfprovider 内部機能も含みます。 | |
| 9 | +| wp_logging.c | wolfProvider のロギングフレームワークと関数の実装 | |
| 10 | +| wp_aes_aead.c | wolfProvider AES-AEAD (Authenticated Encryption with Associated Data) の実装 | |
| 11 | +| wp_aes_block.c | wolfProvider AES-ECB および AES-CBC 実装 | |
| 12 | +| wp_aes_stream.c | wolfProvider AES ストリーム暗号実装 | |
| 13 | +| wp_aes_wrap.c | wolfProvider AES キーラッピング実装 | |
| 14 | +| wp_cmac.c | wolfProvider CMAC (暗号ベースメッセージ認証コード) 実装 | |
| 15 | +| wp_dec_epki2pki.c | wolfProvider 暗号化された秘密鍵から秘密鍵への変換実装 | |
| 16 | +| wp_dec_pem2der.c | wolfProvider PEM から DER 形式への変換実装 | |
| 17 | +| wp_des.c | wolfProvider DES 実装 | |
| 18 | +| wp_dh_exch.c | wolfProvider DH 鍵交換実装 | |
| 19 | +| wp_dh_kmgmt.c | wolfProvider DH 鍵管理実装 | |
| 20 | +| wp_digests.c | wolfProvider メッセージ ダイジェスト実装 (SHA-1、SHA-2、SHA-3、...)| |
| 21 | +| wp_drbg.c | wolfProvider DRBG (決定論的乱数ビット ジェネレーター) 実装| |
| 22 | +| wp_ecc_kmgmt.c | wolfProvider ECC キー管理実装| |
| 23 | +| wp_ecdh_exch.c | wolfProvider ECDH キー交換実装| |
| 24 | +| wp_ecdsa_sig.c | wolfProvider ECDSA 署名実装| |
| 25 | +| wp_ecx_exch.c | wolfProvider ECX キー交換実装 (X25519、X448、...)| |
| 26 | +| wp_ecx_kmgmt.c | wolfProvider ECX キー管理実装| |
| 27 | +| wp_ecx_sig.c | wolfProvider ECX 署名実装 (Ed25519、Ed448、...)| |
| 28 | +| wp_file_store.c | wolfProvider ファイルストレージ実装| |
| 29 | +| wp_fips.c | wolfProvider FIPS 検証実装| |
| 30 | +| wp_gmac.c | wolfProvider GMAC (Galois/Counter Mode) 実装| |
| 31 | +| wp_hkdf.c | wolfProvider HKDF (HMAC ベースの鍵導出関数) 実装| |
| 32 | +| wp_hmac.c | wolfProvider HMAC 実装| |
| 33 | +| wp_kbkdf.c | wolfProvider KBKDF (鍵ベースの鍵導出関数) 実装| |
| 34 | +| wp_kdf_exch.c | wolfProvider KDF 鍵交換実装| |
| 35 | +| wp_kdf_kmgmt.c | wolfProvider KDF 鍵管理実装| |
| 36 | +| wp_krb5kdf.c | wolfProvider Kerberos 5 KDF 実装| |
| 37 | +| wp_mac_kmgmt.c | wolfProvider MAC キー管理実装| |
| 38 | +| wp_mac_sig.c | wolfProvider MAC 署名実装| |
| 39 | +| wp_params.c | wolfProvider パラメータ処理実装| |
| 40 | +| wp_pbkdf2.c | wolfProvider PBKDF2 (パスワードベースのキー導出関数 2) 実装| |
| 41 | +| wp_rsa_asym.c | wolfProvider RSA 非対称暗号化実装| |
| 42 | +| wp_rsa_kem.c | wolfProvider RSA KEM (キーカプセル化メカニズム) 実装| |
| 43 | +| wp_rsa_kmgmt.c | wolfProvider RSA キー管理実装| |
| 44 | +| wp_rsa_sig.c | wolfProvider RSA 署名実装| |
| 45 | +| wp_tls1_prf.c | wolfProvider TLS 1.0 PRF 実装| |
| 46 | +| wp_tls_capa.c | wolfProvider TLS 機能の実装 | |
24 | 47 |
|
25 | 48 | ## wolfProviderエントリーポイント |
26 | 49 |
|
27 | | -wolfProviderライブラリへの主なエントリポイントは、**wolfprovider_bind** () または **PROVIDER_load_wolfprovider** () のいずれかです。 |
28 | | -wolfProviderが動的にロードされている場合、`wolfprovider_bind()`はOpenSSL によって自動的に呼び出されます。 |
29 | | -`PROVIDER_load_wolfprovider()` はwolfProvider静的に構築および使用されている場合に、アプリケーションが呼び出す必要があるエントリポイントです。 |
30 | | - |
31 | | -## wolfProviderアルゴリズムコールバック登録 |
32 | | - |
33 | | -wolfProviderは、FIPS版wolfCryptでサポートしているすべてのコンポーネントに対して、アルゴリズム構造体とコールバックを OpenSSLエンジンフレームワークに登録します。 |
34 | | -この登録は、`wp_internal.c` の `wolfprovider_bind()` 内で行われます。 |
35 | | -`wolfprovider_bind()`は、wolfProvider エンジンを表す`PROVIDER`構造体ポインタを受け取ります。 |
36 | | -次に、個々のアルゴリズム/コンポーネントのコールバックまたは構造体が、`<openssl/provider.h>`の適切なAPIを使用してその`PROVIDER`構造体に登録されます。 |
37 | | - |
38 | | -これらのAPI呼び出しには、以下のものが含まれます。 |
39 | | - |
40 | | -``` |
41 | | -PROVIDER_set_id(e, wolfprovider_id) |
42 | | -PROVIDER_set_name(e, wolfprovider_name) |
43 | | -PROVIDER_set_digests(e, wp_digests) |
44 | | -PROVIDER_set_ciphers(e, wp_ciphers) |
45 | | -PROVIDER_set_RAND(e, wp_random_method) |
46 | | -PROVIDER_set_RSA(e, wp_rsa()) |
47 | | -PROVIDER_set_DH(e, wp_dh_method) |
48 | | -PROVIDER_set_ECDSA(e, wp_ecdsa()) |
49 | | -PROVIDER_set_pkey_meths(e, wp_pkey) |
50 | | -PROVIDER_set_pkey_asn1_meths(e, wp_pkey_asn1) |
51 | | -PROVIDER_set_EC(e, wp_ec()) |
52 | | -PROVIDER_set_ECDH(e, wp_ecdh()) |
53 | | -PROVIDER_set_destroy_function(e, wolfprovider_destroy) |
54 | | -PROVIDER_set_cmd_defns(e, wolfprovider_cmd_defns) |
55 | | -PROVIDER_set_ctrl_function(e, wolfprovider_ctrl) |
56 | | -``` |
57 | | - |
58 | | -上記の呼び出しで使用される各アルゴリズム/コンポーネントのコールバック関数または構造体 |
59 | | -(例: wp_digests、wp_ciphers など) は、`wp_internal.c` またはそれぞれのアルゴリズムソースファイルに実装しています。 |
| 50 | +wolfProvider ライブラリへの主要なエントリポイントは、**OSSL_provider_init()** と **wolfssl_provider_init()** です。 |
| 51 | + |
| 52 | +**OSSL_provider_init()** は、プロバイダが動的にロードされた際に OpenSSL によって自動的に呼び出される標準のOpenSSLプロバイダエントリポイントです。 |
| 53 | +この関数は `wp_wolfprov.c` で定義されており、`wolfssl_provider_init()` を呼び出すラッパーとして機能します。 |
| 54 | + |
| 55 | +**wolfssl_provider_init()** は、以下の機能を実行するコア初期化関数です。 |
| 56 | + |
| 57 | +- プロバイダーコンテキストをセットアップします。 |
| 58 | +- プロバイダー関数でディスパッチテーブルを初期化します。 |
| 59 | +- FIPS モード設定を処理します。 |
| 60 | +- デバッグが有効になっている場合は、デバッグをセットアップします。 |
| 61 | +- 以下の関数ポインタを含むプロバイダーのディスパッチテーブルを返します。 |
| 62 | + |
| 63 | +* `wolfprov_teardown` - プロバイダーのクリーンアップ |
| 64 | +* `wolfprov_gettable_params` - パラメーターテーブルの取得 |
| 65 | +* `wolfprov_get_params` - パラメーターの取得 |
| 66 | +* `wolfprov_query` - 操作のクエリ |
| 67 | +* `wolfssl_prov_get_capabilities` - 機能レポート |
| 68 | + |
| 69 | +アプリケーションがwolfProviderアルゴリズムを要求すると、OpenSSLによってプロバイダーがロードされます。 |
| 70 | +ディスパッチテーブルは、OpenSSLが暗号操作に適切なwolfProvider関数を呼び出すことを可能にします。 |
| 71 | + |
| 72 | +## wolfProvider ディスパッチテーブル関数 |
| 73 | + |
| 74 | +wolfProviderディスパッチテーブルには、プロバイダー操作のさまざまな側面を処理するいくつかの主要な関数が含まれています。 |
| 75 | +各関数は、OpenSSLプロバイダフレームワークにおいて特定の目的を果たします。 |
| 76 | + |
| 77 | +**OSSLパラメータに関する注意(後述):** OSSLパラメータは、OpenSSLがプロバイダと設定データや機能情報を交換するための標準化された方法です。 |
0 commit comments