การอ้างอิงโครงสร้าง keymaster_device

การอ้างอิงโครงสร้าง 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