ब्यौरा
प्लैटफ़ॉर्म से मैनेज किए जाने वाले क्लाइंट सर्टिफ़िकेट ऐक्सेस करने के लिए, chrome.platformKeys
एपीआई का इस्तेमाल करें. अगर कोई उपयोगकर्ता या नीति अनुमति देती है, तो एक्सटेंशन, पुष्टि करने वाले अपने कस्टम प्रोटोकॉल में इस तरह के सर्टिफ़िकेट का इस्तेमाल कर सकता है. उदाहरण के लिए, इससे तीसरे पक्ष के वीपीएन में, प्लैटफ़ॉर्म से मैनेज किए जाने वाले सर्टिफ़िकेट के इस्तेमाल की अनुमति मिलती है (chrome.vpnProvider पर जाएं).
अनुमतियां
platformKeys
उपलब्धता
टाइप
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.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
को भेजे जाएंगे.
पैरामीटर
रिटर्न
-
वादा करें<मिलते-जुलते वीडियो[]>
Chrome 121 और उसके बाद वाले वर्शनमेनिफ़ेस्ट V3 और उसके बाद के वर्शन में प्रॉमिस काम करते हैं. हालांकि, कॉलबैक की सुविधा इन मामलों में दी जाती है पुराने सिस्टम के साथ काम करने की सुविधा. एक ही फ़ंक्शन कॉल में दोनों का इस्तेमाल नहीं किया जा सकता. कॉन्टेंट बनाने प्रॉमिस उसी टाइप के साथ ठीक होता है जिसे कॉलबैक में पास किया जाता है.
subtleCrypto()
chrome.platformKeys.subtleCrypto()
Webक्रिप्ट के SubtleCrypto को लागू करने का तरीका जो इस एक्सटेंशन के लिए उपलब्ध क्लाइंट सर्टिफ़िकेट की कुंजियों पर क्रिप्टो करने की सुविधा देता है.
रिटर्न
-
object | तय नहीं है
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
)
यह जांच करता है कि प्लैटफ़ॉर्म की ट्रस्ट सेटिंग के मुताबिक, details.hostname
के लिए details.serverCertificateChain
पर भरोसा किया जा सकता है या नहीं. ध्यान दें: ट्रस्ट की पुष्टि करने का असल तरीका पूरी तरह से तय नहीं किया गया है और आने वाले समय में इसमें बदलाव हो सकता है. एपीआई लागू करने की प्रक्रिया, सर्टिफ़िकेट की समयसीमा खत्म होने और सर्टिफ़िकेट पाथ की पुष्टि करती है. साथ ही, किसी ऐसे सीए के भरोसे की जांच करती है जिसे इसके बारे में पता है. लागू करने की प्रक्रिया, EKU ServerAuth का पालन करना और विषय के दूसरे नाम के साथ काम करना ज़रूरी है.
पैरामीटर
-
विवरण
-
कॉलबैक
फ़ंक्शन वैकल्पिक
callback
पैरामीटर ऐसा दिखता है:(result: VerificationResult) => void
-
नतीजा
-
रिटर्न
-
Promise<VerificationResult>
Chrome 121 और उसके बाद वाले वर्शनमेनिफ़ेस्ट V3 और उसके बाद के वर्शन में प्रॉमिस काम करते हैं. हालांकि, कॉलबैक की सुविधा इन मामलों में दी जाती है पुराने सिस्टम के साथ काम करने की सुविधा. एक ही फ़ंक्शन कॉल में दोनों का इस्तेमाल नहीं किया जा सकता. कॉन्टेंट बनाने प्रॉमिस उसी टाइप के साथ ठीक होता है जिसे कॉलबैक में पास किया जाता है.