chrome.platformKeys

refresh date: 2026-09-25 robots: noindex

ब्यौरा

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

अनुमतियां

platformKeys

उपलब्धता

Chrome 45 या इसके बाद का वर्शन सिर्फ़ ChromeOS पर

टाइप

ClientCertificateRequest

प्रॉपर्टी

  • certificateAuthorities

    ArrayBuffer[]

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

  • certificateTypes

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

ClientCertificateType

Enum

"rsaSign"

"ecdsaSign"

Match

प्रॉपर्टी

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

    ArrayBuffer

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

  • keyAlgorithm

    ऑब्जेक्ट

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

SelectDetails

प्रॉपर्टी

  • clientCerts

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

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

  • इंटरैक्टिव

    बूलियन

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

  • CANNOT TRANSLATE

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

VerificationDetails

प्रॉपर्टी

  • hostname

    स्ट्रिंग

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

  • serverCertificateChain

    ArrayBuffer[]

    चेन की हर एंट्री, X.509 सर्टिफ़िकेट की DER एन्कोडिंग होनी चाहिए. पहली एंट्री, सर्वर सर्टिफ़िकेट होनी चाहिए. साथ ही, हर एंट्री में उससे पहले वाली एंट्री की पुष्टि होनी चाहिए.

VerificationResult

प्रॉपर्टी

  • debug_errors

    string[]

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

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

  • भरोसेमंद

    बूलियन

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

तरीके

getKeyPair()

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

certificate के की-वैल्यू पेयर को callback को पास करता है, ताकि platformKeys.subtleCrypto के साथ इसका इस्तेमाल किया जा सके.

पैरामीटर

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

    ArrayBuffer

    selectClientCertificates ने Match का सर्टिफ़िकेट वापस कर दिया है.

  • पैरामीटर

    ऑब्जेक्ट

    यह कुंजी के तय किए गए पैरामीटर के अलावा, हस्ताक्षर/हैश एल्गोरिदम के पैरामीटर तय करता है. इसमें WebCrypto के importKey फ़ंक्शन के जैसे ही पैरामीटर स्वीकार किए जाते हैं. जैसे, RSASSA-PKCS1-v1_5 कुंजी के लिए RsaHashedImportParams और EC कुंजी के लिए EcKeyImportParams. इसके अलावा, RSASSA-PKCS1-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,
)
: void

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

पैरामीटर

  • publicKeySpkiDer

    ArrayBuffer

    DER-encoded X.509 SubjectPublicKeyInfo, जिसे उदाहरण के लिए, WebCrypto के exportKey फ़ंक्शन को format="spki" के साथ कॉल करके हासिल किया जाता है.

  • पैरामीटर

    ऑब्जेक्ट

    यह कुंजी के साथ-साथ, हस्ताक्षर और हैश एल्गोरिदम के पैरामीटर भी उपलब्ध कराता है. इसमें वही पैरामीटर स्वीकार किए जाते हैं जो WebCrypto के importKey फ़ंक्शन में स्वीकार किए जाते हैं. उदाहरण के लिए, RSASSA-PKCS1-v1_5 कुंजी के लिए RsaHashedImportParams. RSASSA-PKCS1-v1_5 कुंजियों के लिए, हमें "हैश" पैरामीटर { "hash": { "name": string } } भी पास करना होगा. "hash" पैरामीटर, हैशिंग एल्गोरिदम के नाम को दिखाता है. इसका इस्तेमाल, हस्ताक्षर से पहले डाइजेस्ट ऑपरेशन में किया जाता है. हैश के नाम के तौर पर "none" पास किया जा सकता है. इस मामले में, हस्ताक्षर करने वाला फ़ंक्शन 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()

Promise
chrome.platformKeys.selectClientCertificates(
  details: SelectDetails,
  callback?: function,
)
: Promise<Match[]>

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

पैरामीटर

  • ब्यौरा
  • कॉलबैक

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

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

    (matches: Match[]) => void

    • मैच

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

रिटर्न

  • Promise<Match[]>

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

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

subtleCrypto()

chrome.platformKeys.subtleCrypto(): object | undefined

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

रिटर्न

  • object | undefined

verifyTLSServerCertificate()

Promise
chrome.platformKeys.verifyTLSServerCertificate(
  details: VerificationDetails,
  callback?: function,
)
: Promise<VerificationResult>

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

पैरामीटर

रिटर्न

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

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