keymaster_device Справочник по структуре

keymaster_device Справочник по структуре

#include < keymaster.h >

Поля данных

структура hw_device_t общий
uint32_t client_version
uint32_t флаги
пустота * контекст
интервал(* 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)
интервал(* 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)
интервал(* 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)
интервал(* delete_keypair )(const struct keymaster_device *dev, const uint8_t *key_blob, const size_t key_blob_length)
интервал(* delete_all )(const struct keymaster_device *dev)
интервал(* 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)
интервал(* verify_data )(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 Signed_data_length, const uint8_t *signature, const size_t подпись_длина)

Подробное описание

Параметры, которые можно установить для данной реализации мастера ключей.

Определение в строке 174 файла keymaster.h .

Полевая документация

uint32_t client_version

ЭТО УСТАРЕЛО. Вместо этого используйте новые поля «module_api_version» и «hal_api_version» в инициализации keymaster_module.

Определение в строке 187 файла keymaster.h .

структура hw_device_t общая

Общие методы устройства keymaster. Это должен быть первый член keymaster_device, поскольку пользователи этой структуры будут приводить hw_device_t к указателю keymaster_device в контекстах, где известно, что hw_device_t ссылается на keymaster_device .

Определение в строке 181 файла keymaster.h .

пустота* контекст

Определение в строке 194 файла keymaster.h .

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

Удаляет все ключи в аппаратном хранилище ключей. Используется при полном сбросе хранилища ключей.

Эта функция является необязательной и должна иметь значение NULL, если она не реализована.

Возвращает 0 в случае успеха или код ошибки меньше 0.

Определение в строке 249 файла keymaster.h .

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

Удаляет пару ключей, связанную с большим количеством ключей.

Эта функция является необязательной и должна иметь значение NULL, если она не реализована.

Возвращает 0 в случае успеха или код ошибки меньше 0.

Определение в строке 237 файла keymaster.h .

uint32_t флаги

См. флаги, определенные для keymaster_device::flags выше.

Определение в строке 192 файла 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)

Генерирует открытый и закрытый ключ. Возвращенный блок ключа непрозрачен и впоследствии должен быть предоставлен для подписания и проверки.

Возвращает: 0 в случае успеха или код ошибки меньше 0.

Определение в строке 202 файла 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)

Получает часть открытого ключа пары ключей. Открытый ключ должен быть в виде массива байтов, закодированного в формате X.509 (стандарт Java).

Возвращает: 0 в случае успеха или код ошибки меньше 0. В случае ошибки x509_data не следует выделять.

Определение в строке 225 файла 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)

Импортирует пару открытого и закрытого ключей. Импортированные ключи будут в формате PKCS#8 с кодировкой DER (стандарт Java). Возвращенный блок ключа непрозрачен и впоследствии будет предоставлен для подписания и проверки.

Возвращает: 0 в случае успеха или код ошибки меньше 0.

Определение в строке 214 файла 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)

Подписывает данные с помощью созданного ранее ключа. При этом может использоваться либо асимметричный ключ, либо секретный ключ.

Возвращает: 0 в случае успеха или код ошибки меньше 0.

Определение в строке 257 файла keymaster.h .

int(*verify_data)(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 Signed_data_length, const uint8_t *signature, const size_t подпись_длина)

Проверяет данные, подписанные с помощью ключа. При этом может использоваться либо асимметричный ключ, либо секретный ключ.

Возвращает: 0 при успешной проверке или код ошибки меньше 0.

Определение в строке 269 файла keymaster.h .


Документация для этой структуры была создана из следующего файла:
  • Аппаратное обеспечение/libhardware/include/hardware/ keymaster.h