diff --git a/wolfSSL-Porting/Makefile b/wolfSSL-Porting/Makefile index 88346f0b..281b49d7 100644 --- a/wolfSSL-Porting/Makefile +++ b/wolfSSL-Porting/Makefile @@ -8,7 +8,14 @@ SOURCES = section01.md \ section03.md \ section04.md -PDF = wolfSSL-Porting-Guide.pdf +ifeq ($(DOC_LANG),JA) + PDF = wolfSSL-Porting-Guide-ja.pdf + DOXYFILE = Doxyfile-ja +else + PDF = wolfSSL-Porting-Guide.pdf + DOXYFILE = Doxyfile +endif + .PHONY: html-prep html-prep: diff --git a/wolfSSL-Porting/mkdocs-ja.yml b/wolfSSL-Porting/mkdocs-ja.yml new file mode 100644 index 00000000..5e1393ff --- /dev/null +++ b/wolfSSL-Porting/mkdocs-ja.yml @@ -0,0 +1,27 @@ +site_name: wolfSSLポーティングガイド +site_url: https://wolfssl.com/ +docs_dir: build/html/ +site_dir: html/ +copyright: Copyright © 2023 wolfSSL Inc. +nav: + - "1. はじめに": index.md + - "2. wolfSSLのポーティング": section02.md + - "3. 次のステップ": section03.md + - "4. サポート": section04.md +theme: + name: null + custom_dir: ../mkdocs-material/material + language: en + palette: + primary: indigo + accent: indigo + font: + text: roboto + code: roboto mono + icon: "logo.png" + logo: logo.png + favicon: logo.png + feature: + tabs: true +extra_css: [skin.css] +use_directory_urls: false diff --git a/wolfSSL-Porting/src-ja/platformDependency.png b/wolfSSL-Porting/src-ja/platformDependency.png new file mode 100644 index 00000000..8fa1fca8 Binary files /dev/null and b/wolfSSL-Porting/src-ja/platformDependency.png differ diff --git a/wolfSSL-Porting/src-ja/section01.md b/wolfSSL-Porting/src-ja/section01.md new file mode 100644 index 00000000..bd314781 --- /dev/null +++ b/wolfSSL-Porting/src-ja/section01.md @@ -0,0 +1,61 @@ +# 1 はじめに + +組み込みプラットフォーム上でwolfSSLを実行するには、いくつかのステップが必要です。これらのステップのいくつかは、wolfSSL Manual(非標準環境でのビルド)のセクション2.4で概説されています。 + +wolfSSLマニュアルの第2章の手順とは別に、特定のプラットフォームに対応するために移植や修正が必要なコードがいくつかあります。 wolfSSLは、これらの分野の多くを抽象化して、wolfSSLを新しいプラットフォームに移植するのはできるだけ簡単にしようとしています。 + + + +## 想定する読者 + +このガイドは、デフォルトでサポートされていない新しいプラットフォームまたは環境に wolfSSL および wolfCrypt を移植する開発者またはエンジニアを対象としています。 + +## 概要 + +組み込みプラットフォームで wolfSSL を実行するには、いくつかの手順を繰り返す必要があります。 これらの手順のいくつかは、wolfSSL マニュアルのセクション 2.4 で概説されています。 + +wolfSSL マニュアルの第 2 章の手順とは別に、特定のプラットフォームに対応するために移植または変更が必要なコードの領域があります。 wolfSSL はこれらの領域の多くを抽象化し、wolfSSL を新しいプラットフォームにできるだけ簡単に移植できるようにします。 + +./wolfssl/wolfcrypt/settings.h ファイルには、さまざまなオペレーティング システム、TCP/IP スタック、およびチップセット (つまり、MBED、FREESCALE\_MQX、MICROCHIP\_PIC32、MICRIUM、EBSNET など) に固有の定義がいくつかあります。 wolfSSL をコンパイルして新しいプラットフォームに移植するときに \#defines を配置する主な場所は次の 2 つです。 + +まず、オペレーティング システムまたは TCP/IP スタック ポートの新しい定義は、通常、wolfSSL の新しいポートが完了すると、settings.h ファイルに追加されます。 これにより、機能をオン/オフしたり、そのビルドのデフォルトにする必要があるビルド設定をカスタマイズしたりする簡単な方法が提供されます。 wolfSSL を新しいプラットフォームに移植する際に、このファイルに新しいカスタム定義を追加できます。 ユーザーは、GitHub のマスター オープン ソース コード ブランチに wolfSSL のポートを提供することをお勧めします。 これにより、wolfSSL を最新の状態に保つことができ、wolfSSL プロジェクトが改善され前進するにつれて、さまざまなポートを最新の状態に保つことができます。 + +自分の変更を wolfSSLproper に戻したくないユーザー、または追加のプリプロセッサー定義で wolfSSL ビルドをカスタマイズしたいユーザーの場合、wolfSSL はカスタムの「user\_settings.h」ヘッダー ファイルの使用を推奨します。 + +wolfSSL ソース ファイルのコンパイル時に WOLFSSL\_USER\_SETTINGS が定義されている場合、wolfSSL は「user\_settings.h」と呼ばれるカスタム ヘッダー ファイルを自動的にインクルードします。このヘッダーはユーザーが作成し、インクルードパスに配置する必要があります。 これにより、ユーザーは自分の wolfSSLbuild 用に 1 つのファイルを維持でき、新しいバージョンの wolfSSL への更新がはるかに簡単になります。 + +wolfSSL は、直接の電子メール (info@wolfssl.com) または GitHub プル リクエストを通じて、パッチとコードの変更を提出することを奨励しています。 + + + +図1はwolfSSLライブラリが依存する主なプラットフォームコンポーネントを示しています。ポーティング作業ではこれらの依存コンポーネントについて、ユーザが実際に使用するものと整合をとる必要があります。以下に、主なコンポーネントについて概要をまとめます。詳細については、このユーザガイドの各項を参照してください。 + +![プラットフォーム依存性の概要](./platformDependency.png "プラットフォーム依存性の概要") + + + +- ネットワーク送受信 + +wolfSSLライブラリはTCP層のメッセージ送受信のためのAPIを使用します。デフォルトではBSDソケットが使用されます。いくつかの代表的なTCP層APIのためには直接リンクできるためのビルドオプションが用意されています。それ以外のメッセージングAPIを使用する場合はWOLFSSL_USER_IOオプションを指定して、ユーザが用意したメッセージ送受信のコールバック関数を登録します。 +なお、TCP接続の確立(TCPのコネクトないしアクセプトまでの処理)は、ユーザプログラムの側で行います。 + +- ファイルI/O + +ファイルI/Oは主に証明書や鍵の読み出し、生成時の書き込みのために使用されます。デフォルトではPOSIX APIが使用されます。それ以外のAPIを使用する場合はファイルオープン、クローズ、リード、ライト、シークなどのAPIをビルドオプションとして定義します。 + +- スレッド、排他制御 + +スレッドの生成、削除に関してはユーザプログラムの責任で行います。スレッド間の排他制御についてはライブラリ内で必要な箇所で、MUTEXロック、アンロックが呼ばれます。主要なOS、RTOSではビルド時にオプション指定することで所定のロック、アンロック関数とリンクできます。 +非RTOSアプリケーションや本ライブラリを単一のスレッドのみで使用する場合は、シングルスレッド・モードで動作するオプションを指定することができます。 + +- メモリー管理 + +デフォルトでは、C言語標準ライブラリのmalloc、free、reallocが使用されます。独自のライブラリを使用する場合は、ビルドオプション、または実行時に登録するユーザ独自の関数を使用することもできます。 + +- 時計 + +主に証明書の有効期間チェック、SSLセッションのタイムアウト管理などに使用されます。従って、高い正確性は要求されませんが、相対時間ではなく実時間である必要があります。デフォルトでは1970年からの秒数を返却するtime関数が使用されます。独自の関数を使用する場合はオプションで指定します。 + +- C言語標準ライブラリ + +文字列関数などいくつかのC言語標準関数が使用されます。独自の関数を使用する場合はオプションで指定します。 diff --git a/wolfSSL-Porting/src-ja/section02.md b/wolfSSL-Porting/src-ja/section02.md new file mode 100644 index 00000000..ce2cdaf6 --- /dev/null +++ b/wolfSSL-Porting/src-ja/section02.md @@ -0,0 +1,242 @@ +# 2 wolfSSLのポーティング +## データ型 + +Q:このセクションが必要なのはどういう場合?
+A: ポーティング対象のプラットフォームの正しいデータ型のサイズを設定するのは常に重要です。 + +wolfSSLは、64ビットタイプが利用可能の場合、スピードに恩恵を受けます。プラットフォーム上のsizeof(long)とsizeof(long long)の結果と一致するようにSIZEOF_LONGまたはSIZEOF_LONG_LONGを設定します。これは、settings.hファイルのカスタム定義に追加することができます。たとえば、MY_NEW_PLATFORMのサンプル定義のsettings.hで次のように指定します。 + + +``` +#ifdef MY_NEW_PLATFORM + #define SIZEOF_LONG 4 + #define SIZEOF_LONG_LONG 8 + ... +#endif +``` + +「word32」と「word16」と呼ばれる、wolfSSL と wolfCrypt で使用される二つの追加のデータ型があります。 これらのデフォルトのタイプ マッピングは次のとおりです: + +``` +#ifndef WOLFSSL_TYPES +#ifndef byte +typedef unsigned char byte; +#endif + typedef unsigned short word16; +typedef unsigned int word32; +typedef byte word24[3]; +#endif +``` + +「word32」はコンパイラの 32 ビット型に、「word16」はコンパイラの 16 ビット型にマップする必要があります。 これらのデフォルトのマッピングがプラットフォームに対して正しくない場合は、settings.h または user_settings.h で WOLFSSL_TYPES を定義し、word32 および word16 に独自のカスタム typedef を割り当てる必要があります。 + +wolfSSL の fastmath ライブラリは、「fp_digit」および「fp_word」タイプを使用します。 デフォルトでは、これらはビルド構成に応じて にマップされます。 + +「fp_word」は「fp_digit」の 2 倍のサイズにする必要があります。 デフォルトのケースがプラットフォームに当てはまらない場合は、settings.h または user_settings.h で WOLFSSL_BIGINT_TYPES を定義し、fp_word および fp_digit に独自のカスタム typedef を割り当てる必要があります。 + +一部の操作で利用可能な場合、wolfSSL は 64 ビット型を使用します。 wolfSSL ビルドは、SIZEOF_LONG と SIZEOF_LONG_LONG の設定に基づいて、word64 の正しい基本データ型を検出して設定しようとします。 2 つの 32 ビット型が一緒に使用される、真の 64 ビット型を持たない一部のプラットフォームでは、パフォーマンスが低下する可能性があります。 64 ビット型を使用しないでコンパイルするには、NO_64BIT を定義します。 + +## エンディアン + +Q:このセクションが必要なのはどういう場合?
+ +A: プラットフォームがビッグエンディアンの場合です + +あなたのプラットフォームはビッグエンディアン、リトルエンディアン、どちらですか?
+ wolfSSLはデフォルトではリトルエンディアンシステムです。システムがビッグエンディアンの場合は、wolfSSLをビルドするときにBIG_ENDIAN_ORDERを定義してください。これをsettings.hで設定する例: + + +``` +#ifdef MY_NEW_PLATFORM + ... + #define BIG_ENDIAN_ORDER + ... +#endif +``` + +## writev + +Q:このセクションが必要なのはどういう場合?
+A: が提供されていない場合です + +デフォルトでは、wolfSSL APIはアプリケーションに対してwritev関数のセマンティクスをシミュレートするwolfSSL_writev()を提供します。使用可能なヘッダーを持たないシステムでは、この機能を除外するためにNO_WRITEVを定義してください。 + + +## (ネットワーク) 入出力 + +Q:どういう場合このセクションが必要ですか?
+A:BSDスタイルのソケットAPIが使用できない場合。また、特別なポート層またはTCP/IPスタックを使用したい場合、静的バッファーのみを使用したい場合です。 + +wolfSSLはデフォルトではBSDスタイルのソケットインターフェイスを使用します。トランスポート層がBSDソケットインタフェースを提供する場合、カスタムヘッダが必要な場合を除いて、wolfSSLはそのままの状態で統合する必要があります。 + +wolfSSLは、ユーザーがシステムにwolfSSLのI / O機能を合わせることが可能となるようにカスタムI / O抽象レイヤーを提供しています。詳細は、wolfSSLマニュアルのセクション5.1.2にあります。 + +単に、ビルド時オプションにWOLFSSL_USER_IOを指定して、独自のI / Oコールバック関数を、テンプレートとしてwolfSSLのデフォルトEmbedSend()とEmbedReceive()を参照して記述してください。これら2つの関数は./src/io.cにあります。 + +wolfSSLは、入出力時に動的バッファを使用します。デフォルトは0バイトです。バッファよりサイズが大きい入力レコードが受信された場合は、動的バッファを使用して要求を処理してから解放します。 + +ダイナミックメモリを使用せず、大きな16kBスタティックバッファを使用したい場合は、LARGE_STATIC_BUFFERSオプションを指定します。 + +ダイナミックバッファが使用されている時は、ユーザがバッファサイズより大きいwolfSSL_write()を要求すると、最大MAX_RECORD_SIZEまでの動的ブロックがデータを送信するために使用されます。 RECORD_SIZEで定義されているように、バッファー・サイズのデータを最大でのみ送信したい場合は、STATIC_CHUNKS_ONLYを定義します。この定義を使用する場合、RECORD_SIZEのデフォルトは128バイトです。 + + +## ファイルシステム + +Q:どういう場合このセクションが必要ですか?
+A: 使用可能なファイルシステムがない場合、標準のファイルシステム機能が使用できない場合、または、カスタムファイルシステムを使用する場合です。 + +wolfSSLは鍵と証明書をSSLセッションまたはコンテキストにロードするためにファイルシステムを使用します。 wolfSSLでは、これらをメモリバッファからロードすることもできます。メモリバッファだけを使用する場合、ファイルシステムは必要ありません。 + +ライブラリをビルドするときにNO_FILESYSTEMを定義することにより、ファイルシステムの使用を無効にすることができます。この場合、ファイルではなくメモリバッファから証明書と鍵をロードする必要があります。これをsettings.hで設定する例: + + +``` +#ifdef MY_NEW_PLATFORM + ... + #define NO_FILESYSTEM + ... +#endif +``` + +テスト用の鍵と証明書バッファーは、./wolfssl/certs_test.hヘッダーファイルにあります。これらは、これらの証明書と./certsディレクトリにある証明書と同じものです。 + +certs_test.hヘッダーファイルは、必要に応じて./gencertbuf.plスクリプトを使用して更新できます。 gencertbuf.plには、fileList_1024とfileList_2048という2つの配列があります。鍵のサイズに応じて、それぞれの配列に追加の証明書または鍵を追加することができ、DER形式でなければなりません。上記の配列は、目的のバッファ名を持つ証明書/鍵ファイルの場所にマップされます。 gencertbuf.plを変更した後、wolfSSLルートディレクトリからそれを実行すると、./wolfssl/certs_test.hの証明書と鍵バッファが更新されます: + + +./gencertbuf.pl + +デフォルト以外のファイルシステムを使用したい場合、ファイルシステム抽象化レイヤーは./src/ssl.cにあります。ここでは、EBSNET、FREESCALE_MQX、MICRIUMなどのさまざまなプラットフォームのファイルシステムが表示されています。 XFILE、XFOPEN、XFSEEKなどでファイルシステム関数を定義できるように、必要に応じてプラットフォームにカスタム定義を追加できます。たとえば、MicriumのμC/ OS(MICRIUM)のssl.cのファイルシステム層は次のとおりです。 + +``` +#elif defined(MICRIUM) +#include +#define XFILE FS_FILE* +#define XFOPEN fs_fopen +#define XFSEEK fs_fseek +#define XFTELL fs_ftell +#define XREWIND fs_rewind +#define XFREAD fs_fread +#define XFCLOSE fs_fclose +#define XSEEK_END FS_SEEK_END +#define XBADFILE NULL +``` + +## スレッド + +Q:どういう場合このセクションが必要ですか?
+A:マルチスレッド環境でwolfSSLを使用したい場合、またはシングルスレッドモードでコンパイルしたい場合です。 + +wolfSSLがシングルスレッド環境でのみ使用される場合、wolfSSLをコンパイルするときにSINGLE_THREADEDを定義してwolfSSLの排他制御を無効にすることができます。これにより、wolfSSL 排他制御層を移植する必要がなくなります。 + +wolfSSLをマルチスレッド環境で使用する必要がある場合は、wolfSSL排他制御層を新しい環境に移植する必要があります。排他制御層は、./wolfssl/ctaocrypt/wc_port.hと./ctaocrypt/src/wc_port.cにあります。 wolfSSL_Mutexは、wc_port.cのport.hの新しいシステムと排他制御関数(InitMutex、FreeMutexなど)に定義する必要があります。 wc_port.hおよびwc_port.cで、いくつかの既存のプラットフォーム(EBSNET、FREESCALE_MQXなど)を例として検索します。 + + +## 乱数シード + +Q:どういう場合このセクションが必要ですか?
+A:/dev/randomまたは/dev/urandomのいずれかが利用できないか、RNGハードウェアを統合したい場合です。 + +デフォルトでは、wolfSSLは/dev/urandomまたは/dev/randomを使用してRNGシードを生成します。 NO_DEV_RANDOMの定義は、デフォルトのwc_GenerateSeed()関数を無効にするときにビルド時に指定します。これが指定されている場合は、ターゲットプラットフォームに固有の./wolfcrypt/src/random.cにカスタムwc_GenerateSeed()関数を記述する必要があります。これにより、ハードウェアベースのランダムエントロピーソースがあれば、wolfSSLのPRNGにシードすることができます。 + +wc_GenerateSeed関数をどのように記述する必要があるかの例については、wolfSSLの既存のwc_GenerateSeed関数の実装を./wolfcrypt/src/random.cで参照してください。 + + + +## メモリー + +Q:どういう場合このセクションが必要ですか?
+A:標準のメモリ関数を使用できない場合、またはオプションの数学ライブラリ間のメモリ使用量の違いに関心があるような場合です。 + +wolfSSLは、デフォルトではmalloc()とfree()を使用しています。通常の整数演算ライブラリを使用する場合、wolfCryptはrealloc()も使用します。 + +デフォルトでは、wolfSSL/wolfCryptは、通常の整数ライブラリを使用します。これは、かなりの動的メモリを使用します。 wolfSSLを構築する場合、FastMathライブラリのほうを有効にすることができます。こちらは通常速度も速く、暗号操作(すべてのスタック上)には動的メモリーを使用しません。 Fastmathを使う場合、wolfSSLはrealloc()の実装を必要としません。 wolfSSLのSSL層はそのほかにもいくつかの処理で動的メモリを使用しているので、malloc()とfree()は依然として必要です。 + +通常の整数演算ライブラリとFastMathライブラリ間のリソース使用量(スタック/ヒープ)の比較のドキュメントを参照ご希望のかたはお知らせください。 + +FastMathを有効にするには、USE_FAST_MATHを定義し ./wolfcrypt/src/integer.cではなく ./wolfcrypt/src/tfm.cを使用します。 fastmathを使用するときはスタックメモリが大きいので、TFM_TIMING_RESISTANTも定義することをお勧めします。 + +標準のmalloc()、free()を、およびreallocの()関数が利用できない場合、XMALLOC_USERを定義します。これによりターゲット環境依存のカスタムフックを  ./wolfssl/wolfcrypt/types.h内に定義することができます。 + +XMALLOC_USERの使用方法の詳細については、wolfSSLマニュアルのセクション5.1.1.1を参照してください。 + +https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-5-portability.html + +## 時計       + +Q:どういう場合にこのセクションが必要ですか?
+A:標準時間関数(time()、gmtime())が利用できない場合、またはカスタムクロックティック関数を指定する必要がある場合です。 + +デフォルトでは、wolfSSLは./wolfcrypt/src/asn.cで指定されているように、time()、gmtime()、およびValidateDate()を使用します。これらは、XTIME、XGMTIME、XVALIDATE_DATEに抽象化されています。標準時刻関数、およびtime.hが使用できない場合、ユーザーはUSER_TIMEを定義できます。 USER_TIMEを定義した後、ユーザーは独自のXTIME、XGMTIME、およびXVALIDATE_DATE関数を定義できます。 + +wolfSSLは、クロックティック機能のデフォルトでtime(0)を使用します。これは、LowResTimer()関数の内部の./src/internal.cにあります。 + +time(0)が望ましくない場合には、USER_TICKSを定義することでユーザー独自のclock tick関数を定義することができます。カスタム関数は秒の精度が必要ですが、EPOCHと相関させる必要はありません。 ./src/internal.cのLowResTimer()関数を参照してください。 + + +## C標準ライブラリ +Q:どういう場合このセクションが必要ですか?
+A:C標準ライブラリがない場合、またはカスタムライブラリを使用する場合です。 + +wolfSSLは、C標準ライブラリを使用しなくても、開発者がより高いレベルの移植性と柔軟性を得ることができます。そのようなとき、ユーザーはC標準のものの代わりに使用したい機能をマップする必要があります。 + +上のセクション2.8では、メモリ機能について説明しました。メモリ関数の抽象化に加えて、wolfSSLは文字列関数と数学関数も抽象化します。それぞれの関数は抽象化される関数の名前に対応してXの形で定義されます。 + +詳細については、wolfSSLマニュアルのセクション5.1をお読みください。 + +https://www.wolfssl.com/wolfSSL/Docs-wolfssl-manual-5-portability.html + +## ロギング +Q:どういう場合このセクションが必要ですか?
+A:デバッグメッセージを有効にしたいが、stderrは使用できません。 + +デフォルトでは、wolfSSLはstderrを介してデバッグ出力を提供します。デバッグメッセージを有効にするには、wolfSSLをDEBUG_WOLFSSLでコンパイルし、wolfSSL_Debugging_ON()をアプリケーションコードから呼び出す必要があります。 wolfSSL_Debugging_OFF()は、アプリケーション層がwolfSSLデバッグメッセージをオフにするために使用できます。 + +stdderが利用できない環境や、デバッグメッセージを別の出力ストリームや別の形式で出力したい場合、wolfSSLではアプリケーションはロギングコールバックに登録できます。 + +詳細については、wolfSSLマニュアルの第8.1節をお読みください。 + +https://www.wolfssl.com/wolfSSL/Docs-wolfssl-manual-8-debugging.html + +## 公開鍵演算 + +Q:どういう場合このセクションが必要ですか?
+ +A:wolfSSLで独自の公開鍵実装を使用したいとします。 + +wolfSSLを使用すると、SSL / TLS層が公開鍵操作を行う必要があるときに呼び出される独自の公開鍵コールバックをユーザーが書くことができます。ユーザーはオプションで6つの関数を定義できます。 + +- ECC復号コールバック +- ECC検証コールバック +- RSA署名コールバック +- RSA検証コールバック +- RSA暗号化コールバック +- RSA復号化コールバック + +詳細は、wolfSSLマニュアルのセクション6.4を参照してください。 + +https://www.wolfssl.com/wolfSSL/Docs-wolfssl-manual-6-callbacks.html + +## アトミックレコード層処理 + +Q:どういう場合このセクションが必要ですか?
+A:TLSレコード層の独自の処理、特にMAC /暗号化と解読/検証操作を行いたい場合です。 + +デフォルトでは、wolfSSLは、暗号化ライブラリwolfCryptを使用して、ユーザーのTLSレコード層処理を処理します。 wolfSSLは、MAC /暗号化をより詳細に制御し、SSL / TLS接続を復号/検証したい場合、アトミックレコード処理コールバックを使用します。 + +ユーザーは2つの関数を定義する必要があります: + +MAC /暗号化コールバック関数 +コールバック関数の復号化/検証 + +詳細は、wolfSSLマニュアルのセクション6.3を参照してください。 + +https://www.wolfssl.com/wolfSSL/Docs-wolfssl-manual-6-callbacks.html + +## 機能 + +Q:どういう場合このセクションが必要ですか?
+A:機能を無効にする場合。 + +適切な定義を使用してwolfSSLをビルドするとき、機能を無効にすることができます。利用可能な定義のリストについては、wolfSSL Manualの第2章を参照してください。 + +https://www.wolfssl.com/wolfSSL/Docs-wolfssl-manual-2-building-wolfssl.html diff --git a/wolfSSL-Porting/src-ja/section03.md b/wolfSSL-Porting/src-ja/section03.md new file mode 100644 index 00000000..4545c852 --- /dev/null +++ b/wolfSSL-Porting/src-ja/section03.md @@ -0,0 +1,11 @@ +# 次のステップ +## wolfCryptテストアプリケーション + +wolfSSLをターゲットプラットフォーム上に適切に構築した後、wolfCryptテストアプリケーションには良い次のステップがあります。このアプリケーションをターゲットシステムで実行すると、NISTテストベクタを使用して、すべての暗号アルゴリズムが正しく動作していることが確認されます。 + +この手順をスキップしてSSL接続の確立に直接進むと、基になる暗号化操作が失敗したために発生した問題をデバッグするのがより困難になります。 + +wolfCryptテストアプリケーションは、./wolfcrypt/test/test.cにあります。埋め込みアプリケーションに独自のmain()関数がある場合、./wolfcrypt/test/test.cをコンパイルするときにNO_MAIN_DRIVERを定義することができます。これにより、アプリケーションのmain()はそれぞれの暗号/アルゴリズムテストを個別に呼び出すことができます。 + +組み込みデバイスにwolfCryptテストアプリケーション全体を実行するのに十分なリソースがない場合、個々のテストをtest.cから抜き出して個別にコンパイルすることができます。 test.cから隔離された暗号テストを抽出する際に、ビルドに含まれる特定のテストケースに必要な正しいヘッダファイルがあることを確認してください。 + diff --git a/wolfSSL-Porting/src-ja/section04.md b/wolfSSL-Porting/src-ja/section04.md new file mode 100644 index 00000000..e50cd978 --- /dev/null +++ b/wolfSSL-Porting/src-ja/section04.md @@ -0,0 +1,27 @@ +# サポート +一般的なサポートに関する質問は、電子メール、サポートフォーラムを介してwolfSSLに直接送信することができます。 + +ウェブサイト:https://www.wolfssl.com, https://www.wolfssl.jp (日本語) +サポートメール:support@wolfssl.com (日本語可) +フォーラム:http://www.wolfssl.com/forums + +wolfSSLは、お客様が新しい環境にwolfSSLを移植できるためのサポートパッケージとコンサルティングサービスを提供しています。 + +- Support Packages: https://wolfssl.jp/license/support-packages/ +- Consulting Services: https://www.wolfssl.com/wolfSSL/wolfssl-consulting.html +- General Inquiries: info@wolfssl.com + +## Document Revision Log + +| Version | Date | Author | Notes | +| :---: | :--------: | ------------- | ---------------------------------------- | +|1.0|11/13/2012|Chris Conlon|Document Created| +|1.2|10/24/2013|Chris Conlon|Content Update| +|1.4|11/06/2013|Chris Conlon|Name change, clairty on filesystem, RNG, memory usage| +|1.5|12/23/2014|Chris Conlon|Content cleanup| +|1.6|05/05/2015|Chris Conlon|Update URLs| +|1.7|10/02/2015|Chris Conlon|Update CTaoCrypt to wolfCrypt references| +|1.8|01/19/2016|Chris Conlon|Document user\_settings.h| +|1.9|03/02/2016|Chris Conlon|Expand data types, add Consulting Services| +|1.9j|10/01/2018|Takashi Kojo|Japanese version| +|1.10|12/30/2022|John Safranek|Initial markdown revision|