keymaster_device-Strukturreferenz
#include < keymaster.h >
Datenfelder | |
Struktur hw_device_t | gemeinsam |
uint32_t | client_version |
uint32_t | Flaggen |
Leere * | Kontext |
int(* | generic_keypair )(const struct keymaster_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 keymaster_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 keymaster_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 keymaster_device *dev, const uint8_t *key_blob, const size_t key_blob_length) |
int(* | delete_all )(const struct keymaster_device *dev) |
int(* | sign_data )(const struct keymaster_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 keymaster_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) |
detaillierte Beschreibung
Die Parameter, die für eine bestimmte Keymaster-Implementierung festgelegt werden können.
Definition in Zeile 174 der Datei keymaster.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 187 der Datei keymaster.h .
struct hw_device_t common |
Gängige Methoden des Keymaster-Geräts. Dies muss das erste Mitglied von keymaster_device sein, da Benutzer dieser Struktur in Kontexten, in denen bekannt ist, dass hw_device_t auf ein keymaster_device verweist, einen hw_device_t auf einen keymaster_device-Zeiger umwandeln.
Definition in Zeile 181 der Datei keymaster.h .
void* Kontext |
Definition in Zeile 194 der Datei keymaster.h .
int(* delete_all)(const struct keymaster_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 249 der Datei keymaster.h .
int(* delete_keypair)(const struct keymaster_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 237 der Datei keymaster.h .
uint32_t-Flags |
Siehe oben für keymaster_device::flags definierte Flags.
Definition in Zeile 192 der Datei keymaster.h .
int(* generic_keypair)(const struct keymaster_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 202 der Datei keymaster.h .
int(* get_keypair_public)(const struct keymaster_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 225 der Datei keymaster.h .
int(* import_keypair)(const struct keymaster_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 214 der Datei keymaster.h .
int(* sign_data)(const struct keymaster_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 257 der Datei keymaster.h .
int(* verify_data)(const struct keymaster_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 269 der Datei keymaster.h .
Die Dokumentation für diese Struktur wurde aus der folgenden Datei generiert:
- hardware/libhardware/include/hardware/ keymaster.h