chrome.platformKeys

ब्यौरा

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

अनुमतियां

platformKeys

उपलब्धता

Chrome 45+ सिर्फ़ ChromeOS

टाइप

ClientCertificateRequest

प्रॉपर्टी

  • certificateAuthorities

    ArrayBuffer[]

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

  • certificateTypes

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

ClientCertificateType

Enum

"rsaSign"

"ecdsaSign"

Match

प्रॉपर्टी

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

    अरेबफ़र

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

  • keyAlgorithm

    ऑब्जेक्ट

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

SelectDetails

प्रॉपर्टी

  • clientCerts

    अरेबफ़र[] ज़रूरी नहीं

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

  • इंटरैक्टिव

    बूलियन

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

  • CANNOT TRANSLATE

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

VerificationDetails

प्रॉपर्टी

  • hostname

    स्ट्रिंग

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

  • serverCertificateChain

    ArrayBuffer[]

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

VerificationResult

प्रॉपर्टी

  • debug_errors

    स्ट्रिंग[]

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

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

  • भरोसेमंद

    बूलियन

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

तरीके

getKeyPair()

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

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

पैरामीटर

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

    अरेबफ़र

    selectClientCertificates की ओर से लौटाए गए Match का सर्टिफ़िकेट.

  • पैरामीटर

    ऑब्जेक्ट

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

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

  • कॉलबैक

    फ़ंक्शन

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

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

    • publicKey

      ऑब्जेक्ट

    • privateKey

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

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

getKeyPairBySpki()

Chrome 85+
chrome.platformKeys.getKeyPairBySpki(
  publicKeySpkiDer: ArrayBuffer,
  parameters: object,
  callback: function,
)

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

पैरामीटर

  • publicKeySpkiDer

    अरेबफ़र

    DER-एन्कोडेड X.509 SubjectPublicKeyInfo, उदा. Webक्रिप्ट के ExportKey फ़ंक्शन को format="spki" में कॉल करके.

  • पैरामीटर

    ऑब्जेक्ट

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

    फ़िलहाल, यह तरीका "ECDSA" के साथ काम करता है नाम-कर्व P-256 और "RSASSA-PKCS1-v1_5" वाला एल्गोरिदम हैशिंग एल्गोरिदम "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 सही है, तो जिसे उपयोगकर्ता ने चुना था.

रिटर्न

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

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन पर काम करता है. दूसरे प्लैटफ़ॉर्म को कॉलबैक इस्तेमाल करने होते हैं.

subtleCrypto()

chrome.platformKeys.subtleCrypto()

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

रिटर्न

  • object | तय नहीं है

verifyTLSServerCertificate()

प्रॉमिस
chrome.platformKeys.verifyTLSServerCertificate(
  details: VerificationDetails,
  callback?: function,
)

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

पैरामीटर

रिटर्न

  • Promise<VerificationResult>

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

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन पर काम करता है. दूसरे प्लैटफ़ॉर्म को कॉलबैक इस्तेमाल करने होते हैं.