বিবরণ
প্ল্যাটফর্মের মাধ্যমে ম্যানেজ করা ক্লায়েন্ট সার্টিফিকেট অ্যাক্সেস করতে chrome.platformKeys API ব্যবহার করুন। ব্যবহারকারী বা নীতি অনুমতি দিলে, কোনও এক্সটেনশন তার কাস্টম যাচাইকরণ প্রোটোকলে এই ধরনের সার্টিফিকেট ব্যবহার করতে পারে। যেমন, এটি থার্ড-পার্টি VPN-এ প্ল্যাটফর্ম ম্যানেজ করা সার্টিফিকেট ব্যবহার করার অনুমতি দেয় (chrome.vpnProvider দেখুন)।
অনুমতি
platformKeysউপলভ্যতা
ধরন
ClientCertificateRequest
প্রপার্টি
-
certificateAuthorities
ArrayBuffer[]
সার্ভার দ্বারা অনুমোদিত সার্টিফিকেট কর্তৃপক্ষের বিশিষ্ট নামের তালিকা। প্রতিটি এন্ট্রি DER-এনকোড করা X.509 DistinguishedName হতে হবে।
-
certificateTypes
এই ফিল্ডে অনুরোধ করা সার্টিফিকেটের ধরনের তালিকা থাকে, যা সার্ভারের পছন্দ অনুযায়ী সাজানো থাকে। এই তালিকায় থাকা ধরনের সার্টিফিকেটই শুধু ফিরিয়ে আনা হবে। তবে,
certificateTypesখালি তালিকা হলে, যেকোনও ধরনের সার্টিফিকেট ফেরত দেওয়া হবে।
ClientCertificateType
Enum
"rsaSign"
"ecdsaSign"
Match
প্রপার্টি
-
শংসাপত্র
ArrayBuffer
X.509 সার্টিফিকেটের DER এনকোডিং।
-
keyAlgorithm
অবজেক্ট
সার্টিফায়েড কী-এর KeyAlgorithm। এতে অ্যালগরিদম প্যারামিটার থাকে যা সার্টিফিকেটের 'কী'-এর সাথে সহজাত (যেমন, 'কী'-এর দৈর্ঘ্য)। সাইন ফাংশনের মাধ্যমে ব্যবহার করা হ্যাশ ফাংশনের মতো অন্যান্য প্যারামিটার অন্তর্ভুক্ত করা হয় না।
SelectDetails
প্রপার্টি
-
clientCerts
ArrayBuffer[] ঐচ্ছিক
দেওয়া থাকলে,
selectClientCertificatesএই তালিকায় কাজ করে। অন্যথায়, প্ল্যাটফর্মের সার্টিফিকেট স্টোর থেকে সব সার্টিফিকেটের তালিকা সংগ্রহ করে যা এই এক্সটেনশনের জন্য উপলভ্য। এক্সটেনশনের কাছে যেসব এন্ট্রির অনুমতি নেই অথবা অনুরোধের সাথে মেলে না, সেগুলি সরিয়ে দেওয়া হয়। -
ইন্টারঅ্যাক্টিভ
বুলিয়ান
সত্য হলে, ফিল্টার করা তালিকা ব্যবহারকারীকে দেখানো হয় যাতে তিনি ম্যানুয়ালি সার্টিফিকেট বেছে নিতে পারেন এবং এর ফলে এক্সটেনশনকে সার্টিফিকেট ও 'কী' অ্যাক্সেস করার অনুমতি দেওয়া হয়। শুধুমাত্র বেছে নেওয়া সার্টিফিকেট ফেরত দেওয়া হবে। এটি মিথ্যা হলে, এক্সটেনশনকে অ্যাক্সেস মঞ্জুর করা হয়েছে (অটোমেটিক বা ম্যানুয়ালি) এমন সব সার্টিফিকেটের তালিকা ছোট করা হয়।
-
অনুরোধ
শুধুমাত্র এই অনুরোধের সাথে ম্যাচ করা সার্টিফিকেট ফেরত দেওয়া হবে।
VerificationDetails
প্রপার্টি
-
হোস্টনাম
স্ট্রিং
সার্টিফিকেট যাচাই করার জন্য সার্ভারের হোস্টনেম, যেমন, যে সার্ভার
serverCertificateChainদেখিয়েছে। -
serverCertificateChain
ArrayBuffer[]
প্রতিটি চেইন এন্ট্রি অবশ্যই X.509 সার্টিফিকেটের DER এনকোডিং হতে হবে, প্রথম এন্ট্রি অবশ্যই সার্ভার সার্টিফিকেট হতে হবে এবং প্রতিটি এন্ট্রি অবশ্যই তার আগের এন্ট্রিকে সার্টিফাই করতে হবে।
VerificationResult
প্রপার্টি
-
debug_errors
স্ট্রিং[]
ট্রাস্ট যাচাইকরণ ব্যর্থ হলে, এই অ্যারেতে অন্তর্নিহিত নেটওয়ার্ক লেয়ারের মাধ্যমে রিপোর্ট করা ত্রুটিগুলি থাকে। অন্যথায়, এই অ্যারে খালি থাকে।
মনে রাখবেন: এই তালিকাটি শুধুমাত্র ডিবাগ করার জন্য এবং এতে সব প্রাসঙ্গিক সমস্যা নাও থাকতে পারে। এই API-এর ভবিষ্যতের ভার্সনে, দেখানো সমস্যার ধরন পরিবর্তন হতে পারে এবং এটি ফরওয়ার্ড বা ব্যাকওয়ার্ড কম্প্যাটিবল হওয়ার কোনও গ্যারেন্টি দেওয়া হয় না।
-
বিশ্বস্ত
বুলিয়ান
ট্রাস্ট যাচাইকরণের ফলাফল: প্রদত্ত যাচাইকরণের বিবরণের জন্য ট্রাস্ট প্রতিষ্ঠিত করা গেলে ট্রু এবং কোনও কারণে ট্রাস্ট প্রত্যাখ্যান করা হলে ফলস।
পদ্ধতি
getKeyPair()
browser.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
): void
callback-এ platformKeys.subtleCrypto-এর সাথে ব্যবহারের জন্য certificate-এর কী পেয়ার পাস করে।
প্যারামিটারগুলি
-
শংসাপত্র
ArrayBuffer
selectClientCertificates-এর মাধ্যমে ফেরত দেওয়াMatch-এর সার্টিফিকেট। -
parameters
অবজেক্ট
কী দ্বারা নির্ধারিত প্যারামিটার ছাড়াও সিগনেচার/হ্যাশ অ্যালগরিদম প্যারামিটার নির্ধারণ করে। 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()
browser.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
): void
publicKeySpkiDer দ্বারা শনাক্ত করা কী পেয়ারকে platformKeys.subtleCrypto-এর সাথে callback-এ ব্যবহার করার জন্য পাস করে।
প্যারামিটারগুলি
-
publicKeySpkiDer
ArrayBuffer
একটি DER-এনকোড করা X.509 SubjectPublicKeyInfo, যা পাওয়া যায়, যেমন, format="spki" সহ WebCrypto-এর exportKey ফাংশন কল করার মাধ্যমে।
-
parameters
অবজেক্ট
'কী' দ্বারা নির্ধারিত প্যারামিটার ছাড়াও, এটি স্বাক্ষর এবং হ্যাশ অ্যালগরিদম প্যারামিটার প্রদান করে। WebCrypto-এর importKey ফাংশনের মতো একই প্যারামিটার গ্রহণ করা হয়, যেমন RSASSA-PKCS1-v1_5 কী-এর জন্য
RsaHashedImportParams। RSASSA-PKCS1-v1_5 'কী'-এর জন্য, আমাদের "hash" প্যারামিটার{ "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()
browser.platformKeys.selectClientCertificates(
details: SelectDetails,
): Promise<Match[]>
এই পদ্ধতিটি ক্লায়েন্ট সার্টিফিকেটের তালিকা থেকে সেইসব সার্টিফিকেট ফিল্টার করে যেগুলি প্ল্যাটফর্মের কাছে পরিচিত, request-এর সাথে মেলে এবং যেগুলির জন্য এক্সটেনশনের কাছে সার্টিফিকেট এবং এর ব্যক্তিগত কী অ্যাক্সেস করার অনুমতি রয়েছে। interactive সঠিক হলে, ব্যবহারকারীকে একটি ডায়ালগ দেখানো হয় যেখানে তিনি ম্যাচ করা সার্টিফিকেট থেকে বেছে নিতে এবং এক্সটেনশনকে সার্টিফিকেটে অ্যাক্সেস দিতে পারেন। বেছে নেওয়া/ফিল্টার করা ক্লায়েন্ট সার্টিফিকেট callback-এ পাস করা হবে।
প্যারামিটারগুলি
-
বিস্তারিত বিবরণ
রিটার্ন
-
Promise<Match[]>
Chrome 121+ Chrome 148 থেকে browser.*
subtleCrypto()
browser.platformKeys.subtleCrypto(): object | undefined
WebCrypto-এর SubtleCrypto-এর একটি ইমপ্লিমেন্টেশন যা এই এক্সটেনশনে উপলভ্য ক্লায়েন্ট সার্টিফিকেটের 'কী'-তে ক্রিপ্টো অপারেশন করার অনুমতি দেয়।
রিটার্ন
-
অবজেক্ট | অনির্দিষ্ট
verifyTLSServerCertificate()
browser.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
): Promise<VerificationResult>
প্ল্যাটফর্মের বিশ্বাসযোগ্যতা সেটিংস অনুযায়ী details.hostname-এর জন্য details.serverCertificateChain-কে বিশ্বাস করা যায় কিনা তা চেক করে। মনে রাখবেন: বিশ্বাস যাচাইকরণের প্রকৃত আচরণ সম্পূর্ণভাবে নির্দিষ্ট করা নেই এবং ভবিষ্যতে পরিবর্তন হতে পারে। API প্রয়োগের মাধ্যমে সার্টিফিকেটের মেয়াদ শেষ হওয়ার তারিখ যাচাই করা, সার্টিফিকেশন পাথ ভ্যালিডেট করা এবং পরিচিত CA-এর মাধ্যমে বিশ্বাসযোগ্যতা চেক করা হয়। প্রয়োগের ক্ষেত্রে EKU serverAuth মেনে চলতে হবে এবং সাবজেক্টের বিকল্প নামকে সমর্থন করতে হবে।
প্যারামিটারগুলি
-
বিস্তারিত বিবরণ
রিটার্ন
-
Promise<VerificationResult>
Chrome 121+ Chrome 148 থেকে browser.*