توضیحات
از chrome.platformKeys
API برای دسترسی به گواهیهای مشتری که توسط پلتفرم مدیریت میشوند، استفاده کنید. اگر کاربر یا خط مشی مجوز را اعطا کند، یک برنامه افزودنی می تواند از چنین گواهینامه ای در پروتکل احراز هویت سفارشی خود استفاده کند. به عنوان مثال، این امکان استفاده از گواهینامه های مدیریت شده پلتفرم را در VPN های شخص ثالث فراهم می کند (به chrome.vpnProvider مراجعه کنید).
مجوزها
platformKeys
در دسترس بودن
انواع
ClientCertificateRequest
خواص
- مقامات گواهی
ArrayBuffer[]
فهرست اسامی متمایز مقامات گواهی مجاز توسط سرور. هر ورودی باید یک X.509 DistinguishedName با کد DER باشد.
- انواع گواهی
این فیلد فهرستی از انواع گواهینامه های درخواستی است که به ترتیب اولویت سرور مرتب شده اند. فقط گواهی هایی از یک نوع موجود در این لیست بازیابی می شوند. با این حال، اگر
certificateTypes
لیست خالی باشد، هر نوع گواهی برگردانده می شود.
ClientCertificateType
Enum
"rsaSign" "ecdsaSign"
Match
خواص
- گواهی
ArrayBuffer
رمزگذاری DER یک گواهی X.509.
- الگوریتم کلید
شی
الگوریتم کلید کلید تایید شده. این شامل پارامترهای الگوریتمی است که ذاتی کلید گواهی هستند (مثلاً طول کلید). پارامترهای دیگر مانند تابع هش که توسط تابع علامت استفاده می شود شامل نمی شود.
SelectDetails
خواص
- گواهی مشتری
ArrayBuffer[] اختیاری است
اگر داده شود،
selectClientCertificates
در این لیست عمل می کند. در غیر این صورت، لیست تمام گواهیها را از فروشگاههای گواهی پلتفرم که برای این افزونهها در دسترس هستند، دریافت میکند. ورودی هایی که برنامه افزودنی برای آنها مجوز ندارد یا با درخواست مطابقت ندارد، حذف می شوند. - تعاملی
بولی
اگر درست باشد، لیست فیلتر شده به کاربر ارائه می شود تا به صورت دستی یک گواهی را انتخاب کند و در نتیجه به افزونه اجازه دسترسی به گواهی(ها) و کلید(ها) بدهد. فقط گواهی(های) انتخاب شده بازگردانده می شود. اگر نادرست باشد، فهرست به تمام گواهیهایی که افزونه به آنها اجازه دسترسی داده شده است (به صورت خودکار یا دستی) کاهش مییابد.
- درخواست کنید
فقط گواهیهایی که با این درخواست مطابقت دارند بازگردانده میشوند.
VerificationDetails
خواص
- نام میزبان
رشته
نام میزبان سرور برای تأیید گواهی، به عنوان مثال سروری که
serverCertificateChain
را ارائه کرده است. - سرور CertificateChain
ArrayBuffer[]
هر ورودی زنجیره ای باید رمزگذاری DER یک گواهی X.509 باشد، اولین ورودی باید گواهی سرور باشد و هر ورودی باید ورودی قبل از آن را تأیید کند.
VerificationResult
خواص
- debug_errors
رشته[]
اگر تأیید اعتماد ناموفق باشد، این آرایه حاوی خطاهای گزارش شده توسط لایه شبکه زیرین است. در غیر این صورت، این آرایه خالی است.
توجه: این لیست فقط برای اشکال زدایی در نظر گرفته شده است و ممکن است شامل تمام خطاهای مربوطه نباشد. خطاهای بازگردانده شده ممکن است در ویرایش های بعدی این API تغییر کنند و تضمینی برای سازگاری با جلو یا عقب وجود ندارد.
- قابل اعتماد
بولی
نتیجه تأیید اعتماد: درست است اگر اعتماد برای جزئیات تأیید داده شده می تواند ایجاد شود و اگر اعتماد به هر دلیلی رد شود نادرست است.
روش ها
getKeyPair()
chrome.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
)
جفت کلید certificate
را برای استفاده با platformKeys.subtleCrypto
به callback
میدهد.
پارامترها
- گواهی
ArrayBuffer
گواهی یک
Match
که توسطselectClientCertificates
برگردانده شده است. - پارامترها
شی
پارامترهای الگوریتم امضا/هش را علاوه بر پارامترهای ثابت شده توسط خود کلید تعیین می کند. پارامترهای مشابه با تابع importKey WebCrypto، به عنوان مثال
RsaHashedImportParams
برای یک کلید RSASSA-PKCS1-v1_5 وEcKeyImportParams
برای کلید EC پذیرفته می شود. علاوه بر این برای کلیدهای RSASSA-PKCS1-v1_5، پارامتر نام الگوریتم هش را می توان با یکی از مقادیر زیر مشخص کرد: "none"، "SHA-1"، "SHA-256"، "SHA-384"، یا "SHA-512" "، به عنوان مثال{"hash": { "name": "none" } }
. سپس تابع علامت، padding 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,
)
جفت کلید شناسایی شده توسط publicKeySpkiDer
را برای استفاده با platformKeys.subtleCrypto
به callback
می دهد.
پارامترها
- publicKeySpkiDer
ArrayBuffer
یک SubjectPublicKeyInfo X.509 رمزگذاری شده با DER که به عنوان مثال با فراخوانی تابع exportKey WebCrypto با format="spki" به دست می آید.
- پارامترها
شی
پارامترهای الگوریتم امضا و هش را علاوه بر مواردی که توسط خود کلید ثابت شده است، ارائه می دهد. پارامترهای مشابه با تابع importKey WebCrypto، به عنوان مثال
RsaHashedImportParams
برای یک کلید RSASSA-PKCS1-v1_5 پذیرفته می شود. برای کلیدهای RSASSA-PKCS1-v1_5، باید یک پارامتر "hash"{ "hash": { "name": string } }
نیز ارسال کنیم. پارامتر "هش" نشان دهنده نام الگوریتم هش است که در عملیات هضم قبل از علامت استفاده می شود. این امکان وجود دارد که "none" را به عنوان نام هش ارسال کنید، در این صورت تابع علامت، padding 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
- کلید عمومی
شی
- کلید خصوصی
شی اختیاری
اگر این افزونه به آن دسترسی نداشته باشد، ممکن است
null
باشد.
selectClientCertificates()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
callback?: function,
)
این روش، گواهیهایی را که برای پلتفرم، request
تطبیق شناخته شدهاند و افزونه مجوز دسترسی به گواهی و کلید خصوصی آن را دارد، از فهرستی از گواهیهای کلاینت فیلتر میکند. اگر interactive
درست باشد، گفتگویی به کاربر ارائه میشود که در آن میتواند از گواهیهای منطبق انتخاب کند و به افزونه اجازه دسترسی به گواهی بدهد. گواهیهای مشتری انتخابشده/فیلتر شده به callback
ارسال میشوند.
پارامترها
برمی گرداند
Promise< مطابقت []>
Chrome 121+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
subtleCrypto()
chrome.platformKeys.subtleCrypto()
اجرای SubtleCrypto WebCrypto که به عملیات کریپتو اجازه میدهد روی کلیدهای گواهیهای کلاینت که در این برنامه افزودنی در دسترس هستند.
برمی گرداند
شی | تعریف نشده
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
)
بررسی میکند که آیا میتوان به details.serverCertificateChain
برای details.hostname
میزبان با توجه به تنظیمات اعتماد پلت فرم اعتماد کرد. توجه: رفتار واقعی تأیید اعتماد به طور کامل مشخص نشده است و ممکن است در آینده تغییر کند. اجرای API انقضای گواهینامه را تأیید می کند، مسیر صدور گواهینامه را تأیید می کند و اعتماد توسط یک CA شناخته شده را بررسی می کند. این پیاده سازی قرار است به EKU serverAuth احترام بگذارد و از نام های جایگزین موضوع پشتیبانی کند.
پارامترها
- جزئیات
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(result: VerificationResult) => void
- نتیجه
برمی گرداند
Promise< Verification Result >
Chrome 121+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.