Documentation de référence sur la struct keymaster0_device

Documentation de référence sur la struct keymaster0_device

#include < keymaster0.h >

Champs de données

struct hw_device_t   commun
 
uint32_t  client_version
 
uint32_t  indicateurs
 
void *  context
 
int(*  generate_keypair )(const struct keymaster0_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 keymaster0_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 keymaster0_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 keymaster0_device *dev, const uint8_t *key_blob, const size_t key_blob_length)
 
int(*  delete_all )(const struct keymaster0_device *dev)
 
int(*  sign_data )(const struct keymaster0_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 keymaster0_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

Définition de l'appareil Keymaster0.

Définition à la ligne 27 du fichier keymaster0.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  40 du fichier keymaster0.h .

struct hw_device_t common

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

Définition à la ligne  34 du fichier keymaster0.h .

void* context

Définition à la ligne 47 du fichier keymaster0.h .

int(* delete_all)(const struct keymaster0_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  102 du fichier keymaster0.h .

int(* delete_keypair)(const struct keymaster0_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  90 du fichier keymaster0.h .

Options uint32_t

Voir les indicateurs définis pour keymaster0_device::flags dans keymaster_common.h

Définition à la ligne  45 du fichier keymaster0.h .

int(* generate_keypair)(const struct keymaster0_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  55 du fichier keymaster0.h .

int(* get_keypair_public)(const struct keymaster0_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  78 du fichier keymaster0.h .

int(* import_keypair)(const struct keymaster0_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  67 du fichier keymaster0.h .

int(* sign_data)(const struct keymaster0_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  110 du fichier keymaster0.h .

int(* verify_data)(const struct keymaster0_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  122 du fichier keymaster0.h .


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