Documentation de référence sur la struct keymaster_device

Documentation de référence sur la struct keymaster_device

#include < keymaster.h >

Champs de données

struct hw_device_t   commun
 
uint32_t  client_version
 
uint32_t  indicateurs
 
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)
 

Description détaillée

Paramètres pouvant être définis pour une implémentation keymaster donnée.

Définition à la ligne 174 du fichier keymaster.h .

Documentation des champs

uint32_t client_version

OBSOLÈTE. Utilisez plutôt les nouveaux champs "module_api_version" et "hal_api_version" dans l'initialisation de keymaster_module.

Définition à la ligne 187 du fichier keymaster.h .

struct hw_device_t common

Méthodes courantes de l'appareil Keymaster. Cet élément doit être le premier membre de keymaster_device , car les utilisateurs de cette structure casteront un hw_device_t en pointeur keymaster_device dans les contextes où il est connu que hw_device_t fait référence à un keymaster_device .

Définition à la ligne  181 du fichier keymaster.h .

void* context

Définition à la ligne  194 du fichier keymaster.h .

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

Supprime toutes les clés du keystore matériel. Utilisé lorsque le keystore est réinitialisé complètement.

Cette fonction est facultative et doit être définie sur NULL si elle n'est pas implémentée.

Renvoie 0 en cas de réussite ou un code d'erreur inférieur à 0.

Définition à la ligne  249 du fichier keymaster.h .

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

Supprime la paire de clés associée au blob de clé.

Cette fonction est facultative et doit être définie sur NULL si elle n'est pas implémentée.

Renvoie 0 en cas de réussite ou un code d'erreur inférieur à 0.

Définition à la ligne  237 du fichier keymaster.h .

Options uint32_t

Consultez les indicateurs définis pour keymaster_device::flags ci-dessus.

Définition à la ligne  192 du fichier 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)

Génère une clé publique et une clé privée. Le blob de clé renvoyé est opaque et doit ensuite être fourni pour la signature et la validation.

Renvoie: 0 en cas de réussite ou un code d'erreur inférieur à 0.

Définition à la ligne  202 du fichier 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)

Récupère la partie clé publique d'une paire de clés. La clé publique doit être une matrice d'octets au format X.509 (norme Java).

Renvoie: 0 en cas de réussite ou un code d'erreur inférieur à 0. En cas d'erreur, x509_data ne doit pas être alloué.

Définition à la ligne  225 du fichier 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)

Importe une paire de clés publique et privée. Les clés importées seront au format PKCS#8 avec encodage DER (norme Java). Le blob de clé renvoyé est opaque et sera ensuite fourni pour la signature et la validation.

Renvoie: 0 en cas de réussite ou un code d'erreur inférieur à 0.

Définition à la ligne  214 du fichier 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)

Signe les données à l'aide d'un blob de clé généré précédemment. Il peut s'agir d'une clé asymétrique ou d'une clé secrète.

Renvoie: 0 en cas de réussite ou un code d'erreur inférieur à 0.

Définition à la ligne  257 du fichier 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)

Vérifie les données signées avec un blob de clé. Il peut s'agir d'une clé asymétrique ou d'une clé secrète.

Renvoie: 0 en cas de réussite de la validation ou un code d'erreur inférieur à 0.

Définition à la ligne  269 du fichier keymaster.h .


La documentation de ce struct a été générée à partir du fichier suivant :