翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ネットワークトランスポートインターフェイスの移植
TLS ライブラリの統合
Transport Layer Security (TLS) 認証の場合は、優先する TLS スタックを使用します。を使用することをお勧めします。Mbed TLS
デバイスで使用される TLS 実装に関係なく、TCP/IP スタックを使用した TLS スタックの基礎となるトランスポートフックを実装する必要があります。彼らはサポートしなければならないでサポートされている TLS 暗号スイートAWS IoT。
ネットワークトランスポートインターフェイスライブラリの移植
使用するネットワークトランスポートインターフェイスを実装する必要がありますcoreMQTT
前提条件
このテストを移植するには、次のものが必要です。
検証済みの FreeRTOS カーネルポートで FreeRTOS をビルドできるビルドシステムを持つプロジェクト。
ネットワークドライバの作業実装。
移植
を追加します。Freertos-Libraries-統合テスト
プロジェクトのサブモジュールとして。サブモジュールがビルドできる限り、プロジェクトのどこにサブモジュールが配置されているかは関係ありません。 コピー
config_template/test_execution_config_template.h
そしてconfig_template/test_param_config_template.h
ビルドパス内のプロジェクトの場所に移動し、名前をtest_execution_config.h
そしてtest_param_config.h
。関連するファイルをビルドシステムに含めます。を使用する場合
CMake
,qualification_test.cmake
そしてsrc/transport_interface_tests.cmake
関連するファイルを含めるのに使われます。次の関数を適切なプロジェクトの場所に実装します。
-
ある
network connect function
: シグニチャは次の式で定義されます。NetworkConnectFunc
にsrc/common/network_connection.h
。この関数は、ネットワークコンテキストへのポインタ、ホスト情報へのポインタ、およびネットワーククレデンシャルへのポインタを取ります。指定されたネットワーククレデンシャルを使用して、ホスト情報で指定されたサーバーとの接続を確立します。ある
network disconnect function
: シグニチャは次の式で定義されます。NetworkDisconnectFunc
にsrc/common/network_connection.h
。この関数は、ネットワークコンテキストへのポインタを取り込みます。ネットワークコンテキストに格納されている以前に確立された接続を切断します。setupTransportInterfaceTestParam()
: これはに定義されています。src/transport_interface/transport_interface_tests.h
。実装は、で定義されている名前とシグネチャとまったく同じでなければなりません。transport_interface_tests.h
。この関数は、トランスポートインターフェイス TestParam構造体。これは、次のフィールドに入力されます。トランスポートインターフェイス TestParamトランスポートインターフェイステストで使用される構造体。
を実装するUNITY_OUTPUT_CHARテスト出力ログがデバイスログとインターリーブしないようにします。
電話
runQualificationTest()
アプリケーションから。デバイスのハードウェアが正しく初期化され、コール前にネットワークが接続されている必要があります。
クレデンシャル管理(デバイス上で生成されたキー)
メトリックFORCE_GENERATE_NEW_KEY_PAIRにtest_param_config.h
を 1 に設定すると、デバイスアプリケーションは新しいオンデバイスkey pair を生成し、公開キーを出力します。デバイスアプリケーションではECHO_SERVER_ROOT_CAそしてCLIENT_CERTIFICATEエコーサーバと TLS 接続を確立するときに、エコーサーバのルート CA およびクライアント証明書として指定します。IDT は、資格の実行中にこれらのパラメータを設定します。
認証情報管理 (キーのインポート)
デバイスアプリケーションではECHO_SERVER_ROOT_CA,CLIENT_CERTIFICATEそしてCLIENT_PRIVATE_KEYにtest_param_config.h
エコーサーバと TLS 接続を確立するときに、エコーサーバのルート CA、クライアント証明書、およびクライアント秘密キーとして指定します。IDT は、資格の実行中にこれらのパラメータを設定します。
テスト
このセクションでは、資格テストを使用してトランスポートインターフェイスをローカルでテストする方法について説明します。または、IDT を使用して実行を自動化することもできます。「」を参照してください。AWS IoT Device TesterFreeRTOS の場合のFreeRTOS ユーザーガイド詳細については。
テストを有効にする
オープンtest_execution_config.h
を定義するにはTRANSPORT_INTERFACE_TEST_ENABLEDに 1.
テスト用にエコーサーバーをセットアップする
ローカルテストには、テストを実行するデバイスからアクセス可能なエコーサーバーが必要です。トランスポートインターフェイス実装が TLS をサポートしている場合、エコーサーバーは TLS をサポートする必要があります。お持ちでない場合は、Freertos-Libraries-統合テスト
テスト用にプロジェクトを構成する
In (イン)test_param_config.h
を更新するにはECHOそしてECHO_SERVER_PORTを前のステップでエンドポイントとサーバーのセットアップに設定します。
認証情報の設定 (デバイス上で生成されたキー)
設定ECHO_SERVER_ROOT_CAエコーサーバのサーバ証明書に送信します。
設定FORCE_GENERATE_NEW_KEY_PAIR1 にするとkey pair を生成し、公開キーを取得します。
設定FORCE_GENERATE_NEW_KEY_PAIRキー生成後 0 に戻ります。
公開キー、サーバーキー、および証明書を使用して、クライアント証明書を生成します。
設定CLIENT_CERTIFICATEを生成したクライアント証明書に送信します。
認証情報の設定 (キーのインポート)
設定ECHO_SERVER_ROOT_CAエコーサーバのサーバ証明書に送信します。
設定CLIENT_CERTIFICATE事前に生成されたクライアント証明書に送信します。
設定CLIENT_PRIVATE_KEYを事前に生成したクライアントのプライベートキーに設定します。
アプリケーションをビルドしてフラッシュする
選択したツールチェーンを使用して、アプリケーションをビルドしてフラッシュします。メトリックrunQualificationTest()
が呼び出されると、トランスポートインターフェースのテストが実行されます。テスト結果はシリアルポートに出力されます。
デバイスを正式に FreeRTOS 向けに資格認定するには、でデバイスの移植されたソースコードをOTA PAL および OTA E2E テストグループに対して検証する必要があります。AWS IoT Device Tester。「」の指示に従って、を使用するAWS IoT Device TesterFreeRTOS の場合のFreeRTOS ユーザーガイドをセットアップするにはAWS IoT Device Testerポート検証用。特定のライブラリのポートをテストするには、で正しいテストグループを有効にする必要があります。device.json
のファイルAWS IoT Device Tester configs
folder