keymaster0_device 구조체 참조

keymaster0_device 구조체 참조

#include < keymaster0.h >

데이터 필드

구조체 hw_device_t 흔한
uint32_t 클라이언트_버전
uint32_t 깃발
무효의 * 문맥
정수(* 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)
정수(* 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)
정수(* 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)
정수(* delete_keypair )(const struct keymaster0_device *dev, const uint8_t *key_blob, const size_t key_blob_length)
정수(* delete_all )(const struct keymaster0_device *dev)
정수(* 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)
정수(* 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 signed_length)

상세 설명

Keymaster0 장치 정의.

keymaster0.h 파일의 27번째 줄에 정의되어 있습니다.

현장 문서

uint32_t 클라이언트_버전

이는 더 이상 사용되지 않습니다. 대신 keymaster_module 초기화에서 새로운 "module_api_version" 및 "hal_api_version" 필드를 사용하세요.

keymaster0.h 파일의 40 번째 줄에 정의되어 있습니다.

구조체 hw_device_t 공통

Keymaster 장치의 일반적인 방법입니다. 이 구조의 사용자는 hw_device_t가 keymaster0_device를 참조하는 것으로 알려진 컨텍스트에서 hw_device_tkeymaster0_device 포인터로 캐스팅하므로 이는 keymaster0_device 의 첫 번째 멤버 여야 합니다.

keymaster0.h 파일의 34번째 줄에 정의되어 있습니다.

무효* 컨텍스트

keymaster0.h 파일의 47 번째 줄에 정의되어 있습니다.

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

하드웨어 키 저장소의 모든 키를 삭제합니다. 키스토어가 완전히 재설정될 때 사용됩니다.

이 함수는 선택 사항이며 구현되지 않은 경우 NULL로 설정되어야 합니다.

성공하면 0을 반환하거나 0보다 작은 오류 코드를 반환합니다.

keymaster0.h 파일의 102번째 줄에 정의되어 있습니다.

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

키 blob과 연결된 키 쌍을 삭제합니다.

이 함수는 선택 사항이며 구현되지 않은 경우 NULL로 설정되어야 합니다.

성공하면 0을 반환하거나 0보다 작은 오류 코드를 반환합니다.

keymaster0.h 파일의 90 번째 줄에 정의되어 있습니다.

uint32_t 플래그

keymaster_common.h 에서 keymaster0_device::flags 에 대해 정의된 플래그를 참조하세요.

keymaster0.h 파일의 45 번째 줄에 정의되어 있습니다.

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)

공개 및 개인 키를 생성합니다. 반환된 키 블롭은 불투명하며 이후 서명 및 확인을 위해 제공되어야 합니다.

반환: 성공 시 0 또는 0보다 작은 오류 코드.

keymaster0.h 파일의 55번째 줄에 정의되어 있습니다.

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)

키 쌍의 공개 키 부분을 가져옵니다. 공개 키는 X.509 형식(Java 표준)으로 인코딩된 바이트 배열이어야 합니다.

반환: 성공 시 0 또는 0보다 작은 오류 코드. 오류 시 x509_data를 할당해서는 안 됩니다.

keymaster0.h 파일의 78 번째 줄에 정의되어 있습니다.

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)

공개 및 개인 키 쌍을 가져옵니다. 가져온 키는 DER 인코딩(Java 표준)을 사용하는 PKCS#8 형식입니다. 반환된 키 블롭은 불투명하며 이후 서명 및 확인을 위해 제공됩니다.

반환: 성공 시 0 또는 0보다 작은 오류 코드.

keymaster0.h 파일의 67 번째 줄에 정의되어 있습니다.

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)

이전에 생성된 키 blob을 사용하여 데이터에 서명합니다. 비대칭 키 또는 비밀 키를 사용할 수 있습니다.

반환: 성공 시 0 또는 0보다 작은 오류 코드.

keymaster0.h 파일의 110 번째 줄에 정의되어 있습니다.

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)

Key-Blob으로 서명된 데이터를 확인합니다. 비대칭 키 또는 비밀 키를 사용할 수 있습니다.

반환: 성공적인 확인 시 0 또는 0보다 작은 오류 코드.

keymaster0.h 파일의 122 번째 줄에 정의되어 있습니다.


이 구조체에 대한 문서는 다음 파일에서 생성되었습니다.