การอ้างอิงโครงสร้าง keymaster_device
#include < keymaster.h >
เขตข้อมูล | |
โครงสร้าง hw_device_t | ทั่วไป |
uint32_t | ลูกค้า_รุ่น |
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 *คีย์, 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 *ข้อมูล, 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 *ลายเซ็น, const size_t Signature_length) |
คำอธิบายโดยละเอียด
พารามิเตอร์ที่สามารถตั้งค่าสำหรับการนำคีย์มาสเตอร์ไปใช้
คำจำกัดความที่บรรทัด 174 ของไฟล์ keymaster.h
เอกสารภาคสนาม
uint32_t ลูกค้า_รุ่น |
สิ่งนี้เลิกใช้แล้ว ใช้ฟิลด์ "module_api_version" และ "hal_api_version" ใหม่ในการเริ่มต้น keymaster_module แทน
คำจำกัดความที่บรรทัด 187 ของไฟล์ keymaster.h
struct hw_device_t ทั่วไป |
วิธีการทั่วไปของอุปกรณ์คีย์มาสเตอร์ นี่ จะต้อง เป็นสมาชิกคนแรกของ 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 *คีย์, 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 *ข้อมูล, 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 *ลายเซ็น, const size_t Signature_length) |
ตรวจสอบข้อมูลที่ลงนามด้วยคีย์หยด ซึ่งสามารถใช้คีย์แบบอสมมาตรหรือคีย์ลับก็ได้
ส่งคืน: 0 เมื่อยืนยันสำเร็จหรือรหัสข้อผิดพลาดน้อยกว่า 0
คำจำกัดความที่บรรทัด 269 ของไฟล์ keymaster.h
เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้:
- ฮาร์ดแวร์/libhardware/รวม/ฮาร์ดแวร์ /keymaster.h