chrome.platformKeys

ब्यौरा

इस प्लैटफ़ॉर्म से मैनेज किए जाने वाले क्लाइंट सर्टिफ़िकेट ऐक्सेस करने के लिए, chrome.platformKeys API का इस्तेमाल करें. अगर उपयोगकर्ता या नीति अनुमति देता है, तो एक्सटेंशन अपने कस्टम पुष्टि प्रोटोकॉल में इस तरह के प्रमाणपत्र का इस्तेमाल कर सकता है. उदाहरण के लिए, यह तीसरे पक्ष के वीपीएन में प्लैटफ़ॉर्म से मैनेज किए जाने वाले सर्टिफ़िकेट के इस्तेमाल की अनुमति देता है ( chrome.vpnProvider देखें).

अनुमतियां

platformKeys

उपलब्धता

Chrome 45 के बाद के वर्शन सिर्फ़ ChromeOS के लिए

टाइप

ClientCertificateRequest

प्रॉपर्टी

  • certificateAuthorities

    अरेबफ़र[]

    सर्टिफ़िकेट देने वाली ऐसी संस्थाओं के खास नामों की सूची जिन्हें सर्वर से अनुमति मिली हो. हर एंट्री, DER से कोड में बदली गई X.509 DistinguishedName होनी चाहिए.

  • certificateTypes

    यह फ़ील्ड, अनुरोध किए गए अलग-अलग तरह के सर्टिफ़िकेट की सूची है. इसे सर्वर की प्राथमिकता के हिसाब से क्रम में लगाया जाता है. सिर्फ़ इस सूची में शामिल टाइप के सर्टिफ़िकेट ही वापस लाए जाएंगे. अगर certificateTypes खाली सूची है, तो किसी भी तरह के सर्टिफ़िकेट दिखाए जाएंगे.

ClientCertificateType

Enum

"rsaSign"

"ecdsaSign"

Match

प्रॉपर्टी

  • सर्टिफ़िकेट

    ArrayBuffer

    X.509 सर्टिफ़िकेट की DER एन्कोडिंग.

  • keyAlgorithm

    ऑब्जेक्ट

    प्रमाणित कुंजी का KeyAlgorithm. इसमें ऐसे एल्गोरिदम पैरामीटर होते हैं जो सर्टिफ़िकेट की कुंजी से जुड़े होते हैं. जैसे, कुंजी की लंबाई. इसमें साइन फ़ंक्शन में इस्तेमाल किए जाने वाले हैश फ़ंक्शन जैसे दूसरे पैरामीटर शामिल नहीं किए जाते.

SelectDetails

प्रॉपर्टी

  • clientCerts

    ArrayBuffer[] ज़रूरी नहीं है

    अगर दिया गया है, तो selectClientCertificates इस सूची पर काम करता है. अगर ऐसा नहीं है, तो प्लैटफ़ॉर्म के सर्टिफ़िकेट स्टोर से उन सभी सर्टिफ़िकेट की सूची हासिल की जा सकती है जो इस एक्सटेंशन के लिए उपलब्ध हैं. जिन एंट्री के लिए एक्सटेंशन के पास अनुमति नहीं है या जो अनुरोध से मेल नहीं खाती हैं उन्हें हटा दिया जाता है.

  • इंटरैक्टिव

    boolean

    अगर सही हो, तो फ़िल्टर की गई सूची उपयोगकर्ता को पेश की जाती है, ताकि वह मैन्युअल तरीके से कोई सर्टिफ़िकेट चुन सके. इससे, एक्सटेंशन को सर्टिफ़िकेट और कुंजियों का ऐक्सेस मिल जाता है. सिर्फ़ चुने गए सर्टिफ़िकेट लौटाए जाएंगे. अगर यह गलत है, तो सूची में ऐसे सभी सर्टिफ़िकेट शामिल हो जाते हैं जिन पर एक्सटेंशन को ऐक्सेस दिया गया है. ऐसा अपने-आप या मैन्युअल तरीके से किया जाता है.

  • CANNOT TRANSLATE

    सिर्फ़ इस अनुरोध से मेल खाने वाले सर्टिफ़िकेट ही दिखाए जाएंगे.

VerificationDetails

प्रॉपर्टी

  • hostname

    स्ट्रिंग

    सर्टिफ़िकेट की पुष्टि करने के लिए सर्वर का होस्टनेम. जैसे, serverCertificateChain दिखाने वाला सर्वर.

  • serverCertificateChain

    अरेबफ़र[]

    हर चेन एंट्री, X.509 सर्टिफ़िकेट की DER एन्कोडिंग होनी चाहिए. पहली एंट्री, सर्वर सर्टिफ़िकेट होनी चाहिए और हर एंट्री को इससे पहले की एंट्री को प्रमाणित किया जाना चाहिए.

