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