Referencia de la estructura keymaster0_device

Referencia de la estructura keymaster0_device

#include < keymaster0.h >

Campos de datos

struct hw_device_t   común
 
uint32_t  client_version
 
uint32_t  marcas
 
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)
 

Descripción detallada

Definición del dispositivo Keymaster0.

Definición en la línea 27 del archivo keymaster0.h .

Documentación de campos

uint32_t client_version

ESTE RECURSO ESTÁ OBSOLETO. En su lugar, usa los nuevos campos "module_api_version" y "hal_api_version" en la inicialización de keymaster_module.

Definición en la línea 40 del archivo keymaster0.h .

struct hw_device_t común

Métodos comunes del dispositivo de Keymaster. Este debe ser el primer miembro de keymaster0_device , ya que los usuarios de esta estructura transmitirán un hw_device_t al puntero keymaster0_device en contextos en los que se sabe que hw_device_t hace referencia a un keymaster0_device .

Definición en la línea 34 del archivo keymaster0.h .

contexto void*

Definición en la línea 47 del archivo keymaster0.h .

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

Borra todas las claves del almacén de claves de hardware. Se usa cuando se restablece por completo el almacén de claves.

Esta función es opcional y debe establecerse en NULL si no se implementa.

Devuelve 0 si se realiza correctamente o un código de error menor que 0.

Definición en la línea 102 del archivo keymaster0.h .

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

Borra el par de claves asociado con el blob de claves.

Esta función es opcional y debe establecerse en NULL si no se implementa.

Devuelve 0 si se realiza correctamente o un código de error menor que 0.

Definición en la línea 90 del archivo keymaster0.h .

Marcas uint32_t

Consulta las marcas definidas para keymaster0_device::flags en keymaster_common.h.

Definición en la línea 45 del archivo 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)

Genera una clave pública y privada. El blob de claves que se muestra es opaco y se debe proporcionar posteriormente para la firma y la verificación.

Devuelve 0 si se realiza correctamente o un código de error inferior a 0.

Definición en la línea 55 del archivo 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)

Obtiene la parte de clave pública de un par de claves. La clave pública debe estar en un array de bytes codificado en formato X.509 (estándar de Java).

Devuelve 0 si se realiza correctamente o un código de error inferior a 0. En caso de error, no se debe asignar x509_data.

Definición en la línea 78 del archivo 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)

Importa un par de claves pública y privada. Las claves importadas estarán en formato PKCS#8 con codificación DER (estándar de Java). El blob de claves que se muestra es opaco y se proporcionará posteriormente para la firma y la verificación.

Devuelve 0 si se realiza correctamente o un código de error inferior a 0.

Definición en la línea 67 del archivo 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)

Firma los datos con un BLOB de clave generado anteriormente. Puede usar una clave asimétrica o una clave secreta.

Devuelve 0 si se realiza correctamente o un código de error inferior a 0.

Definición en la línea 110 del archivo 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)

Verifica los datos firmados con un blob de clave. Puede usar una clave asimétrica o una clave secreta.

Devuelve 0 si la verificación se realiza correctamente o un código de error inferior a 0.

Definición en la línea 122 del archivo keymaster0.h .


La documentación de esta struct se generó a partir del siguiente archivo: