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