ネットワークトランスポートインターフェースの移植 - FreeRTOS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ネットワークトランスポートインターフェースの移植

TLS ライブラリの統合

トランスポート層セキュリティ (TLS) 認証するには、お好みの TLS スタックを使用してください。使用することをお勧めしますTLS を埋め込むFreeRTOS ライブラリでテストされているからです。この例は以下にあります。GitHubリポジトリ。

デバイスで使用されている TLS 実装にかかわらず、TLS スタックの基礎となるトランスポートフックを TCP/IP スタックで実装する必要があります。彼らはサポートする必要がありますがサポートする TLS 暗号スイートAWS IoT

ネットワーク・トランスポート・インターフェース・ライブラリーの移植

使用するにはネットワークトランスポートインターフェースを実装する必要があります。CoreMQTTそしてコア:HTTP。Network Transport Interface には、1 つのネットワーク接続でデータを送受信するのに必要な関数ポインタとコンテキストデータが含まれています。を参照してください。トランスポートインターフェース詳細については。FreeRTOS には、これらの実装を検証するための一連の組み込みネットワークトランスポートインターフェーステストが用意されています。次のセクションでは、これらのテストを実行するためのプロジェクトの設定方法を説明します。

前提条件

このテストを移植するには、以下が必要です。

  • 検証済みの FreeRTOS カーネルポートで FreeRTOS をビルドできるビルドシステムを備えたプロジェクト。

  • ネットワークドライバーの実用的な実装。

移植

  • 追加FreeRTOSライブラリ-統合テストプロジェクトのサブモジュールとして。ビルドできる限り、サブモジュールをプロジェクトのどこに配置してもかまいません。

  • [コピー]config_template/test_execution_config_template.hそしてconfig_template/test_param_config_template.hビルドパス内のプロジェクトの場所に移動し、名前を次のように変更しますtest_execution_config.hそしてtest_param_config.h

  • 関連ファイルをビルドシステムに含める。使用する場合CMakequalification_test.cmakeそしてsrc/transport_interface_tests.cmake関連ファイルを含めるために使用されます。

  • 以下の機能を適切なプロジェクトの場所に実装してください。

    • あるnetwork connect function: シグネチャは次のように定義されます。NetworkConnectFuncsrc/common/network_connection.h。この関数は、ネットワークコンテキストへのポインタ、ホスト情報へのポインタ、およびネットワーク認証情報へのポインタを受け取ります。提供されたネットワーク認証情報を使用して、ホスト情報で指定されたサーバーとの接続を確立します。

    • あるnetwork disconnect function: シグネチャは次のように定義されます。NetworkDisconnectFuncsrc/common/network_connection.h。この関数はネットワークコンテキストへのポインタを受け取ります。ネットワークコンテキストに保存されている以前に確立された接続を切断します。

    • setupTransportInterfaceTestParam(): これはで定義されていますsrc/transport_interface/transport_interface_tests.h。実装には、で定義されているものとまったく同じ名前とシグネチャが必要です。transport_interface_tests.h。この関数は a へのポインタを受け取ります。TransportInterfaceTestParam構造体。のフィールドに入力されますTransportInterfaceTestParamトランスポートインターフェースのテストで使用される構造体。

  • 実装します。UNITY_OUTPUT_CHARテスト出力ログがデバイスログとインターリーブしないように。

  • コールrunQualificationTest()アプリケーションから。電話をかける前に、デバイスのハードウェアを適切に初期化し、ネットワークに接続する必要があります。

認証情報管理 (デバイス上で生成されたキー)

いつ新しいキーペアを強制的に生成test_param_config.hが 1 に設定されている場合、デバイスアプリケーションは新しいデバイス上のkey pair を生成し、公開キーを出力します。デバイスアプリケーションは以下を使用します。ECHO_SERVER_ROOT_CAそしてトランスポート_クライアント_証明書エコーサーバーとの TLS 接続を確立する際のエコーサーバーのルート CA およびクライアント証明書として使用します。IDT はこれらのパラメータを認定試験中に設定します。

認証情報管理 (キーのインポート)

デバイスアプリケーションは以下を使用します。ECHO_SERVER_ROOT_CA,トランスポート_クライアント_証明書そしてトランスポート・クライアント・プライベート・キーtest_param_config.hエコーサーバとの TLS 接続を確立する際のエコーサーバのルート CA、クライアント証明書、クライアント秘密鍵として使用されます。IDT はこれらのパラメータを認定試験中に設定します。

テスト

このセクションでは、認定テストでトランスポートインターフェースをローカルでテストする方法について説明します。その他の詳細は、に記載されている README.md ファイルに記載されています。トランスポートインターフェースFreeRTOSライブラリ統合テストのセクション GitHub。

または、IDT で自動化することもできます。を参照してください。AWS IoT Device Tester無料 RTOS 向けに資格認定するにはFreeRTOS ユーザーガイド詳細については。

テストを有効にします。

開くtest_execution_config.hと定義トランスポート・インターフェース・テスト対応1 に。

テスト用にエコーサーバーをセットアップします。

ローカルテストには、テストを実行するデバイスからアクセスできるエコーサーバーが必要です。トランスポートインターフェースの実装がTLSをサポートしている場合、エコーサーバーはTLSをサポートしている必要があります。まだ持っていない場合は、FreeRTOSライブラリ-統合テスト GitHub リポジトリにはエコーサーバー実装があります。

テスト用にプロジェクトを設定する。

test_param_config.h、更新エコー・サーバー・エンドポイントそしてエコー・サーバー・ポート前のステップでエンドポイントとサーバーの設定に移動します。

認証情報 (デバイス上で生成されたキー) を設定します。

  • 設定ECHO_SERVER_ROOT_CAエコーサーバーのサーバー証明書へ。

  • 設定新しいキーペアを強制生成を 1 に設定すると、key pair が生成され、パブリックキーが取得されます。

  • に設定します。新しいキーペアを強制生成キー生成後に 0 に戻る。

  • 公開鍵とサーバー鍵と証明書を使用してクライアント証明書を生成します。

  • 設定トランスポート_クライアント_証明書生成されたクライアント証明書へ。

認証情報のセットアップ (キーのインポート)

  • 設定ECHO_SERVER_ROOT_CAエコーサーバーのサーバー証明書へ。

  • 設定トランスポート_クライアント_証明書事前に生成されたクライアント証明書へ。

  • 設定する。トランスポート_クライアント_プライベート_キー事前に生成されたクライアント秘密鍵へ。

アプリケーションをビルドしてフラッシュする

任意のツールチェーンを使用してアプリケーションをビルドおよびフラッシュします。いつrunQualificationTest()が呼び出されると、トランスポートインターフェースのテストが実行されます。テスト結果はシリアルポートに出力されます。

注記

デバイスを正式に FreeRTOS 向けに資格認定するには、OTA PAL および OTA E2E テストグループに資格認定するには、AWS IoT Device Tester。の指示に従ってください。使用するAWS IoT Device Tester無料 RTOS 向けに資格認定するにはFreeRTOS ユーザーガイドセットアップするにはAWS IoT Device Testerポート検証用。特定のライブラリのポートをテストするには、そのライブラリで正しいテストグループを有効にする必要があります。device.json内のファイルAWS IoT Device Tester configsフォルダー。