chrome.platformKeys

ब्यौरा

प्लैटफ़ॉर्म से मैनेज किए गए क्लाइंट सर्टिफ़िकेट ऐक्सेस करने के लिए, chrome.platformKeys API का इस्तेमाल करें. अगर उपयोगकर्ता या नीति अनुमति देती है, तो एक्सटेंशन अपने कस्टम पुष्टि करने वाले प्रोटोकॉल में इस तरह के सर्टिफ़िकेट का इस्तेमाल कर सकता है. उदाहरण के लिए, इससे तीसरे पक्ष के वीपीएन में प्लैटफ़ॉर्म मैनेज किए गए सर्टिफ़िकेट का इस्तेमाल किया जा सकता है (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 इस सूची के हिसाब से काम करता है. इसके अलावा, यह प्लैटफ़ॉर्म के सर्टिफ़िकेट स्टोर से उन सभी सर्टिफ़िकेट की सूची हासिल करता है जो इस एक्सटेंशन के लिए उपलब्ध हैं. जिन एंट्री के लिए एक्सटेंशन के पास अनुमति नहीं है या जो अनुरोध से मेल नहीं खाती हैं उन्हें हटा दिया जाता है.

  • इंटरैक्टिव

    बूलियन

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

      object ज़रूरी नहीं है

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

getKeyPairBySpki()

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

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

पैरामीटर

  • publicKeySpkiDer

    ArrayBuffer

    DER-एन्कोड किया गया 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

      object ज़रूरी नहीं है

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

selectClientCertificates()

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

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

पैरामीटर

रिटर्न

  • Promise<Match[]>

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

subtleCrypto()

chrome.platformKeys.subtleCrypto(): object | undefined

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

रिटर्न

  • object | undefined

verifyTLSServerCertificate()

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

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

पैरामीटर

रिटर्न

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