Closed makmorit closed 5 years ago
業務処理コード移植の前提となる、以下のプラットフォーム依存処理の制作が、本トピックの主な作業になるかと思われます。
NRF_LOG_xxxxに対応する、UARTログプリント機能です。 開発にあたり必須になるので、まずはこちらの機能を整備したいです。
LED点灯/消灯や、ボタン押下検知(長押しふくむ)といった処理になります。
nRF5 SDKのFDSに対応する、Flash ROMへの書込み/読出し機能です。
各種タイムアウト管理に必要なタイマーの機能です。
nRF Crypto に対応する以下の要素になります。 mbed TLSライブラリーを使用する方向で検討しております。
これでは「STM32F411RE」上で、暗号化関連処理を実装することができません。 従いまして、一旦こちらの移植対応は中断したいと思います。
後日、RNGを標準装備したIC「STM32L432KC」を使用している開発基板「NUCLEO-L432KC」[注1] を別途入手できたら、こちらの移植対応を再開させたいと思います。 何卒ご容赦ください。
[注1] 「NUCLEO-F411RE」と同様、mbed OSがサポートされています。 https://os.mbed.com/platforms/ST-Nucleo-L432KC/
後日、RNGを標準装備したIC「STM32L432KC」を使用している開発基板「NUCLEO-L432KC」[注1] を別途入手できたら、こちらの移植対応を再開させたいと思います。 何卒ご容赦ください。
「NUCLEO-L432KC」でテストした結果、USB HIDがサポートされていないことが判明したので、本件対応に「STM32L432KC」は使用できないと判断しております。 (#221 ご参照)
引き続き、本件対応は「NUCLEO-F411RE」とmbed OSの組み合わせにより継続するしか方法がないのですが、別途調査した結果、対応を継続するためには以下の対応が必要となるようです。
外付けセキュアICは、Atmel社の「ATECC508A」等が代表的なようです。 https://www.mouser.jp/ProductDetail/Microchip-Technology-Atmel/ATECC508A-SSHCZ-B?qs=sGAEpiMZZMu0yPKLVbzHrYp6gOBi1GxMa013jbeW%2Fj1RPVIyNo8bHA%3D%3D
現在手元になく、また未評価なので、後日あたらめて評価できればと思います。
mbed OS移植対応についてのポータルを作成いたしました。 https://github.com/diverta/onecard-fido/blob/master/STM32F411RE/README.md
概要
現在開発中のFIDO2認証器について、ハードウェアの選択肢を広げるため、nRF52840アプリケーションを、mbed OSに段階的に移植します。
mbed OSに対し、USB HIDサービス経由で、FIDO2各種コマンドが実行できることを確認するところまでが、本トピックの作業スコープになります。
コマンド実行確認は、FIDO仕様適合テストツール(FIDO Conformance Tools)により実施するものといたします。 (テストツール現在のバージョンは v1.1.4 です)
使用機材
以前「USB U2F HIDデバイス」の制作で使用したドングル基板(STM32F411RE使用)をそのまま使用します。 (#76 ご参照)
コーディング/デバッグ作業には、こちらも以前使用した「NUCLEO-F411RE」を使用します。 (NUCLEOについては、トピック「HIDマウスデバイスを試す」ご参照)
関連Issue
nRF52840ファームウェアのリファクタリング(#195 ご参照) nRF52840版ファームウェアのうち、プラットフォームに依存しない業務処理コードは、ノーカスタマイズで共用します。
電源不要のFIDO2 NFC認証器を作るための調査(#203 ご参照) STM32に、同じSTマイクロのNFCタグIC「ST25DV」を接続することにより、電源不要のFIDO2認証器が制作できないかどうか調査します。
関連プルリクエスト
206 ご参照