VerificationResult

प्रॉपर्टी

  • debug_errors

    स्ट्रिंग[]

    अगर ट्रस्ट की पुष्टि नहीं हो पाती, तो इस अरे में, मौजूद नेटवर्क लेयर से रिपोर्ट की गई गड़बड़ियां शामिल होती हैं. नहीं तो, यह अरे खाली होता है.

    ध्यान दें: यह सूची सिर्फ़ डीबग करने के लिए है. इसमें सभी ज़रूरी गड़बड़ियां शामिल नहीं हो सकतीं. इस एपीआई के आने वाले समय में किए जाने वाले बदलावों में, ये गड़बड़ियां बदल सकती हैं. इसलिए, इस बात की कोई गारंटी नहीं है कि ये गड़बड़ियां, अगले या पिछले वर्शन के साथ काम करेंगी.

  • भरोसेमंद

    boolean

    भरोसे की पुष्टि का नतीजा: अगर पुष्टि की दी गई जानकारी के लिए भरोसा कायम हो सकता है, तो यह सही है. वहीं, अगर किसी वजह से भरोसा अस्वीकार किया जाता है, तो 'गलत' हो सकता है.

तरीके

getKeyPair()

chrome.platformKeys.getKeyPair(
  certificate: ArrayBuffer,
  parameters: object,
  callback: function,
)

इस्तेमाल करने के लिए, certificate का कुंजी जोड़ा platformKeys.subtleCrypto को callback के साथ पास करता है.

पैरामीटर

  • सर्टिफ़िकेट

    ArrayBuffer

    Match का सर्टिफ़िकेट, selectClientCertificates से मिला है.

  • पैरामीटर

    ऑब्जेक्ट

    कुंजी के ज़रिए तय किए गए पैरामीटर के अलावा, हस्ताक्षर/हैश एल्गोरिदम पैरामीटर तय करता है. वे पैरामीटर, Webक्रिप्टो के importKey फ़ंक्शन के लिए स्वीकार किए जाते हैं. जैसे, RSASSA-PKCS1-v1_5 कुंजी के लिए RsaHashedImportParams और EC कुंजी के लिए EcKeyImportParams. इसके अलावा, आरएसएएसए-पीकेसीएस1-v1_5 कुंजियों के लिए, हैशिंग एल्गोरिदम के नाम वाले पैरामीटर को इनमें से किसी एक वैल्यू के साथ तय किया जा सकता है: "none", "SHA-1", "SHA-256", "SHA-384" या "SHA-512", जैसे {"hash": { "name": "none" } }. इसके बाद साइन फ़ंक्शन, PKCS#1 v1.5 पैडिंग (जगह) को लागू करेगा, लेकिन दिए गए डेटा को हैश नहीं करेगा.

    फ़िलहाल, यह तरीका सिर्फ़ "RSASSA-PKCS1-v1_5" और "ECDSA" एल्गोरिदम के साथ काम करता है.

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (publicKey: object,privateKey?: object)=>void

    • publicKey

      ऑब्जेक्ट

    • privateKey

      ऑब्जेक्ट ज़रूरी नहीं

      अगर इस एक्सटेंशन के पास इसका ऐक्सेस नहीं है, तो यह null हो सकता है.

getKeyPairBySpki()

Chrome 85 और इसके बाद के वर्शन
chrome.platformKeys.getKeyPairBySpki(
  publicKeySpkiDer: ArrayBuffer,
  parameters: object,
  callback: function,
)

यह platformKeys.subtleCrypto के साथ callback के इस्तेमाल के लिए, publicKeySpkiDer के पहचाने गए कुंजी के जोड़े को पास करता है.

पैरामीटर

  • publicKeySpkiDer

    ArrayBuffer

    DER-कोड में बदला गया X.509 SubjectPublicKeyInfo, जिसे फ़ॉर्मैट="spki" के साथ Webक्रिप्टो के ExportKey फ़ंक्शन को कॉल करके हासिल किया जाता है.

  • पैरामीटर

    ऑब्जेक्ट

    कुंजी के ज़रिए तय किए गए पैरामीटर के अलावा, हस्ताक्षर और हैश एल्गोरिदम पैरामीटर बताता है. वे पैरामीटर ऐसे ही होते हैं जिन्हें Webक्रिप्टो के importKey फ़ंक्शन के लिए स्वीकार किया जाता है. जैसे, RSASSA-PKCS1-v1_5 कुंजी के लिए RsaHashedImportParams. आरएसएएसएसए-पीकेसीएस1-v1_5 कुंजियों के लिए, हमें "हैश" पैरामीटर { "hash": { "name": string } } को भी पास करना होगा. "हैश" पैरामीटर, हैशिंग एल्गोरिदम के नाम को दिखाता है. इसे साइन से पहले डाइजेस्ट ऑपरेशन में इस्तेमाल किया जाता है. हैश नाम के तौर पर "none" को पास किया जा सकता है. इस स्थिति में साइन फ़ंक्शन, PKCS#1 v1.5 पैडिंग को लागू करेगा, लेकिन दिए गए डेटा को हैश नहीं करेगा.

    फ़िलहाल, यह तरीका नाम वाले कर्व P-256 और "RSASSA-PKCS1-v1_5" एल्गोरिदम के साथ "ECDSA" एल्गोरिदम के साथ काम करता है. इसमें "none", "SHA-1", "SHA-256", "SHA-384", और "SHA-512" हैशिंग एल्गोरिदम में से कोई एक शामिल है.

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (publicKey: object,privateKey?: object)=>void

    • publicKey

      ऑब्जेक्ट

    • privateKey

      ऑब्जेक्ट ज़रूरी नहीं

      अगर इस एक्सटेंशन के पास इसका ऐक्सेस नहीं है, तो यह null हो सकता है.

selectClientCertificates()

वादा
chrome.platformKeys.selectClientCertificates(
  details: SelectDetails,
  callback?: function,
)

यह तरीका, उन क्लाइंट सर्टिफ़िकेट की सूची से फ़िल्टर करता है जो प्लैटफ़ॉर्म के लिए जाने जाते हैं. यह request से मेल खाता है और जिसके लिए एक्सटेंशन के पास सर्टिफ़िकेट और उसकी निजी कुंजी को ऐक्सेस करने की अनुमति है. अगर interactive सही पर सेट है, तो उपयोगकर्ता को एक डायलॉग दिखाया जाता है. यहां वे मिलते-जुलते सर्टिफ़िकेट में से किसी को चुन सकते हैं और एक्सटेंशन को सर्टिफ़िकेट का ऐक्सेस दे सकते हैं. चुने गए/फ़िल्टर किए गए क्लाइंट सर्टिफ़िकेट, callback को भेजे जाएंगे.

पैरामीटर

  • विवरण
  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    (matches: Match[])=>void

    • मैच करता है

      उन सर्टिफ़िकेट की सूची जो अनुरोध से मेल खाते हैं और जिनके लिए एक्सटेंशन को अनुमति है. साथ ही, अगर interactive सही है, तो उन सर्टिफ़िकेट को उपयोगकर्ता ने चुना था.

रिटर्न

  • Promise<Match[]>

    Chrome 121 और इसके बाद के वर्शन

    प्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.

subtleCrypto()

chrome.platformKeys.subtleCrypto()

Webक्रिप्टो के SubtleCrypto के लागू होने की वजह से, इस एक्सटेंशन के लिए उपलब्ध क्लाइंट सर्टिफ़िकेट की कुंजियों पर क्रिप्टो करंसी से जुड़ी कार्रवाइयां की जा सकती हैं.

रिटर्न

  • ऑब्जेक्ट|तय नहीं है

verifyTLSServerCertificate()

वादा
chrome.platformKeys.verifyTLSServerCertificate(
  details: VerificationDetails,
  callback?: function,
)

प्लैटफ़ॉर्म की ट्रस्ट सेटिंग के मुताबिक, इस बात की जांच की जाती है कि details.hostname के लिए details.serverCertificateChain पर भरोसा किया जा सकता है या नहीं. ध्यान दें: ट्रस्ट वेरिफ़िकेशन की असली तरीके के बारे में पूरी तरह से नहीं बताया गया है और आने वाले समय में इसमें बदलाव हो सकता है. एपीआई को लागू करने की प्रक्रिया, सर्टिफ़िकेट की समयसीमा खत्म होने की पुष्टि करती है, सर्टिफ़िकेट के पाथ की पुष्टि करती है, और किसी जाने-पहचाने CA से भरोसेमंद होने की जांच करती है. लागू करने की प्रक्रिया EKU ServerAuth के मुताबिक होनी चाहिए और विषय के वैकल्पिक नामों के साथ काम करनी चाहिए.

पैरामीटर

रिटर्न

  • Chrome 121 और इसके बाद के वर्शन

    प्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.