מידע על המבנה keymaster0_device
#include <
keymaster0.h
>
שדות נתונים |
|
struct hw_device_t | נפוץ |
uint32_t | client_version |
uint32_t | דגלים |
void * | context |
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) |
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) |
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) |
int(* | delete_keypair )(const struct keymaster0_device *dev, const uint8_t *key_blob, const size_t key_blob_length) |
int(* | delete_all )(const struct keymaster0_device *dev) |
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) |
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) |
תיאור מפורט
הגדרת המכשיר Keymaster0.
ההגדרה מופיעה בשורה 27 בקובץ keymaster0.h .
מסמכי תיעוד של שדה
uint32_t client_version |
האפשרות הזו הוצאה משימוש. במקום זאת, צריך להשתמש בשדות החדשים module_api_version ו-hal_api_version בהפעלה של keymaster_module.
ההגדרה מופיעה בשורה 40 בקובץ keymaster0.h .
struct hw_device_t common |
שיטות נפוצות של מכשיר ה-keymaster. הוא חייב להיות המאפיין הראשון של keymaster0_device , כי משתמשים במבנה הזה יהפכו את hw_device_t למצביע של keymaster0_device בהקשרים שבהם ידוע ש- hw_device_t מפנה ל- keymaster0_device .
ההגדרה מופיעה בשורה 34 בקובץ keymaster0.h .
void* context |
ההגדרה מופיעה בשורה 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) |
מחיקה של צמד המפתחות שמשויך ל-blob של המפתח.
הפונקציה הזו היא אופציונלית, וצריך להגדיר אותה ל-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) |
יצירת מפתח ציבורי ומפתח פרטי. ה-key-blob המוחזר הוא אטום, וצריך לספק אותו לאחר מכן לצורך חתימה ואימות.
הפונקציה מחזירה: 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 *key, const size_t key_length, uint8_t **key_blob, size_t *key_blob_length) |
ייבוא של זוג מפתחות ציבורי ופרטי. המפתחות המיובאים יהיו בפורמט PKCS#8 עם קידוד DER (תקן Java). ה-key-blob המוחזר הוא אטום, והוא יועבר לאחר מכן לצורך חתימה ואימות.
הפונקציה מחזירה: 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 *data, const size_t data_length, uint8_t **signed_data, size_t *signed_data_length) |
חותמת על נתונים באמצעות blob של מפתח שנוצר קודם. אפשר להשתמש במפתח אסימטרי או במפתח סודי.
הפונקציה מחזירה: 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 *signature, const size_t signature_length) |
אימות נתונים שנחתמו באמצעות blob של מפתח. אפשר להשתמש במפתח אסימטרי או במפתח סודי.
הפונקציה מחזירה: 0 אם האימות בוצע בהצלחה או קוד שגיאה שקטן מ-0.
ההגדרה מופיעה בשורה 122 בקובץ keymaster0.h .
התיעוד של המבנה הזה נוצר מהקובץ הבא:
- hardware/libhardware/include/hardware/ keymaster0.h