Referência de estrutura keymaster_device
#include < keymaster.h >
Campos de dados | |
estrutura hw_device_t | comum |
uint32_t | versão_cliente |
uint32_t | bandeiras |
vazio * | contexto |
interno(* | generate_keypair )(const struct keymaster_device *dev, const keymaster_keypair_t key_type, const void *key_params, uint8_t **key_blob, size_t *key_blob_length) |
interno(* | import_keypair )(const struct keymaster_device *dev, const uint8_t *key, const size_t key_length, uint8_t **key_blob, size_t *key_blob_length) |
interno(* | get_keypair_public )(const struct keymaster_device *dev, const uint8_t *key_blob, const size_t key_blob_length, uint8_t **x509_data, size_t *x509_data_length) |
interno(* | delete_keypair )(const struct keymaster_device *dev, const uint8_t *key_blob, const size_t key_blob_length) |
interno(* | delete_all )(const estrutura keymaster_device *dev) |
interno(* | sign_data )(const struct keymaster_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) |
interno(* | verificar_dados ) (const struct keymaster_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 assinado_data_length, const uint8_t *assinatura, const size_t subscription_length) |
Descrição detalhada
Os parâmetros que podem ser definidos para uma determinada implementação de keymaster.
Definição na linha 174 do arquivo keymaster.h .
Documentação de campo
uint32_t cliente_versão |
ISTO ESTÁ DEPRECADO. Use os novos campos "module_api_version" e "hal_api_version" na inicialização do keymaster_module.
Definição na linha 187 do arquivo keymaster.h .
estrutura hw_device_t comum |
Métodos comuns do dispositivo keymaster. Este deve ser o primeiro membro de keymaster_device , pois os usuários desta estrutura lançarão um ponteiro hw_device_t para keymaster_device em contextos onde é conhecido que hw_device_t faz referência a um keymaster_device .
Definição na linha 181 do arquivo keymaster.h .
contexto vazio* |
Definição na linha 194 do arquivo keymaster.h .
int(* delete_all)(const estrutura keymaster_device *dev) |
Exclui todas as chaves do armazenamento de chaves de hardware. Usado quando o keystore é completamente redefinido.
Esta função é opcional e deve 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 249 do arquivo keymaster.h .
int(* delete_keypair)(const struct keymaster_device *dev, const uint8_t *key_blob, const size_t key_blob_length) |
Exclui o par de chaves associado ao blob de chaves.
Esta função é opcional e deve 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 237 do arquivo keymaster.h .
sinalizadores uint32_t |
Veja os sinalizadores definidos para keymaster_device::flags acima.
Definição na linha 192 do arquivo keymaster.h .
int(* generate_keypair)(const struct keymaster_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 key-blob retornado é opaco e deve 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 202 do arquivo keymaster.h .
int(* get_keypair_public)(const struct keymaster_device *dev, const uint8_t *key_blob, const size_t key_blob_length, uint8_t **x509_data, size_t *x509_data_length) |
Obtém a parte da chave pública de um par de chaves. A chave pública deve estar no formato X.509 (padrão Java) codificado em array de bytes.
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 225 do arquivo keymaster.h .
int(* import_keypair)(const struct keymaster_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 key-blob retornado é opaco e será posteriormente 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 214 do arquivo keymaster.h .
int(* sign_data)(const struct keymaster_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 257 do arquivo keymaster.h .
int(* verificar_dados)(const struct keymaster_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 assinado_data_length, const uint8_t *assinatura, const size_t assinatura_length) |
Verifica os dados assinados com um blob de chave. Isso pode usar uma chave assimétrica ou uma chave secreta.
Retorna: 0 na verificação bem-sucedida ou um código de erro menor que 0.
Definição na linha 269 do arquivo keymaster.h .
A documentação desta estrutura foi gerada a partir do seguinte arquivo:
- hardware/libhardware/include/hardware/ keymaster.h