keymaster0_device 構造体のリファレンス

keymaster0_device 構造体のリファレンス

#include < keymaster0.h >

データフィールド

構造体hw_device_t一般
uint32_tクライアントのバージョン
uint32_tフラグ
空所 *コンテクスト
int(* generate_keypair )(const struct keymaster0_device *dev, const keymaster_keypair_t key_type, const void *key_params, uint8_t **key_blob, size_t *key_blob_length)
int(* import_keypair )(const struct keymaster0_device *dev, const uint8_t *key, const size_t key_length, uint8_t **key_blob, size_t *key_blob_length)
int(* get_keypair_public )(const struct keymaster0_device *dev, const uint8_t *key_blob, const size_t key_blob_length, uint8_t **x509_data, size_t *x509_data_length)
int(* delete_keypair )(const struct keymaster0_device *dev, const uint8_t *key_blob, const size_t key_blob_length)
int(* delete_all )(const struct keymaster0_device *dev)
int(* Sign_data )(const struct keymaster0_device *dev, const void *signing_params, const uint8_t *key_blob, const size_t key_blob_length, const uint8_t *data, const size_t data_length, uint8_t **signed_data, size_t *signed_data_length)
int(* verify_data )(const struct keymaster0_device *dev, const void *signing_params, const uint8_t *key_blob, const size_t key_blob_length, const uint8_t *signed_data, const size_t signed_data_length, const uint8_t *signature, const size_t signed_length)

詳細な説明

Keymaster0 デバイス定義。

ファイルkeymaster0.h27行目の定義。

フィールドドキュメント

uint32_t クライアントのバージョン

これは非推奨です。代わりに、keymaster_module の初期化で新しい「module_api_version」フィールドと「hal_api_version」フィールドを使用してください。

ファイルkeymaster0.h40行目の定義。

構造体 hw_device_t共通

キーマスターデバイスの一般的なメソッド。この構造体のユーザーは、 hw_device_tkeymaster0_device を参照することがわかっているコンテキストで hw_device_t をkeymaster0_deviceポインタにキャストするため、これはkeymaster0_deviceの最初のメンバーである必要があります

ファイルkeymaster0.h34行目の定義。

void* コンテキスト

ファイルkeymaster0.h47行目の定義。

int(* delete_all)(const struct keymaster0_device *dev)

ハードウェア キーストア内のすべてのキーを削除します。キーストアが完全にリセットされる場合に使用されます。

この関数はオプションであり、実装されていない場合は NULL に設定する必要があります。

成功した場合は 0 を返すか、0 未満のエラー コードを返します。

ファイルkeymaster0.h102行目の定義。

int(* delete_keypair)(const struct keymaster0_device *dev, const uint8_t *key_blob, const size_t key_blob_length)

キー BLOB に関連付けられたキー ペアを削除します。

この関数はオプションであり、実装されていない場合は NULL に設定する必要があります。

成功した場合は 0 を返すか、0 未満のエラー コードを返します。

ファイルkeymaster0.h90行目の定義。

uint32_t フラグ

keymaster_common.hkeymaster0_device::flagsに定義されているフラグを参照してください。

ファイルkeymaster0.h45行目の定義。

int(*generate_keypair)(const struct keymaster0_device *dev, const keymaster_keypair_t key_type, const void *key_params, uint8_t **key_blob, size_t *key_blob_length)

公開キーと秘密キーを生成します。返されたキー BLOB は不透明なので、後で署名と検証のために提供する必要があります。

戻り値: 成功した場合は 0、または 0 未満のエラー コード。

ファイルkeymaster0.h55行目の定義。

int(* get_keypair_public)(const struct keymaster0_device *dev, const uint8_t *key_blob, const size_t key_blob_length, uint8_t **x509_data, size_t *x509_data_length)

キーペアの公開キー部分を取得します。公開キーは、X.509 形式 (Java 標準) でエンコードされたバイト配列である必要があります。

戻り値: 成功した場合は 0、または 0 未満のエラー コード。エラーの場合、x509_data は割り当てられません。

ファイルkeymaster0.h78行目の定義。

int(* import_keypair)(const struct keymaster0_device *dev, const uint8_t *key, const size_t key_length, uint8_t **key_blob, size_t *key_blob_length)

公開キーと秘密キーのペアをインポートします。インポートされたキーは、DER エンコード (Java 標準) を使用した PKCS#8 形式になります。返されたキー BLOB は不透明であり、後で署名と検証のために提供されます。

戻り値: 成功した場合は 0、または 0 未満のエラー コード。

ファイルkeymaster0.h67行目の定義。

int(*sign_data)(const struct keymaster0_device *dev, const void *signing_params, const uint8_t *key_blob, const size_t key_blob_length, const uint8_t *data, const size_t data_length, uint8_t **signed_data, size_t *signed_data_length)

以前に生成されたキー BLOB を使用してデータに署名します。これには、非対称キーまたは秘密キーのいずれかを使用できます。

戻り値: 成功した場合は 0、または 0 未満のエラー コード。

ファイルkeymaster0.h110行目の定義。

int(* verify_data)(const struct keymaster0_device *dev, const void *signing_params, const uint8_t *key_blob, const size_t key_blob_length, const uint8_t *signed_data, const size_t signed_data_length, const uint8_t *signature, const size_t signed_length)

キー BLOB で署名されたデータを検証します。これには、非対称キーまたは秘密キーのいずれかを使用できます。

戻り値: 検証が成功した場合は 0、または 0 未満のエラー コード。

ファイルkeymaster0.h122行目の定義。


この構造体のドキュメントは次のファイルから生成されました。