Struct-Referenz „keymaster_device“

Struct-Referenz „keymaster_device“

#include < keymaster.h >

Datenfelder

struct hw_device_t   common
 
uint32_t  client_version
 
uint32_t  Flags
 
void *  context
 
int(*  generate_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 signed_data_length, const uint8_t *signature, const size_t signature_length)
 

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

DIESE FUNKTION WIRD NICHT MEHR UNTERSTÜTZT. 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. Dieser muss das erste Mitglied von keymaster_device sein, da Nutzer dieser Struktur einen hw_device_t in einen keymaster_device -Zeiger umwandeln, wenn bekannt ist, dass hw_device_t auf ein keymaster_device verweist.

Definition in Zeile 181 der Datei keymaster.h .

void* context

Definition in Zeile 194 der Datei keymaster.h .

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

Alle Schlüssel im Hardware-Schlüsselspeicher werden gelöscht. Wird verwendet, wenn der Schlüsselspeicher vollständig zurückgesetzt wird.

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

Gibt bei Erfolg den Wert 0 oder einen 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 Schlüsselpaar, das mit dem Schlüssel-Blob verknüpft ist.

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

Gibt bei Erfolg den Wert 0 oder einen Fehlercode kleiner als 0 zurück.

Definition in Zeile 237 der Datei keymaster.h .

uint32_t-Flags

Siehe Flags, die für keymaster_device::flags oben definiert sind.

Definition in Zeile 192 der Datei keymaster.h .

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

Generiert einen öffentlichen und einen privaten Schlüssel. Der zurückgegebene Schlüssel-Blob ist undurchsichtig und muss anschließend zur Signatur und Überprüfung bereitgestellt werden.

Wird 0 zurückgegeben, wenn der Vorgang erfolgreich war, oder ein 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üssel eines Schlüsselpaars ab. Der öffentliche Schlüssel muss ein Byte-Array im X.509-Format (Java-Standard) sein.

Wird 0 zurückgegeben, wenn der Vorgang erfolgreich war, oder ein 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 Schlüsselpaar aus öffentlichem und privatem Schlüssel. Die importierten Schlüssel haben das PKCS#8-Format mit DER-Codierung (Java-Standard). Der zurückgegebene Schlüssel-Blob ist undurchsichtig und wird anschließend zur Signatur und Überprüfung bereitgestellt.

Wird 0 zurückgegeben, wenn der Vorgang erfolgreich war, oder ein 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 mit einem zuvor generierten Schlüssel-Blob. Dazu kann entweder ein asymmetrischer Schlüssel oder ein geheimer Schlüssel verwendet werden.

Wird 0 zurückgegeben, wenn der Vorgang erfolgreich war, oder ein 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 signed_data_length, const uint8_t *signature, const size_t signature_length)

Prüft Daten, die mit einem Schlüssel-Blob signiert wurden. Dazu kann entweder ein asymmetrischer Schlüssel oder ein geheimer Schlüssel verwendet werden.

Wird 0 bei erfolgreicher Bestätigung oder ein Fehlercode kleiner als 0 zurückgegeben.

Definition in Zeile 269 der Datei keymaster.h .


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