कंपनी का ब्यौरा
इस प्लैटफ़ॉर्म से मैनेज किए जाने वाले क्लाइंट सर्टिफ़िकेट ऐक्सेस करने के लिए, chrome.platformKeys
API का इस्तेमाल करें. अगर उपयोगकर्ता या नीति अनुमति देता है, तो एक्सटेंशन अपने कस्टम पुष्टि प्रोटोकॉल में इस तरह के प्रमाणपत्र का इस्तेमाल कर सकता है. उदाहरण के लिए, इससे तीसरे पक्ष के वीपीएन में प्लैटफ़ॉर्म से मैनेज किए जाने वाले सर्टिफ़िकेट का इस्तेमाल करने की अनुमति मिलती है (chrome.vpnProvider देखें).
अनुमतियां
platformKeys
उपलब्धता
टाइप
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" एल्गोरिदम के साथ काम करता है.
-
कॉलबैक
function
callback
पैरामीटर ऐसा दिखता है:(publicKey: object, privateKey?: object) => void
-
publicKey
ऑब्जेक्ट
-
privateKey
ऑब्जेक्ट ज़रूरी नहीं
अगर इस एक्सटेंशन के पास इसका ऐक्सेस नहीं है, तो यह
null
हो सकता है.
-
getKeyPairBySpki()
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" हैशिंग एल्गोरिदम में से कोई एक शामिल है.
-
कॉलबैक
function
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 के मुताबिक होनी चाहिए और विषय के वैकल्पिक नामों के साथ काम करनी चाहिए.
पैरामीटर
-
जानकारी
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:(result: VerificationResult) => void
-
नतीजा
-
लौटाए गए प्रॉडक्ट
-
Promise<VerificationResult>
Chrome 121 और इसके बाद के वर्शनप्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.