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