- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Supporter
I want to translate the following KBA. Please confirm to my work.
Signature verification using 0xE0E0 certificate of OPTIGA™ Trust M – KBA235163
Regards,
Nino
Solved! Go to Solution.
- Tags:
- OPTIGA TrustM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @keni_4440091 , thanks for your interest in the KBA. Please go ahead and translate it.
Regards,
Sharath
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Sharath
The following shows the translation version of the targeted KBA.
Please confirm and double check.
Regards,
Nino
------------------------------------------------------------------------------------------------------------------------
OPTIGA™ Trust Mの0xE0E0証明書を使用した署名検証 – KBA235163
Version: **
OPTIGA™ Trust Mには、0xE0F0の秘密鍵、および0xE0E0の公開鍵証明書(TLS ID証明書チェーン形式)の事前に用意された鍵ペアがあります。
以下のように、対応する秘密鍵から生成された署名を検証する、この公開鍵証明書を使用します:
方法1:証明書から公開鍵を使用する
optiga_util_read_data APIを使用して、0xE0E0データオブジェクトから公開鍵証明書を読みます。読んだ内容を印刷し、ローカルデバイスにそれを保存します(メモ帳にコピーします)。OpenSSLツールを使用して証明書をデコードし、公開鍵をメモします。「example_crypt_ecdsa_verify」コード例のecc_public_key_componentバッファに、この公開鍵をコピーします。適切なダイジェストおよび署名を使用して、この例を実行します。
方法2:証明書OID(Object ID)を使用する
OIDを使用して署名を検証するには、データオブジェクトは単一のX.509証明書(ASN.1 DERエンコード)のみを含む必要があります。0xE0E0の公開鍵証明書は、TLS ID証明書チェーンの形式であるため、このOIDを直接使用して署名を検証することはできません。したがって、最初に、optiga_util_read_data APIを使用して、0xE0E0データオブジェクトから公開鍵証明書を読みます。読んだ内容を印刷し、DER-エンコードされたX.509証明書の最初のバイトを示す0x30バイトを探します。(以前のすべてのデータバイトは、X.509公開鍵証明書の一部ではない証明書チェーンデータを含みます)
署名検証コードでは、optiga_util_read_data APIを使用して0x30データに対応するオフセットから0xE0E0証明書を読みます。これを、optiga_util_write_data APIを使用して、0xE0E8 / 0xE0E9としてoptiga_oidと一緒にトラストアンカーデータオブジェクトに保存します。ここで、このトラストアンカーOIDポインターを、OPTIGA_CRYPT_OID_DATAとしてpublic_key_source_typeと一緒にoptiga_crypt_ecdsa_verify APIに渡します。このフローを以下に示します。
uint16_t CertChainOID, TrustAnchorOID;
int16_t offset, bytes_to_read;
uint8_t public_key_buffer[1024];
.
.
CertChainOID = 0xE0E0;
rustAnchorOID = 0xE0E8;
offset = 0x09; // offset corresponding to 0x30
bytes_to_read = sizeof(public_key_buffer);
.
.
Return_status = optiga_util_read_data (me, CertChainOID, offset, public_key_buffer, &bytes_to_read);
Return_status = optiga_util_write_data (me, TrustAnchorOID, OPTIGA_UTIL_ERASE_AND_WRITE, 0x00, public_key_buffer, bytes_to read);
Return_status = optiga_crypt_ecdsa_verify (me, digest_value, sizeof(digest_value), sign, sizeof(sign), OPTIGA_CRYPT_OID_DATA, (void *) &TrustAnchorOID);
Labels OPTIGA™ Trust M
Tags: internal certificate OPTIGATM Trust M signature verification Add tags
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The translation is sent for review
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content