রিফ্রেশ তারিখ: ২০২৬-০৯-২৫ রোবটস: নোইনডেক্স
বর্ণনা
প্ল্যাটফর্ম দ্বারা পরিচালিত ক্লায়েন্ট সার্টিফিকেট অ্যাক্সেস করতে chrome.platformKeys API ব্যবহার করুন। যদি ব্যবহারকারী বা পলিসি অনুমতি দেয়, তাহলে একটি এক্সটেনশন তার নিজস্ব প্রমাণীকরণ প্রোটোকলে এই ধরনের সার্টিফিকেট ব্যবহার করতে পারে। উদাহরণস্বরূপ, এটি তৃতীয় পক্ষের VPN-এ প্ল্যাটফর্ম দ্বারা পরিচালিত সার্টিফিকেট ব্যবহারের সুযোগ দেয় ( chrome.vpnProvider দেখুন)।
অনুমতি
platformKeysপ্রাপ্যতা
প্রকারভেদ
ClientCertificateRequest
বৈশিষ্ট্য
- শংসাপত্র কর্তৃপক্ষ
অ্যারেবাফার[]
সার্ভার কর্তৃক অনুমোদিত সার্টিফিকেট অথরিটিগুলোর ডিস্টিংগুইশড নেম-এর তালিকা। প্রতিটি এন্ট্রি অবশ্যই একটি DER-এনকোডেড X.509 ডিস্টিংগুইশড নেম হতে হবে।
- সার্টিফিকেটের প্রকারভেদ
এই ফিল্ডটি হলো অনুরোধকৃত সার্টিফিকেটের প্রকারগুলোর একটি তালিকা, যা সার্ভারের পছন্দ অনুসারে সাজানো থাকে। শুধুমাত্র এই তালিকায় থাকা প্রকারের সার্টিফিকেটগুলোই পুনরুদ্ধার করা হবে। তবে, যদি
certificateTypesতালিকাটি খালি থাকে, তাহলে যেকোনো প্রকারের সার্টিফিকেট ফেরত দেওয়া হবে।
ClientCertificateType
এনাম
"rsaSign" "ecdsaSign"
Match
বৈশিষ্ট্য
- সার্টিফিকেট
অ্যারেবাফার
একটি X.509 সার্টিফিকেটের DER এনকোডিং।
- মূল অ্যালগরিদম
বস্তু
প্রত্যয়িত কী-এর কীঅ্যালগরিদম । এতে সার্টিফিকেটের কী-এর অন্তর্নিহিত অ্যালগরিদম প্যারামিটারগুলো থাকে (যেমন কী-এর দৈর্ঘ্য)। সাইন ফাংশন দ্বারা ব্যবহৃত হ্যাশ ফাংশনের মতো অন্যান্য প্যারামিটারগুলো এতে অন্তর্ভুক্ত থাকে না।
SelectDetails
বৈশিষ্ট্য
- ক্লায়েন্ট সার্টিফিকেট
ArrayBuffer[] ঐচ্ছিক
প্রদত্ত হলে, `
selectClientCertificatesএই তালিকার উপর কাজ করে। অন্যথায়, এটি প্ল্যাটফর্মের সার্টিফিকেট স্টোর থেকে এই এক্সটেনশনের জন্য উপলব্ধ সমস্ত সার্টিফিকেটের তালিকা সংগ্রহ করে। যে এন্ট্রিগুলির জন্য এক্সটেনশনটির অনুমতি নেই বা যা অনুরোধের সাথে মেলে না, সেগুলি সরিয়ে ফেলা হয়। - ইন্টারেক্টিভ
বুলিয়ান
যদি true হয়, তাহলে ফিল্টার করা তালিকাটি ব্যবহারকারীর সামনে উপস্থাপন করা হয় যাতে তিনি ম্যানুয়ালি একটি সার্টিফিকেট নির্বাচন করতে পারেন এবং এর মাধ্যমে এক্সটেনশনটিকে সার্টিফিকেট(গুলি) এবং কী(গুলি)-তে অ্যাক্সেস দেওয়া হয়। শুধুমাত্র নির্বাচিত সার্টিফিকেট(গুলি) ফেরত দেওয়া হবে। যদি false হয়, তাহলে তালিকাটি সেই সমস্ত সার্টিফিকেটে সীমাবদ্ধ হয়ে যায় যেগুলিতে এক্সটেনশনটিকে অ্যাক্সেস দেওয়া হয়েছে (স্বয়ংক্রিয়ভাবে বা ম্যানুয়ালি)।
শুধুমাত্র এই অনুরোধের সাথে মেলে এমন সার্টিফিকেটগুলোই ফেরত দেওয়া হবে।
VerificationDetails
বৈশিষ্ট্য
- হোস্টনাম
স্ট্রিং
যে সার্ভারের সার্টিফিকেট যাচাই করতে হবে তার হোস্টনেম, যেমন যে সার্ভারটি
serverCertificateChainউপস্থাপন করেছে। - সার্ভার সার্টিফিকেট চেইন
অ্যারেবাফার[]
চেইনের প্রতিটি এন্ট্রি অবশ্যই একটি X.509 সার্টিফিকেটের DER এনকোডিং হতে হবে, প্রথম এন্ট্রিটি সার্ভার সার্টিফিকেট হতে হবে এবং প্রতিটি এন্ট্রিকে তার পূর্ববর্তী এন্ট্রিকে প্রত্যয়িত করতে হবে।
VerificationResult
বৈশিষ্ট্য
- ডিবাগ_ত্রুটি
স্ট্রিং[]
বিশ্বাসযোগ্যতা যাচাই ব্যর্থ হলে, এই অ্যারেতে অন্তর্নিহিত নেটওয়ার্ক স্তর দ্বারা রিপোর্ট করা ত্রুটিগুলি থাকে। অন্যথায়, এই অ্যারেটি খালি থাকে।
দ্রষ্টব্য: এই তালিকাটি শুধুমাত্র ডিবাগিংয়ের জন্য এবং এতে সমস্ত প্রাসঙ্গিক ত্রুটি নাও থাকতে পারে। এই API-এর ভবিষ্যৎ সংস্করণগুলিতে প্রদর্শিত ত্রুটিগুলি পরিবর্তিত হতে পারে, এবং এগুলি ফরোয়ার্ড বা ব্যাকওয়ার্ড কম্প্যাটিবল হওয়ার কোনো নিশ্চয়তা নেই।
- বিশ্বস্ত
বুলিয়ান
বিশ্বাসযোগ্যতা যাচাইয়ের ফলাফল: প্রদত্ত যাচাই বিবরণের ভিত্তিতে বিশ্বাসযোগ্যতা প্রতিষ্ঠিত হলে ‘ট্রু’ এবং যেকোনো কারণে বিশ্বাসযোগ্যতা প্রত্যাখ্যাত হলে ‘ফলস’।
পদ্ধতি
getKeyPair()
chrome.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
): void
platformKeys.subtleCrypto সাথে ব্যবহারের জন্য certificate কী পেয়ারটি callback প্রেরণ করে।
প্যারামিটার
- সার্টিফিকেট
অ্যারেবাফার
selectClientCertificatesদ্বারা ফেরত দেওয়া একটিMatchএর সার্টিফিকেট। - প্যারামিটার
বস্তু
কী (key) দ্বারা নির্ধারিত প্যারামিটারগুলোর পাশাপাশি এটি সিগনেচার/হ্যাশ অ্যালগরিদমের অতিরিক্ত প্যারামিটারও নির্ধারণ করে। 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" } }। এরপর sign ফাংশনটি PKCS#1 v1.5 প্যাডিং প্রয়োগ করবে, কিন্তু প্রদত্ত ডেটা হ্যাশ করবে না।বর্তমানে, এই পদ্ধতিটি শুধুমাত্র "RSASSA-PKCS1-v1_5" এবং "ECDSA" অ্যালগরিদম সমর্থন করে।
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(publicKey: object, privateKey?: object) => void
- পাবলিক কী
বস্তু
- ব্যক্তিগত চাবি
বস্তু ঐচ্ছিক
এই এক্সটেনশনটির এতে প্রবেশাধিকার না থাকলে এটি
nullহতে পারে।
getKeyPairBySpki()
chrome.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
): void
publicKeySpkiDer দ্বারা চিহ্নিত কী-পেয়ারটি platformKeys.subtleCrypto সাথে ব্যবহারের জন্য callback এ প্রেরণ করে।
প্যারামিটার
- পাবলিক কী স্পিকিডার
অ্যারেবাফার
একটি DER-এনকোডেড X.509 SubjectPublicKeyInfo, যা উদাহরণস্বরূপ WebCrypto-এর exportKey ফাংশনটিকে format="spki" সহ কল করার মাধ্যমে পাওয়া যায়।
- প্যারামিটার
বস্তু
কী-এর নিজস্ব নির্ধারিত প্যারামিটারগুলোর পাশাপাশি, এটি সিগনেচার এবং হ্যাশ অ্যালগরিদম প্যারামিটারও প্রদান করে। WebCrypto-এর importKey ফাংশনের মতোই একই প্যারামিটারগুলো এখানেও গৃহীত হয়, যেমন একটি RSASSA-PKCS1-v1_5 কী-এর জন্য
RsaHashedImportParams। RSASSA-PKCS1-v1_5 কী-গুলোর জন্য, আমাদের একটি "hash" প্যারামিটারও পাস করতে হবে{ "hash": { "name": string } }। "hash" প্যারামিটারটি সাইন করার আগে ডাইজেস্ট অপারেশনে ব্যবহৃত হ্যাশিং অ্যালগরিদমের নাম নির্দেশ করে। হ্যাশ নেম হিসেবে "none" পাস করা সম্ভব, সেক্ষেত্রে সাইন ফাংশনটি PKCS#1 v1.5 প্যাডিং প্রয়োগ করবে কিন্তু প্রদত্ত ডেটা হ্যাশ করবে না।বর্তমানে, এই পদ্ধতিটি নেমড-কার্ভ P-256 সহ "ECDSA" অ্যালগরিদম এবং "none", "SHA-1", "SHA-256", "SHA-384", ও "SHA-512" হ্যাশিং অ্যালগরিদমগুলোর যেকোনো একটি সহ "RSASSA-PKCS1-v1_5" অ্যালগরিদম সমর্থন করে।
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(publicKey: object, privateKey?: object) => void
- পাবলিক কী
বস্তু
- ব্যক্তিগত চাবি
বস্তু ঐচ্ছিক
এই এক্সটেনশনটির এতে প্রবেশাধিকার না থাকলে এটি
nullহতে পারে।
selectClientCertificates()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
callback?: function,
): Promise<Match[]>
এই পদ্ধতিটি ক্লায়েন্ট সার্টিফিকেটের একটি তালিকা থেকে সেই সার্টিফিকেটগুলোকে ফিল্টার করে, যেগুলো প্ল্যাটফর্মের কাছে পরিচিত, request সাথে মেলে এবং যেগুলোর সার্টিফিকেট ও তার প্রাইভেট কী অ্যাক্সেস করার অনুমতি এক্সটেনশনটির আছে। যদি interactive বিকল্পটি ‘true’ হয়, তবে ব্যবহারকারীকে একটি ডায়ালগ বক্স দেখানো হয়, যেখানে তিনি মিলে যাওয়া সার্টিফিকেটগুলো থেকে নির্বাচন করতে এবং এক্সটেনশনটিকে সেই সার্টিফিকেট অ্যাক্সেস করার অনুমতি দিতে পারেন। নির্বাচিত/ফিল্টার করা ক্লায়েন্ট সার্টিফিকেটগুলো ` callback এ পাঠানো হবে।
প্যারামিটার
ফেরত
প্রতিশ্রুতি< মিল []>
ক্রোম ১২১+প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
subtleCrypto()
chrome.platformKeys.subtleCrypto(): object | undefined
WebCrypto-এর SubtleCrypto- এর একটি বাস্তবায়ন, যা এই এক্সটেনশনের জন্য উপলব্ধ ক্লায়েন্ট সার্টিফিকেটের কী-গুলোর উপর ক্রিপ্টো অপারেশন করার সুযোগ দেয়।
ফেরত
বস্তু | অসংজ্ঞায়িত
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
): Promise<VerificationResult>
প্ল্যাটফর্মের ট্রাস্ট সেটিংস অনুযায়ী details.hostname এর জন্য details.serverCertificateChain বিশ্বাসযোগ্য কিনা তা যাচাই করে। দ্রষ্টব্য: ট্রাস্ট যাচাইকরণের প্রকৃত আচরণ সম্পূর্ণরূপে নির্দিষ্ট করা নেই এবং ভবিষ্যতে এটি পরিবর্তিত হতে পারে। এপিআই ইমপ্লিমেন্টেশনটি সার্টিফিকেটের মেয়াদ যাচাই করে, সার্টিফিকেশন পাথ ভ্যালিডেট করে এবং একটি পরিচিত CA দ্বারা বিশ্বাসযোগ্যতা পরীক্ষা করে। ইমপ্লিমেন্টেশনটি EKU serverAuth-কে সম্মান করবে এবং সাবজেক্ট অল্টারনেটিভ নেম সমর্থন করবে বলে আশা করা হচ্ছে।
প্যারামিটার
- বিস্তারিত
- কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:(result: VerificationResult) => void
- ফলাফল
ফেরত
প্রতিশ্রুতি< যাচাইকরণের ফলাফল >
ক্রোম ১২১+প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।