ポーティング
このセクションでは、wolfHSMのポーティングに関連する資料と情報を提供することを目的としています。 次の内容についてご説明いたします。
- 概要
- 対応状況
- ポーティングインタフェース
概要
wolfHSM自体には特定のハードウェアと対話するためのコードは含まれておらず、単体では実行できません。 wolfHSMをデバイスで実行するには、サーバ アプリケーションがクライアントと通信して実行できるように、必要なハードウェアドライバーと抽象化レイヤーを使用してライブラリを構成する必要があります。具体的には、次の要素が必要です。
- サーバーアプリケーションの起動とハードウェアの初期化
- サーバーにおけるwolfCrypt構成
- サーバーの不揮発性メモリ構成
- サーバーとクライアントのトランスポート構成
- サーバーとクライアントの接続処理
これらの要件を提供し、サーバーAPIを起動可能なアプリケーションにラップするコードを、wolfHSM「ポート」と呼んでいます。
wolfHSMの公式ポートは、サポートされているさまざまなアーキテクチャ用に提供しています。それぞれのポートには次のものが含まれます。
- スタンドアロンリファレンスサーバーアプリケーション: このアプリケーションは、HSMコアで実行され、すべての安全な操作を処理することを目的としています。すぐに使用できる状態で完全に機能しますが、エンドユーザーがカスタマイズして追加のユースケースをサポートすることもできます。
- クライアントライブラリ: このライブラリは、ユーザーアプリケーションにリンクして、サーバーとの通信を容易にします。
対応状況
Infineon Aurix TC3XX
(現在対応中です。) このポートの配布はベンダーによって制限されています。ご入用の方は、info@wolfssl.jp までお問い合わせください。
Infineon Aurix TC3xx
- 最大6つのの300MHz TriCoreアプリケーションコア
- 1つの100MHz ARM Cortex M3 HSMコア
- 暗号化オフロード: TRNG、AES128、ECDSA、ED25519、SHA
ST SPC58NN
(現在対応中です。) このポートの配布はベンダーによって制限されています。ご入用の方は、info@wolfssl.jp までお問い合わせください。
ST SPC58NN
- 3つの200MHz e200z4256 PowerPC アプリケーションコア
- 1つの100MHz e200z0 PowerPC HSMコア (NVM付き)
- 暗号化オフロード: TRNG、AES128
POSIX
POSIXポートは、さまざまなwolfHSM抽象化の完全機能実装を提供します。これを使用すると、さまざまなハードウェア抽象化に期待される正確な機能をよりよく理解できます。
POSIXポートは以下を提供します。
- メモリバッファトランスポート
- TCPトランスポート
- Unixドメイントランスポート
- RAMベースおよびファイルベースのNVMフラッシュシミュレーター
Skeleton
スケルトンポートのソースコードは、将来のハードウェア/プラットフォーム ポートの開始点として使用できる非機能レイアウトを提供します。各関数には、基本的な説明と予想されるフローがエラーケースとともに説明されているため、さまざまな環境において一貫した結果を得ることができます。
スケルトンポートは、次のスタブ実装を提供します。
- トランスポートコールバック
- NVMフラッシュコールバック
- 暗号処理コールバック
ポーティングインタフェース
ポートはハードウェア固有のインターフェースを実装する必要があります。
- NVM フラッシュ インターフェース
暗号化ハードウェア
- TRNG、鍵、公開鍵暗号・共通鍵暗号
プラットフォームインターフェース
- ブートシーケンス、アプリケーションコアリセット、メモリ制限
- ポートと構成はコンパイル時に指定します。