गेटकीपर_डिवाइस संरचना संदर्भ

गेटकीपर_डिवाइस संरचना संदर्भ

#include < gatekeeper.h >

डेटा फ़ील्ड

hw_device_t सामान्य
पूर्णांक(* नामांकन )(स्थिरांक स्ट्रक्चर गेटकीपर_डिवाइस *देव, uint32_t यूआईडी, स्थिरांक uint8_t *वर्तमान_पासवर्ड_हैंडल, uint32_t वर्तमान_पासवर्ड_हैंडल_लंबाई, स्थिरांक uint8_t *वर्तमान_पासवर्ड, uint32_t वर्तमान_पासवर्ड_लंबाई, स्थिरांक uint8_t *वांछित_पासवर्ड, uint32_t वांछित_पासवर्ड_लंबाई, यू int8_t **नामांकित_पासवर्ड_हैंडल, uint32_t *नामांकित_पासवर्ड_हैंडल_लंबाई)
पूर्णांक(* सत्यापित करें )(स्थिरांक स्ट्रक्चर गेटकीपर_डिवाइस * देव, uint32_t uid, uint64_t चुनौती, स्थिरांक uint8_t *नामांकित_पासवर्ड_हैंडल, uint32_t नामांकित_पासवर्ड_हैंडल_लंबाई, स्थिरांक uint8_t *प्रदान किया गया_पासवर्ड, uint32_t प्रदान किया गया_पासवर्ड_लंबाई, uint8_t **auth_टोकन, uint32_ t *auth_token_length, bool *request_reenroll)
पूर्णांक(* delete_user )(स्थिरांक संरचना गेटकीपर_डिवाइस *dev, uint32_t uid)
पूर्णांक(* delete_all_users )(स्थिरांक संरचना गेटकीपर_डिवाइस *dev)

विस्तृत विवरण

फ़ाइल gatekeeper.h की पंक्ति 41 पर परिभाषा।

फ़ील्ड दस्तावेज़ीकरण

hw_device_t सामान्य

गेटकीपर डिवाइस की सामान्य विधियाँ। जैसा कि ऊपर बताया गया है, यह keymaster_device का पहला सदस्य होना चाहिए।

फ़ाइल gatekeeper.h की पंक्ति 46 पर परिभाषा।

int(* delete_all_users)(स्थिरांक संरचना गेटकीपर_डिवाइस *dev)

फ़ाइल gatekeeper.h की पंक्ति 173 पर परिभाषा।

int(* delete_user)(const structgatekeeper_device *dev, uint32_t uid)

फ़ाइल gatekeeper.h की पंक्ति 159 पर परिभाषा।

int(* नामांकन)(स्थिरांक स्ट्रक्चर गेटकीपर_डिवाइस *dev, uint32_t uid, स्थिरांक uint8_t *current_password_handle, uint32_t current_password_handle_length, स्थिरांक uint8_t *current_password, uint32_t current_password_length, स्थिरांक uint8_t *वांछित_पासवर्ड, uint32_t वांछित_पासवर्ड_लंबाई , uint8_t **नामांकित_पासवर्ड_हैंडल, uint32_t *नामांकित_पासवर्ड_हैंडल_लंबाई)

वांछित_पासवर्ड को नामांकित करता है, जिसे उपयोगकर्ता द्वारा चयनित पिन या पासवर्ड से प्राप्त किया जाना चाहिए, प्रमाणीकरण कारक निजी कुंजी का उपयोग केवल प्रमाणीकरण कारक डेटा को नामांकित करने के लिए किया जाता है।

यदि पहले से ही कोई पासवर्ड नामांकित था, तो उसे current_password_handle में वर्तमान पासवर्ड के साथ प्रदान किया जाना चाहिए, जिसे current_password_handle के विरुद्ध मान्य किया जाना चाहिए।

पैरामीटर:

  • देव: गेटकीपर_डिवाइस का सूचक गेटकीपर_ओपन पर कॉल के माध्यम से प्राप्त किया गया
  • यूआईडी: एंड्रॉइड उपयोगकर्ता पहचानकर्ता
  • current_password_handle: वर्तमान में नामांकित पासवर्ड हैंडल जिसे उपयोगकर्ता बदलना चाहता है। यदि वर्तमान में कोई नामांकित पासवर्ड नहीं है तो यह शून्य हो सकता है।
  • current_password_handle_length: current_password_handle द्वारा इंगित बफ़र के बाइट्स में लंबाई। यदि current_password_handle NULL है तो 0 होना चाहिए।
  • current_password: सादे पाठ में उपयोगकर्ता का वर्तमान पासवर्ड। यदि प्रस्तुत किया गया है, तो उसे current_password_handle के विरुद्ध सत्यापित करना होगा।
  • current_password_length: current_password द्वारा इंगित बफ़र के बाइट्स में आकार। यदि current_password NULL है तो 0 होना चाहिए।
  • वांछित_पासवर्ड: नया पासवर्ड जिसे उपयोगकर्ता सादे-पाठ में नामांकित करना चाहता है। रिक्त नहीं हो सकता।
  • वांछित_पासवर्ड_लंबाई: वांछित_पासवर्ड द्वारा इंगित बफ़र के बाइट्स में लंबाई।
  • नामांकित_पासवर्ड_हैंडल: सफलता पर, वांछित_पासवर्ड में दिए गए पासवर्ड को संदर्भित करते हुए नए पासवर्ड हैंडल के साथ एक बफर आवंटित किया जाएगा। इस बफ़र का उपयोग नामांकन या सत्यापन के लिए बाद की कॉलों पर किया जा सकता है। हटाने के लिए कॉल के माध्यम से इस बफ़र को हटाने के लिए कॉल करने वाला जिम्मेदार है[]
  • नामांकित_पासवर्ड_हैंडल_लेंथ: इस फ़ंक्शन द्वारा आवंटित बफ़र के बाइट्स में लंबाई का सूचक और *नामांकित_पासवर्ड_हैंडल_लेंथ द्वारा इंगित किया गया।

रिटर्न:

  • सफलता पर 0
  • विफलता पर एक त्रुटि कोड <0, या
  • टाइमआउट मान T > 0 यदि कॉल को T मिलीसेकंड बीत जाने तक दोबारा प्रयास नहीं किया जाना चाहिए।

त्रुटि होने पर, नामांकित_पासवर्ड_हैंडल आवंटित नहीं किया जाएगा।

फ़ाइल gatekeeper.h की पंक्ति 91 पर परिभाषा।

int(* सत्यापित करें)(स्थिरांक स्ट्रक्चर गेटकीपर_डिवाइस *dev, uint32_t uid, uint64_t चुनौती, स्थिरांक uint8_t *नामांकित_पासवर्ड_हैंडल, uint32_t नामांकित_पासवर्ड_हैंडल_लंबाई, स्थिरांक uint8_t *प्रदान किया गया_पासवर्ड, uint32_t प्रदान किया गया_पासवर्ड_लंबाई, uint8_t **auth_टोकन, uint 32_t *auth_token_length, बूल *request_reenroll)

सत्यापित करें कि प्रदान किया गया पासवर्ड नामांकित_पासवर्ड_हैंडल से मेल खाता है।

इस मॉड्यूल का कार्यान्वयन प्रमाणीकरण की नवीनता को प्रमाणित करने के लिए इस कॉल के परिणाम को बनाए रख सकता है।

सफलता मिलने पर, सत्यापन टोकन का पता auth_token पर लिखता है, जिसका उपयोग अन्य विश्वसनीय सेवाओं के लिए पासवर्ड सत्यापन को प्रमाणित करने के लिए किया जा सकता है। ग्राहक इस मान के लिए NULL पास कर सकते हैं।

पैरामीटर:

  • देव: गेटकीपर_डिवाइस का सूचक गेटकीपर_ओपन पर कॉल के माध्यम से प्राप्त किया गया
  • यूआईडी: एंड्रॉइड उपयोगकर्ता पहचानकर्ता
  • चुनौती: प्रमाणित करने के लिए एक वैकल्पिक चुनौती, या 0. इसका उपयोग तब किया जाता है जब एक अलग प्रमाणक पासवर्ड सत्यापन का अनुरोध करता है, या लेनदेन संबंधी पासवर्ड प्रमाणीकरण के लिए।
  • नामांकित_पासवर्ड_हैंडल: वर्तमान में नामांकित पासवर्ड हैंडल जिसे उपयोगकर्ता सत्यापित करना चाहता है।
  • नामांकित_पासवर्ड_हैंडल_लंबाई: नामांकित_पासवर्ड_हैंडल द्वारा इंगित बफ़र के बाइट्स में लंबाई
  • प्रोवाइड_पासवर्ड: नामांकित_पासवर्ड_हैंडल के विरुद्ध सत्यापित किया जाने वाला प्लेनटेक्स्ट पासवर्ड
  • प्रोवाइड_पासवर्ड_लेंथ: प्रोवाइड_पासवर्ड द्वारा इंगित बफ़र के बाइट्स में लंबाई
  • auth_token: सफलता पर, इस सत्यापन के परिणामस्वरूप प्रमाणीकरण टोकन वाला एक बफर *auth_token को सौंपा गया है। डिलीट करने के लिए कॉल के माध्यम से इस मेमोरी को हटाने के लिए कॉल करने वाला जिम्मेदार है[]
  • auth_token_length: सफलता पर, *auth_token को सौंपे गए प्रमाणीकरण टोकन के बाइट्स में लंबाई *auth_token_length को सौंपी जाएगी
  • request_reenroll: संस्करण परिवर्तन के कारण सत्यापित पासवर्ड को फिर से नामांकित करने के लिए ऊपरी परतों से एक अनुरोध। सत्यापन विफल होने पर सेट नहीं किया जाता.

रिटर्न:

  • सफलता पर 0
  • विफलता पर एक त्रुटि कोड <0, या
  • टाइमआउट मान T > 0 यदि कॉल को T मिलीसेकंड बीत जाने तक दोबारा प्रयास नहीं किया जाना चाहिए। त्रुटि होने पर ऑथ टोकन आवंटित नहीं किया जाएगा

फ़ाइल gatekeeper.h की पंक्ति 141 पर परिभाषा।


इस संरचना के लिए दस्तावेज़ीकरण निम्नलिखित फ़ाइल से तैयार किया गया था: