Référence de structure keymaster_device

Référence de structure keymaster_device

#include < keymaster.h >

Champs de données

structure hw_device_t commun
uint32_t version_client
uint32_t drapeaux
vide * contexte
entier(* 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)
entier(* 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)
entier(* 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)
entier(* delete_keypair (const struct keymaster_device *dev, const uint8_t *key_blob, const size_t key_blob_length)
entier(* delete_all )(const struct keymaster_device *dev)
entier(* 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)
entier(* 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 signé_data_length, const uint8_t *signature, const size_t signature_length)

Description détaillée

Les paramètres qui peuvent être définis pour une implémentation keymaster donnée.

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

Documentation de terrain

uint32_t version_client

CECI EST DÉCONSEILLÉ. Utilisez plutôt les nouveaux champs "module_api_version" et "hal_api_version" dans l'initialisation keymaster_module.

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

struct hw_device_t commun

Méthodes courantes du périphérique keymaster. Il doit s'agir du premier membre de keymaster_device car les utilisateurs de cette structure lanceront un pointeur hw_device_t vers keymaster_device dans des contextes où l'on sait que hw_device_t fait référence à un keymaster_device .

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

contexte vide*

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

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

Supprime toutes les clés du magasin de clés matérielles. Utilisé lorsque le magasin de clés est complètement réinitialisé.

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

Renvoie 0 en cas de succès 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és.

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

Renvoie 0 en cas de succès ou un code d'erreur inférieur à 0.

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

drapeaux uint32_t

Voir 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 privée. Le key-blob renvoyé est opaque et doit ensuite être fourni pour signature et vérification.

Renvoie : 0 en cas de succès 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)

Obtient la partie clé publique d’une paire de clés. La clé publique doit être dans un tableau d'octets codé au format X.509 (norme Java).

Renvoie : 0 en cas de succès 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 (standard Java). Le key-blob renvoyé est opaque et sera ensuite fourni pour signature et vérification.

Renvoie : 0 en cas de succès 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 key-blob généré auparavant. Celui-ci peut utiliser soit une clé asymétrique, soit une clé secrète.

Renvoie : 0 en cas de succès 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 signé_data_length, const uint8_t *signature, const size_t signature_length)

Vérifie les données signées avec un key-blob. Celui-ci peut utiliser soit une clé asymétrique, soit une clé secrète.

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

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


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