こんにちは、haといいます。
CK-RX65NでOTAのデモアプリケーションを実行しているのですが、エラーが出てOTAが実行されません。
エラーは以下の内容です。この後AWSとの接続が一旦切断され、再度接続されるということが繰り返されています。
使用しているプログラムはafr-v202107.00-rx-1.0.1のck-rx65n-ryz014aプロジェクトで、コンパイラはGCC for Renesas RXです。
環境構築で参考にした手順は以下です。
https://docs.aws.amazon.com/ja_jp/freertos/latest/userguide/download-rx65n-ota.html
もし何かわかる方がいらっしゃいましたらご教授いただけますと幸いです。
よろしくお願い申し上げます。
haさん
こんにちはシェルティです。ルネサスの中の人です。FreeRTOSやAzure RTOS関係をいろいろ作ってます。
本件こちらでも評価記録を見たり、実機を動かしたりして、少し調べてみます。
何か分かったらまた連絡いたします。
以上です
シェルティ様
ご協力いただきありがとうございます。
追加情報ですが、よくよくログを確認致しますと、コード署名証明書の検証で失敗した後、最初に記載したエラーになっておりました。確認が不足しており大変申し訳ありません。
ただ、生成したアップデート用のrsuファイルは以下の資料7.4の方法で検証し問題ないことを確認済みのため、署名や鍵に問題は無いように思うのですが・・・。そうなると検証するソースコード側に問題があるのでしょうか?
https://www.renesas.com/jp/ja/document/apn/renesas-mcu-firmware-update-design-policy-rev100
シェルティです、こんにちは。
当時の評価記録を引っ張り出してきましたが、当該組み合わせ(CK-RX65N(RYZ014A(cellular)/GCC/afr-v202107.00-rx-1.0.1)で試験OKになってましたね。
新たにご提示いただいたログからすると「Finished sig-sha256-ecdsa signature verification, but signature verification failed」とあるのでご推察の通り、ダウンロードしてきた新しいファームウェアをECDSA/SHA256で検証したときに検証NGになっている、ということで間違いないです。
otapalconfigCODE_SIGNING_CERTIFICATE が今一度正しいかご確認いただけますか。あと、ソースコードに証明書を書き込むときに改行コードの入れ方にクセがあったと思います。資料の通りに改行コードを確認しながら入れてみてもらえますか。
ご確認いただきありがとうございます。
otapalconfigCODE_SIGNING_CERTIFICATE について下記のように記載しておりますが、間違っておりますでしょうか?下記の記載で署名の検証でエラーになっております。
記述内容はsecp256r1.crtと一致することを確認しております。
連投すみません。
生成した更新用のファームウェアの署名が正しいか確認しようとしています。
下記資料の7.1を見るとRenesas Secure Flash Programmerで生成したrsuファイルのアドレス0x0000002cに署名値が記載されているため、この署名値とopensslで生成した署名(同資料の7.4.1のコマンドで生成)を比較したのですが、一致していませんでした。
rsuファイルに記載されている署名値とopensslで生成した署名値が一致していないことが署名検証失敗の原因でしょうか?
最後の行の----END CERTIFICATEの行の"\n"の後に”;”が無いのが原因かもしれません。
一度試して頂けますか? ”;”でダメなら”\”も試して見てほしいです。
AWSのガイドおよびルネサスさんのガイド(以下)は”;”がついていますhttps://www.renesas.com/jp/ja/document/apn/rx-family-how-implement-freertos-ota-using-amazon-web-services-rx65n-rev102?r=1471546&r=1471546
PONSUKE様
はじめまして。haといいます。
ご指摘の通り";"をつけたところビルドエラーになりました。また、"\"も試してみましたが、ビルドはできたもののやはり署名検証でエラーとなりました。
確認ありがとうございます。
これだと言う確証は無いのですが、過去私が失敗したことがあるケースとして、以下青枠の設定を忘れたことがあります。ガイドでは特に指定がされていないのですが、こちらをuser-definedにしておく必要があります。
以下の2.3 ファームウェアのバージョン更新 の章の設定になります。
www.renesas.com/.../rx-family-how-implement-freertos-ota-using-amazon-web-services-rx65n-rev102
これで解決すると良いのですが。
情報いただき、ありがとうございます。
まさにご教授いただきました設定をsig-sha256-ecdsaにしておりました・・・。
user-specifiedに変更したところ無事OTAできるようになりました。
他の資料では明示的に「sig-sha256-ecdsaを設定」と記載されていたため、こちらの資料も見てはいたのですが完全に見落としていました。画像内もしっかり確認しないとダメですね・・・。
ご協力いただき、深く感謝申し上げます。助かりました。