私は azure-iot-sdk-c を stm32f767zi ボードに移植しようとしていますが、ある程度の成功を収めています。ただし、プログラムがサーバー mbedtls との SSL ハンドシェイクを試行している時点で、サーバー証明書に対して提供した証明書の検証に失敗しています。ログ行は次のとおりです。
x509_verify_cert() は -9984 (-0x2700) を返しました
これは MBEDTLS_ERR_X509_CERT_VERIFY_FAILED エラーに変換されます
さまざまな証明書 (Baltimore CyberTrust Root、Microsoft IT TLS CA 1、検証のために送信される証明書を使用) を提供しようとしましたが、それらはすべて同じエラーで失敗します。
エラーで失敗する mbedtls ライブラリから、失敗を mbedtls_rsa_rsassa_pkcs1_v15_verify() に絞り込みました。
MBEDTLS_ERR_RSA_INVALID_PADDING
LwIP と mbedtls が正しく機能していると想定しているため、提供している証明書または構成の 1 つが間違っていると信じるしかありませんが、mbedtls/ssl について十分に理解していないため、どの構成/証明書を使用しているかを把握できません。使用する必要があります。
全体的な私の質問は、接続しようとしていた証明書 (ボルチモア サイバートラスト ルート) を使用するのに適切な証明書であるか、mbedtls に設定していない明白な設定があるかということです。