مرجع بنية gatekeeper_device

مرجع بنية gatekeeper_device

#include < gatekeeper.h >

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

hw_device_t   شائعة
 
int(*  enroll )(const struct gatekeeper_device *dev, uint32_t uid, const uint8_t *current_password_handle, uint32_t current_password_handle_length, const uint8_t *current_password, uint32_t current_password_length, const uint8_t *desired_password, uint32_t desired_password_length, uint8_t **enrolled_password_handle, uint32_t *enrolled_password_handle_length)
 
int(*  verify )(const struct gatekeeper_device *dev, uint32_t uid, uint64_t challenge, const uint8_t *enrolled_password_handle, uint32_t enrolled_password_handle_length, const uint8_t *provided_password, uint32_t provided_password_length, uint8_t **auth_token, uint32_t *auth_token_length, bool *request_reenroll)
 
int(*  delete_user )(const struct gatekeeper_device *dev, uint32_t uid)
 
int(*  delete_all_users )(const struct gatekeeper_device *dev)
 

وصف مفصّل

التعريف في السطر 41 من الملف gatekeeper.h .

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

الطرق الشائعة لجهاز البواب كما هو موضح أعلاه، يجب أن يكون هذا هو العنصر الأول في keymaster_device.

التعريف في السطر 46 من الملف gatekeeper.h .

int(* delete_all_users)(const struct gatekeeper_device *dev)

التعريف في السطر 173 من الملف gatekeeper.h .

int(* delete_user)(const struct gatekeeper_device *dev, uint32_t uid)

التعريف في السطر 159 من الملف gatekeeper.h .

int(* enroll)(const struct gatekeeper_device *dev, uint32_t uid, const uint8_t *current_password_handle, uint32_t current_password_handle_length, const uint8_t *current_password, uint32_t current_password_length, const uint8_t *desired_password, uint32_t desired_password_length, uint8_t **enrolled_password_handle, uint32_t *enrolled_password_handle_length)

تسجِّل هذه الوظيفة desired_password، التي يجب أن تكون مشتقة من رقم تعريف شخصي أو كلمة مرور يختارها المستخدم، باستخدام المفتاح الخاص لعامل المصادقة الذي يُستخدَم فقط لتسجيل بيانات عامل المصادقة.

إذا سبق تسجيل كلمة مرور، يجب توفيرها في current_password_handle، بالإضافة إلى كلمة المرور الحالية في current_password التي يجب التحقّق منها باستخدام current_password_handle.

المَعلمات:

  • dev: مؤشر إلى gatekeeper_device تم الحصول عليه من خلال طلبات إلى gatekeeper_open
  • uid: معرّف مستخدم Android
  • current_password_handle: اسم معرِّف كلمة المرور المسجَّلة حاليًا التي يريد المستخدم استبدالها. قد تكون قيمة فارغة إذا لم تكن هناك كلمة مرور مسجَّلة حاليًا.
  • current_password_handle_length: الطول بالبايت للمخزن المؤقت الذي يشير إليه current_password_handle يجب أن يكون 0 إذا كانت قيمة current_password_handle فارغة.
  • current_password: كلمة مرور المستخدم الحالية بتنسيق نص عادي في حال تقديمها، يجب التحقّق منها باستخدام current_password_handle.
  • current_password_length: الحجم بالبايت للمخزن المؤقت الذي يشير إليه current_password يجب أن يكون 0 إذا كانت current_password فارغة.
  • desired_password: كلمة المرور الجديدة التي يريد المستخدم تسجيلها بتنسيق نص عادي. لا يمكن أن تكون فارغة.
  • desired_password_length: الطول بالبايت للوسيط الذي يشير إليه desired_password
  • enrolled_password_handle: في حال نجاح العملية، سيتم تخصيص ذاكرة تخزين مؤقتة باستخدام معرّف كلمة المرور الجديد الذي يشير إلى كلمة المرور المقدَّمة في desired_password. يمكن استخدام هذا المخزن المؤقت في المكالمات اللاحقة للتسجيل أو إثبات الهوية. يكون المُتصل مسؤولاً عن إلغاء تخصيص هذا المورد الاحتياطي من خلال طلب delete[].
  • enrolled_password_handle_length: مؤشر إلى طول التخزين المؤقت بالبايت الذي تخصصه هذه الدالة ويشير إليه *enrolled_password_handle_length.

