Informacje o strukturze keymaster_device

Informacje o strukturze keymaster_device

#include < keymaster.h >

Pola danych

struct hw_device_t   wspólne
 
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)
 

Szczegółowy opis

Parametry, które można ustawić w przypadku danej implementacji Keymaster.

Definicja w wierszu 174 pliku keymaster.h .

Dokumentacja pola

uint32_t client_version

Ta funkcja jest wycofywana. Zamiast tego w inicjalizacji keymaster_module użyj nowych pól „module_api_version” i „hal_api_version”.

Definicja w wierszu 187 pliku keymaster.h .

struct hw_device_t common

Typowe metody korzystania z urządzenia Keymaster Ten kluczmaster_device musi być pierwszym elementem hw_device_t kluczmaster_device wskaźnika w kontekstach, w których wiadomo, że hw_device_t odwołuje się do kluczmaster_device .

Definicja w wierszu 181 pliku keymaster.h .

kontekst anulowania*

Definicja w wierszu 194 pliku keymaster.h .

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

Usuwa wszystkie klucze z magazynu kluczy sprzętowych. Używany, gdy repozytorium kluczy jest całkowicie resetowane.

Ta funkcja jest opcjonalna i w przypadku braku implementacji powinna być ustawiona na NULL.

Zwraca 0 w przypadku powodzenia lub kod błędu mniejszy niż 0.

Definicja w wierszu 249 pliku keymaster.h .

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

Usuwa parę kluczy powiązaną z kluczem blob.

Ta funkcja jest opcjonalna i w przypadku braku implementacji powinna być ustawiona na NULL.

Zwraca 0 w przypadku powodzenia lub kod błędu mniejszy niż 0.

Definicja w wierszu 237 pliku keymaster.h .

Flagi uint32_t

Zobacz flagi zdefiniowane w  keymaster_device::flags powyżej.

Definicja w wierszu 192 pliku 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)

Generuje klucz publiczny i prywatny. Zwrócony klucz-blob jest zaciemniony i musi zostać przekazany do podpisania i weryfikacji.

Zwraca: 0 w przypadku powodzenia lub kod błędu mniejszy niż 0.

Definicja w wierszu 202 pliku 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)

Pobiera część publiczną pary kluczy. Klucz publiczny musi być tablicą bajtów zakodowaną w formacie X.509 (standard Java).

Zwraca: 0 w przypadku powodzenia lub kod błędu mniejszy niż 0. W przypadku błędu nie należy przydzielać x509_data.

Definicja w wierszu 225 pliku 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)

Importuje parę kluczy (publicznego i prywatnego). Zaimportowane klucze będą w formacie PKCS#8 z kodowaniem DER (standard Java). Zwrócony klucz-blob jest zaciemniony i będzie później udostępniany do podpisywania i weryfikacji.

Zwraca: 0 w przypadku powodzenia lub kod błędu mniejszy niż 0.

Definicja w wierszu 214 pliku 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)

Podpisuje dane za pomocą wcześniej wygenerowanego klucza. Możesz użyć klucza asymetrycznego lub klucza tajnego.

Zwraca: 0 w przypadku powodzenia lub kod błędu mniejszy niż 0.

Definicja w wierszu 257 w pliku 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)

Weryfikuje dane podpisane za pomocą klucza blob. Możesz użyć klucza asymetrycznego lub klucza tajnego.

Zwraca: 0 w przypadku pomyślnej weryfikacji lub kod błędu mniejszy niż 0.

Definicja w wierszu 269 pliku keymaster.h .


Dokumentacja tego typu danych została wygenerowana z tego pliku: