Referência da estrutura keymaster0_device

Referência da estrutura keymaster0_device

#include < keymaster0.h >

Campos de dados

struct hw_device_t   comum
 
uint32_t  client_version
 
uint32_t  flags
 
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)
 

Descrição detalhada

Definição do dispositivo Keymaster0.

Definição na linha 27 do arquivo keymaster0.h .

Documentação do campo

uint32_t client_version

OBSOLETO. Use os novos campos "module_api_version" e "hal_api_version" na inicialização do keymaster_module.

Definição na linha 40 do arquivo keymaster0.h .

struct hw_device_t common

Métodos comuns do dispositivo keymaster. Ela precisa ser o primeiro membro de keymaster0_device porque os usuários dessa estrutura vão transmitir um hw_device_t para keymaster0_device em contextos em que se sabe que o hw_device_t faz referência a um keymaster0_device .

Definição na linha 34 do arquivo keymaster0.h .

void* context

Definição na linha 47 do arquivo keymaster0.h .

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

Exclui todas as chaves no keystore de hardware. Usado quando o keystore é redefinido completamente.

Essa função é opcional e precisa ser definida como NULL se não for implementada.

Retorna 0 em caso de sucesso ou um código de erro menor que 0.

Definição na linha 102 do arquivo keymaster0.h .

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

Exclui o par de chaves associado ao blob de chave.

Essa função é opcional e precisa ser definida como NULL se não for implementada.

Retorna 0 em caso de sucesso ou um código de erro menor que 0.

Definição na linha 90 do arquivo keymaster0.h .

Flags uint32_t

Consulte as flags definidas para keymaster0_device::flags em keymaster_common.h

Definição na linha 45 do arquivo 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)

Gera uma chave pública e privada. O blob de chaves retornado é opaco e precisa ser fornecido para assinatura e verificação.

Retorna: 0 em caso de sucesso ou um código de erro menor que 0.

Definição na linha 55 do arquivo 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)

Extrai a parte da chave pública de um par de chaves. A chave pública precisa estar em uma matriz de bytes codificada no formato X.509 (padrão Java).

Retorna: 0 em caso de sucesso ou um código de erro menor que 0. Em caso de erro, x509_data não deve ser alocado.

Definição na linha 78 do arquivo 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 um par de chaves pública e privada. As chaves importadas estarão no formato PKCS#8 com codificação DER (padrão Java). O blob de chaves retornado é opaco e será fornecido posteriormente para assinatura e verificação.

Retorna: 0 em caso de sucesso ou um código de erro menor que 0.

Definição na linha 67 do arquivo 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)

Assina dados usando um blob de chave gerado anteriormente. Isso pode usar uma chave assimétrica ou uma chave secreta.

Retorna: 0 em caso de sucesso ou um código de erro menor que 0.

Definição na linha 110 do arquivo 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 os dados assinados com um blob de chave. Isso pode usar uma chave assimétrica ou uma chave secreta.

Retorna: 0 em caso de verificação bem-sucedida ou um código de erro menor que 0.

Definição na linha 122 do arquivo keymaster0.h .


A documentação desse struct foi gerada com base no seguinte arquivo: