keymaster0_device Referencia de estructura

keymaster0_device Referencia de estructura

#include < keymaster0.h >

Campos de información

estructura hw_device_t común
uint32_t versión_cliente
uint32_t banderas
vacío * contexto
En t(* generar_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)
En t(* 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)
En t(* 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)
En t(* eliminar_pare_claves )(const estructura keymaster0_device *dev, const uint8_t *key_blob, const size_t key_blob_length)
En t(* eliminar_todos ) (const estructura keymaster0_device *dev)
En t(* 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)
En t(* verificar_datos ) (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 firmado_data_length, const uint8_t *firma, const size_t firma_length)

Descripción detallada

Definición del dispositivo Keymaster0.

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

Documentación de campo

uint32_t versión_cliente

ESTO ESTÁ DESPRECADO. Utilice 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 .

estructura hw_device_t común

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

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

contexto vacío*

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

int(* eliminar_todos)(const estructura keymaster0_device *dev)

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

Esta función es opcional y debe establecerse en NULL si no está implementada.

Devuelve 0 en caso de éxito 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)

Elimina el par de claves asociado al blob de claves.

Esta función es opcional y debe establecerse en NULL si no está implementada.

Devuelve 0 en caso de éxito o un código de error menor que 0.

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

banderas uint32_t

Consulte los indicadores definidos 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 devuelto es opaco y debe proporcionarse posteriormente para su firma y verificación.

Devuelve: 0 en caso de éxito o un código de error menor que 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 la clave pública de un par de claves. La clave pública debe estar en una matriz de bytes codificada en formato X.509 (estándar Java).

Devuelve: 0 en caso de éxito o un código de error menor que 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úblicas y privadas. Las claves importadas estarán en formato PKCS#8 con codificación DER (estándar Java). El blob de claves devuelto es opaco y posteriormente se proporcionará para su firma y verificación.

Devuelve: 0 en caso de éxito o un código de error menor que 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 datos utilizando un key-blob generado anteriormente. Esto puede utilizar una clave asimétrica o una clave secreta.

Devuelve: 0 en caso de éxito o un código de error menor que 0.

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

int(* verificar_datos)(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 firmado_data_length, const uint8_t *firma, const size_t firma_length)

Verifica los datos firmados con un key-blob. Esto puede utilizar una clave asimétrica o una clave secreta.

Devuelve: 0 en caso de verificación exitosa o un código de error menor que 0.

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


La documentación para esta estructura se generó a partir del siguiente archivo: