keymaster_device संरचना संदर्भ

keymaster_device संरचना संदर्भ

#include < keymaster.h >

डेटा फ़ील्ड

संरचना hw_device_t सामान्य
uint32_t client_version
uint32_t झंडे
खालीपन * प्रसंग
पूर्णांक(* 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)
पूर्णांक(* आयात_कीजोड़ी ) (स्थिरांक संरचना keymaster_device *dev, स्थिरांक uint8_t *कुंजी, स्थिरांक आकार_t key_length, uint8_t **key_blob, आकार_t *key_blob_length)
पूर्णांक(* 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)
पूर्णांक(* delete_keypair )(const struct keymaster_device *dev, const uint8_t *key_blob, const size_t key_blob_length)
पूर्णांक(* delete_all )(const struct keymaster_device *dev)
पूर्णांक(* साइन_डेटा )(स्थिरांक संरचना keymaster_device *dev, स्थिरांक शून्य *signing_params, स्थिरांक uint8_t *key_blob, स्थिरांक आकार_t key_blob_length, स्थिरांक uint8_t *डेटा, स्थिरांक आकार_t डेटा_लंबाई, uint8_t **signed_data, size_t *signed_data_length)
पूर्णांक(* सत्यापित_डेटा )(स्थिरांक संरचना keymaster_device *dev, स्थिरांक शून्य *signing_params, स्थिरांक uint8_t *key_blob, स्थिरांक आकार_t key_blob_length, स्थिरांक uint8_t *signed_data, स्थिरांक आकार_t हस्ताक्षरित_डेटा_लंबाई, स्थिरांक uint8_t *हस्ताक्षर, स्थिरांक आकार_t हस्ताक्षर_लंबाई)

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

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

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

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

uint32_t client_version

यह निन्दित है. इसके बजाय keymaster_module आरंभीकरण में नए "module_api_version" और "hal_api_version" फ़ील्ड का उपयोग करें।

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

struct hw_device_t सामान्य

कीमास्टर डिवाइस की सामान्य विधियाँ। यह keymaster_device का पहला सदस्य होना चाहिए क्योंकि इस संरचना के उपयोगकर्ता उन संदर्भों में keymaster_device पॉइंटर पर hw_device_t डालेंगे जहां यह ज्ञात है कि hw_device_t keymaster_device को संदर्भित करता है।

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

शून्य* प्रसंग

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

int(* delete_all)(const struct keymaster_device *dev)

हार्डवेयर कीस्टोर की सभी कुंजियाँ हटा देता है। इसका उपयोग तब किया जाता है जब कीस्टोर पूरी तरह से रीसेट हो जाता है।

यह फ़ंक्शन वैकल्पिक है और यदि इसे लागू नहीं किया जाता है तो इसे NULL पर सेट किया जाना चाहिए।

सफलता या 0 से कम त्रुटि कोड पर 0 लौटाता है।

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

int(* delete_keypair)(const struct keymaster_device *dev, const uint8_t *key_blob, const size_t key_blob_length)

कुंजी ब्लॉब से संबद्ध कुंजी जोड़ी को हटा देता है।

यह फ़ंक्शन वैकल्पिक है और यदि इसे लागू नहीं किया जाता है तो इसे NULL पर सेट किया जाना चाहिए।

सफलता या 0 से कम त्रुटि कोड पर 0 लौटाता है।

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

uint32_t झंडे

ऊपर keymaster_device::flags के लिए परिभाषित फ़्लैग देखें।

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

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 से कम।

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

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 प्रारूप (जावा मानक) एन्कोडेड बाइट सरणी में होनी चाहिए।

रिटर्न: सफलता पर 0 या त्रुटि कोड 0 से कम। त्रुटि पर, x509_data आवंटित नहीं किया जाना चाहिए।

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

int(* आयात_कीजोड़ी)(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 प्रारूप में होंगी। लौटाया गया की-ब्लॉब अपारदर्शी है और बाद में हस्ताक्षर और सत्यापन के लिए प्रदान किया जाएगा।

रिटर्न: सफलता पर 0 या त्रुटि कोड 0 से कम।

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

int(* साइन_डेटा)(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 से कम।

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

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_tsigned_data_length, const uint8_t *signature, const size_t हस्ताक्षर_length)

की-ब्लॉब से हस्ताक्षरित डेटा को सत्यापित करता है। इसमें या तो असममित कुंजी या गुप्त कुंजी का उपयोग किया जा सकता है।

रिटर्न: सफल सत्यापन पर 0 या त्रुटि कोड 0 से कम।

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


इस संरचना के लिए दस्तावेज़ीकरण निम्नलिखित फ़ाइल से तैयार किया गया था:
  • हार्डवेयर/लिबहार्डवेयर/शामिल/हार्डवेयर/ keymaster.h