مرجع بنية keymaster_device

مرجع بنية keymaster_device

#include < keymaster.h >

حقول البيانات

struct hw_device_t   شائعة
 
uint32_t  client_version
 
uint32_t  flags
 
void *  context
 
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)
 
int(*  import_keypair )(const struct keymaster_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 keymaster_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 keymaster_device *dev, const uint8_t *key_blob, const size_t key_blob_length)
 
int(*  delete_all )(const struct keymaster_device *dev)
 
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 *data, const size_t data_length, uint8_t **signed_data, size_t *signed_data_length)
 
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 *signature, const size_t signature_length)
 

وصف مفصّل

المَعلمات التي يمكن ضبطها لتنفيذ معيّن لخدمة Keymaster

التعريف في السطر 174 من الملف keymaster.h .

مستندات الحقل

uint32_t client_version

تم إيقاف هذا الإجراء نهائيًا. استخدِم الحقلين الجديدَين "module_api_version" و "hal_api_version" في عملية إعداد keymaster_module بدلاً من ذلك.

التعريف في السطر 187 من الملف keymaster.h .

struct hw_device_t common

الطرق الشائعة لجهاز Keymaster يجب أن يكون هذا العنصر العنصر الأول في keymaster_device لأنّ مستخدمي هذه البنية سيحوّلون hw_device_t إلى مؤشر keymaster_device في السياقات التي يُعرف فيها أنّ hw_device_t يشير إلى keymaster_device .

التعريف في السطر 181 من الملف keymaster.h .

void* context

التعريف في السطر 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 *key, 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 *data, 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 *signature, const size_t signature_length)

التحقّق من البيانات الموقَّعة باستخدام مجموعة مفاتيح ويمكن أن يستخدم هذا المفتاح إما مفتاحًا غير متماثل أو مفتاحًا سريًا.

يتم عرض القيمة 0 في حال إثبات الهوية بنجاح أو رمز خطأ أقل من 0.

التعريف في السطر 269 من الملف keymaster.h .


تم إنشاء مستندات هذه البنية من الملف التالي: