keymaster0_device-Strukturreferenz

keymaster0_device-Strukturreferenz

#include < keymaster0.h >

Datenfelder

Struktur hw_device_t gemeinsam
uint32_t client_version
uint32_t Flaggen
Leere * Kontext
int(* generic_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 signierte_datenlänge, const uint8_t *signature, const size_t signatur_length)

detaillierte Beschreibung

Keymaster0-Gerätedefinition.

Definition in Zeile 27 der Datei keymaster0.h .

Felddokumentation

uint32_t client_version

DIES IST VERALTET. Verwenden Sie stattdessen die neuen Felder „module_api_version“ und „hal_api_version“ in der keymaster_module-Initialisierung.

Definition in Zeile 40 der Datei keymaster0.h .

struct hw_device_t common

Gängige Methoden des Keymaster-Geräts. Dies muss das erste Mitglied von keymaster0_device sein, da Benutzer dieser Struktur in Kontexten, in denen bekannt ist, dass hw_device_t auf ein keymaster0_device verweist, einen hw_device_t auf einen keymaster0_device- Zeiger umwandeln.

Definition in Zeile 34 der Datei keymaster0.h .

void* Kontext

Definition in Zeile 47 der Datei keymaster0.h .

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

Löscht alle Schlüssel im Hardware-Keystore. Wird verwendet, wenn der Keystore vollständig zurückgesetzt wird.

Diese Funktion ist optional und sollte auf NULL gesetzt werden, wenn sie nicht implementiert ist.

Gibt 0 bei Erfolg oder einem Fehlercode kleiner als 0 zurück.

Definition in Zeile 102 der Datei keymaster0.h .

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

Löscht das mit dem Schlüsselblob verknüpfte Schlüsselpaar.

Diese Funktion ist optional und sollte auf NULL gesetzt werden, wenn sie nicht implementiert ist.

Gibt 0 bei Erfolg oder einem Fehlercode kleiner als 0 zurück.

Definition in Zeile 90 der Datei keymaster0.h .

uint32_t-Flags

Siehe die für keymaster0_device::flags in keymaster_common.h definierten Flags

Definition in Zeile 45 der Datei keymaster0.h .

int(* generic_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)

Erzeugt einen öffentlichen und privaten Schlüssel. Der zurückgegebene Schlüsselblob ist undurchsichtig und muss anschließend zur Signierung und Überprüfung bereitgestellt werden.

Gibt zurück: 0 bei Erfolg oder einem Fehlercode kleiner als 0.

Definition in Zeile 55 der Datei keymaster0.h .

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)

Ruft den öffentlichen Schlüsselteil eines Schlüsselpaars ab. Der öffentliche Schlüssel muss im X.509-Format (Java-Standard) als codiertes Byte-Array vorliegen.

Gibt zurück: 0 bei Erfolg oder einem Fehlercode kleiner als 0. Bei einem Fehler sollte x509_data nicht zugewiesen werden.

Definition in Zeile 78 der Datei keymaster0.h .

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)

Importiert ein Paar aus öffentlichem und privatem Schlüssel. Die importierten Schlüssel liegen im PKCS#8-Format mit DER-Kodierung (Java-Standard) vor. Der zurückgegebene Schlüssel-Blob ist undurchsichtig und wird anschließend zum Signieren und Überprüfen bereitgestellt.

Gibt zurück: 0 bei Erfolg oder einem Fehlercode kleiner als 0.

Definition in Zeile 67 der Datei keymaster0.h .

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)

Signiert Daten mithilfe eines zuvor generierten Schlüsselblobs. Dabei kann entweder ein asymmetrischer Schlüssel oder ein geheimer Schlüssel verwendet werden.

Gibt zurück: 0 bei Erfolg oder einem Fehlercode kleiner als 0.

Definition in Zeile 110 der Datei keymaster0.h .

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 signierte_daten_länge, const uint8_t *signature, const size_t signatur_länge)

Überprüft mit einem Schlüsselblob signierte Daten. Dabei kann entweder ein asymmetrischer Schlüssel oder ein geheimer Schlüssel verwendet werden.

Rückgabe: 0 bei erfolgreicher Überprüfung oder ein Fehlercode kleiner als 0.

Definition in Zeile 122 der Datei keymaster0.h .


Die Dokumentation für diese Struktur wurde aus der folgenden Datei generiert: