การอ้างอิงโครงสร้าง 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 *ข้อมูล, 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 *ลายเซ็น, const size_t Signature_length)

คำอธิบายโดยละเอียด

คำจำกัดความของอุปกรณ์ Keymaster0

คำจำกัดความที่บรรทัดที่ 27 ของไฟล์ keymaster0.h

เอกสารภาคสนาม

uint32_t ลูกค้า_รุ่น

สิ่งนี้เลิกใช้แล้ว ใช้ฟิลด์ "module_api_version" และ "hal_api_version" ใหม่ในการเริ่มต้น keymaster_module แทน

คำจำกัดความที่บรรทัดที่ 40 ของไฟล์ keymaster0.h

struct hw_device_t ทั่วไป

วิธีการทั่วไปของอุปกรณ์คีย์มาสเตอร์ นี่ จะต้อง เป็นสมาชิกคนแรกของ keymaster0_device เนื่องจากผู้ใช้ของโครงสร้างนี้จะส่ง hw_device_t ไปยังตัวชี้ keymaster0_device ในบริบทที่ทราบว่า hw_device_t อ้างอิงถึง keymaster0_device

คำจำกัดความที่บรรทัดที่ 34 ของไฟล์ keymaster0.h

บริบทเป็นโมฆะ*

คำจำกัดความที่บรรทัดที่ 47 ของไฟล์ keymaster0.h

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

ลบคีย์ทั้งหมดในที่เก็บคีย์ฮาร์ดแวร์ ใช้เมื่อรีเซ็ตที่เก็บคีย์โดยสมบูรณ์

ฟังก์ชันนี้เป็นทางเลือกและควรตั้งค่าเป็น NULL หากไม่ได้ใช้งาน

ส่งกลับ 0 เมื่อสำเร็จหรือรหัสข้อผิดพลาดน้อยกว่า 0

คำจำกัดความที่บรรทัด 102 ของไฟล์ keymaster0.h

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

ลบคู่คีย์ที่เกี่ยวข้องกับคีย์บล็อบ

ฟังก์ชันนี้เป็นทางเลือกและควรตั้งค่าเป็น NULL หากไม่ได้ใช้งาน

ส่งกลับ 0 เมื่อสำเร็จหรือรหัสข้อผิดพลาดน้อยกว่า 0

คำจำกัดความที่บรรทัด 90 ของไฟล์ keymaster0.h

ธง uint32_t

ดูแฟล็กที่กำหนดไว้สำหรับ keymaster0_device::flags ใน keymaster_common.h

คำจำกัดความที่บรรทัดที่ 45 ของไฟล์ keymaster0.h

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

คำจำกัดความที่บรรทัด 55 ของไฟล์ keymaster0.h

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

คำจำกัดความที่บรรทัด 78 ของไฟล์ keymaster0.h

int(* import_keypair)(const struct keymaster0_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

คำจำกัดความที่บรรทัด 67 ของไฟล์ keymaster0.h

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 *ข้อมูล, const size_t data_length, uint8_t **signed_data, size_t *signed_data_length)

ลงนามข้อมูลโดยใช้คีย์หยดที่สร้างขึ้นก่อนหน้านี้ ซึ่งสามารถใช้คีย์แบบอสมมาตรหรือคีย์ลับก็ได้

ส่งกลับ: 0 เมื่อสำเร็จหรือรหัสข้อผิดพลาดน้อยกว่า 0

คำจำกัดความที่บรรทัด 110 ของไฟล์ keymaster0.h

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 *ลายเซ็น, const size_t ลายเซ็น_ความยาว)

ตรวจสอบข้อมูลที่ลงนามด้วยคีย์หยด ซึ่งสามารถใช้คีย์แบบอสมมาตรหรือคีย์ลับก็ได้

ส่งคืน: 0 เมื่อยืนยันสำเร็จหรือรหัสข้อผิดพลาดน้อยกว่า 0

คำจำกัดความที่บรรทัด 122 ของไฟล์ keymaster0.h


เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้:
  • ฮาร์ดแวร์ / libhardware / รวม / ฮาร์ดแวร์ / keymaster0.h