Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Porting Antarmuka Transportasi Jaringan
Mengintegrasikan pustaka TLS
Untuk autentikasi Keamanan Lapisan Pengangkutan (TLS) yang Anda sukai. Kami merekomendasikan menggunakanTLS Mbed
Terlepas dari implementasi TLS yang digunakan oleh perangkat Anda, Anda harus mengimplementasikan kait transport yang mendasarinya untuk tumpukan TLS dengan tumpukan TCP/IP. Mereka harus mendukungTLS cipher suite yang didukung olehAWS IoT.
Mem-porting perpustakaan Antarmuka Transportasi Jaringan
Anda harus menerapkan antarmuka transportasi jaringan untuk digunakanCoreMQTT
Prasyarat
Untuk mem-port tes ini, Anda memerlukan yang berikut:
Proyek dengan sistem build yang dapat membangun FreerTOS dengan port kernel FreerTOS yang divalidasi.
Implementasi kerja driver jaringan.
Porting
MenambahkanFreertos-perpustakaan-integrasi-tes
sebagai submodul ke dalam proyek Anda. Tidak masalah di mana submodul ditempatkan dalam proyek, selama itu dapat dibangun. Salin
config_template/test_execution_config_template.h
danconfig_template/test_param_config_template.h
ke lokasi proyek di jalur build, dan ganti namanya menjaditest_execution_config.h
dantest_param_config.h
.Sertakan file yang relevan ke dalam sistem build. Jika menggunakan
CMake
,qualification_test.cmake
dansrc/transport_interface_tests.cmake
digunakan untuk memasukkan file yang relevan.Menerapkan fungsi-fungsi berikut di lokasi proyek yang sesuai:
-
SEBUAH
network connect function
: Tanda tangan didefinisikan olehNetworkConnectFunc
disrc/common/network_connection.h
. Fungsi ini mengambil pointer ke konteks jaringan, pointer untuk meng-host info, dan pointer ke kredensyal jaringan. Ini membuat koneksi dengan server yang ditentukan dalam info host dengan kredensyal jaringan yang disediakan.SEBUAH
network disconnect function
: Tanda tangan didefinisikan olehNetworkDisconnectFunc
disrc/common/network_connection.h
. Fungsi ini mengambil pointer ke konteks jaringan. Ini memutus koneksi yang dibuat sebelumnya yang disimpan dalam konteks jaringan.setupTransportInterfaceTestParam()
: Ini didefinisikan dalamsrc/transport_interface/transport_interface_tests.h
. Implementasi harus memiliki nama dan tanda tangan yang persis sama seperti yang didefinisikan dalamtransport_interface_tests.h
. Fungsi ini mengambil pointer ke aTransportInterfaceTestParamstruct. Ini akan mengisi bidang diTransportInterfaceTestParamstruct yang digunakan oleh uji antarmuka transportasi.
MelaksanakanUNITY_OUTPUT_CHARsehingga log keluaran pengujian tidak saling terkait dengan log perangkat.
Panggilan
runQualificationTest()
dari aplikasi. Perangkat keras perangkat harus diinisialisasi dengan benar dan jaringan harus terhubung sebelum panggilan.
Manajemen kredensyal (kunci yang dihasilkan di perangkat)
KapanFORCE_GENERATE_NEW_KEY_PAIRditest_param_config.h
diatur ke 1, aplikasi perangkat menghasilkan key pair di perangkat baru dan mengeluarkan kunci publik. Aplikasi perangkat menggunakanECHO_SERVER_ROOT_CAdanTRANSPORT_CLIENT_CERTIFICATEsebagai echo server root CA dan sertifikat klien saat membuat koneksi TLS dengan server echo. IDT menetapkan parameter ini selama kualifikasi berjalan.
Manajemen Kredensyal (kunci impor)
Aplikasi perangkat menggunakanECHO_SERVER_ROOT_CA,TRANSPORT_CLIENT_CERTIFICATEdanTRANSPORT_CLIENT_PRIVATE_KEYditest_param_config.h
sebagai echo server root CA, sertifikat klien, dan kunci pribadi klien saat membuat koneksi TLS dengan server echo. IDT menetapkan parameter ini selama kualifikasi berjalan.
Pengujian
Bagian ini menjelaskan bagaimana Anda dapat menguji antarmuka transportasi secara lokal dengan tes kualifikasi. Detail tambahan dapat ditemukan di file README.md yang disediakan ditransport_interface
Atau, Anda juga dapat menggunakan IDT untuk mengotomatisasi eksekusi. LihatAWS IoT Device Testeruntuk FreeRTOSdiPanduan Pengguna FreeRTOSuntuk detailnya.
Aktifkan tes
Bukatest_execution_config.h
dan mendefinisikanTRANSPORT_INTERFACE_TEST_ENABLEDke 1.
Siapkan server gema untuk pengujian
Server gema yang dapat diakses dari perangkat yang menjalankan pengujian diperlukan untuk pengujian lokal. Server echo harus mendukung TLS jika implementasi antarmuka transport mendukung TLS. Jika Anda belum memilikinya,Freertos-perpustakaan-integrasi-tes
Mengkonfigurasi proyek untuk pengujian
Ditest_param_config.h
, perbaruiECHO_SERVER_TITIK AKHIRdanECHO_SERVER_PORTke pengaturan titik akhir dan server pada langkah sebelumnya.
Menyiapkan kredensyal (kunci yang dihasilkan di perangkat)
SetECHO_SERVER_ROOT_CAke sertifikat server server echo.
SetFORCE_GENERATE_NEW_KEY_PAIRke 1 untuk menghasilkan key pair dan mendapatkan kunci publik.
SetFORCE_GENERATE_NEW_KEY_PAIRkembali ke 0 setelah pembuatan kunci.
Pengguna kunci publik dan kunci server dan sertifikat untuk menghasilkan sertifikat klien.
SetTRANSPORT_CLIENT_CERTIFICATEke sertifikat klien yang dihasilkan.
Siapkan kredensyal (kunci impor)
SetECHO_SERVER_ROOT_CAke sertifikat server server echo.
SetTRANSPORT_CLIENT_CERTIFICATEke sertifikat klien yang dibuat sebelumnya.
SetTRANSPORT_CLIENT_PRIVATE_KEYke kunci pribadi klien yang dibuat sebelumnya.
Membangun dan mem-flash aplikasi
Bangun dan flash aplikasi menggunakan rantai alat pilihan Anda. KapanrunQualificationTest()
dipanggil, tes antarmuka transport akan berjalan. Hasil pengujian yang dikeluarkan ke port serial.
catatan
Untuk secara resmi memenuhi syarat perangkat untuk FreeRTOS, Anda harus memvalidasi kode sumber porting perangkat terhadap grup uji OTA PAL dan OTA E2E denganAWS IoT Device Tester. Ikuti instruksi diMenggunakanAWS IoT Device Testeruntuk FreeRTOSdiPanduan Pengguna FreeRTOSuntuk mengaturAWS IoT Device Testeruntuk validasi port. Untuk menguji port pustaka tertentu, grup pengujian yang benar harus diaktifkan didevice.json
berkas diAWS IoT Device Tester configs
folder.