chrome.platformKeys

refresh date: 2026-09-25 robots: noindex

ब्यौरा

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

अनुमतियां

platformKeys

उपलब्धता

Chrome 45+ सिर्फ़ ChromeOS के लिए

टाइप

ClientCertificateRequest

प्रॉपर्टी

  • certificateAuthorities

    ArrayBuffer[]

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

  • certificateTypes

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

ClientCertificateType

Enum

"rsaSign"

"ecdsaSign"

Match

प्रॉपर्टी

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

    ArrayBuffer

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

  • keyAlgorithm

    ऑब्जेक्ट

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

SelectDetails

प्रॉपर्टी

  • clientCerts

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

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

  • इंटरैक्टिव

    बूलियन

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

  • 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

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

पैरामीटर

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

    ArrayBuffer

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

  • पैरामीटर

    ऑब्जेक्ट

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

      object ज़रूरी नहीं

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

getKeyPairBySpki()

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

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

पैरामीटर

  • publicKeySpkiDer

    ArrayBuffer

    डीईआर-एन्कोड किया गया X.509 SubjectPublicKeyInfo. इसे WebCrypto के exportKey फ़ंक्शन को format="spki" के साथ कॉल करके हासिल किया जाता है.

  • पैरामीटर

    ऑब्जेक्ट

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

      object ज़रूरी नहीं

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

selectClientCertificates()

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

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

पैरामीटर

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

    function ज़रूरी नहीं

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

    (matches: Match[]) => void

    • मैच

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

रिटर्न

  • Promise<Match[]>

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

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

subtleCrypto()

chrome.platformKeys.subtleCrypto(): object | undefined

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

रिटर्न

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

verifyTLSServerCertificate()

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

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

पैरामीटर

रिटर्न

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

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