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:
- hardware/libhardware/include/hardware/ keymaster.h