المرتجعات:

  • 0 عند النجاح
  • رمز خطأ < 0 في حال حدوث خطأ
  • قيمة مهلة T > 0 إذا كان لا يجب إعادة محاولة الاتصال إلا بعد مرور T ملي ثانية

في حال حدوث خطأ، لن يتم تخصيص enrolled_password_handle.

التعريف في السطر 91 من الملف gatekeeper.h .

int(* verify)(const struct gatekeeper_device *dev, uint32_t uid, uint64_t challenge, const uint8_t *enrolled_password_handle, uint32_t enrolled_password_handle_length, const uint8_t *provided_password, uint32_t provided_password_length, uint8_t **auth_token, uint32_t *auth_token_length, bool *request_reenroll)

للتحقّق من تطابق provided_password مع enrolled_password_handle

قد تحتفظ عمليات تنفيذ هذه الوحدة بنتيجة هذا الطلب لإثبات حداثة المصادقة.

في حال نجاح العملية، يتم كتابة عنوان الرمز المميّز لإثبات الملكية في auth_token، ويمكن استخدامه لإثبات عملية إثبات صحة كلمة المرور للخدمات الموثوق بها الأخرى. يمكن للعملاء ضبط القيمة NULL لهذه السمة.

المَعلمات:

  • dev: مؤشر إلى gatekeeper_device تم الحصول عليه من خلال طلبات إلى gatekeeper_open
  • uid: معرّف مستخدم Android
  • challenge: اختبار اختياري للمصادقة، أو 0 تُستخدَم هذه السمة عندما يطلب معرّف هوية منفصل إثبات صحة كلمة المرور، أو لمصادقة كلمة المرور في المعاملات.
  • enrolled_password_handle: اسم معرِّف كلمة المرور المسجَّلة حاليًا الذي يريد المستخدم التحقّق منه.
  • enrolled_password_handle_length: الطول بالبايت للمخزن المؤقت الذي يشير إليه enrolled_password_handle
  • provided_password: كلمة المرور النصية التي يجب التحقّق منها باستخدام enrolled_password_handle
  • provided_password_length: الطول بالبايت للمخزن المؤقت الذي يشير إليه provided_password
  • auth_token: في حال نجاح عملية التحقّق، يتمّ تعيين مخزن مؤقت يحتوي على الرمز المميّز للمصادقة الناتج عن عملية التحقّق هذه إلى *auth_token. يكون المُتصل مسؤولاً عن إلغاء تخصيص هذه الذاكرة من خلال طلب delete[].
  • طول_الرمز_المميّز_للمصادقة: في حال نجاح العملية، سيتم ضبط طول الرمز المميّز للمصادقة الذي تمّ تعيينه إلى *auth_token بالبايت على *auth_token_length.
  • request_reenroll: طلب إلى الطبقات العليا لإعادة تسجيل كلمة المرور التي تم إثبات ملكيتها بسبب تغيير في الإصدار لا يتم ضبطه في حال تعذّر إثبات الملكية.

المرتجعات:

  • 0 عند النجاح
  • رمز خطأ < 0 في حال حدوث خطأ
  • قيمة مهلة T > 0 إذا كان لا يجب إعادة محاولة الاتصال إلا بعد مرور T ملي ثانية في حال حدوث خطأ، لن يتم تخصيص رمز التفويض المميّز.

التعريف في السطر 141 من الملف gatekeeper.h .


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