تاریخ بهروزرسانی: 2026-09-25 رباتها: noindex
توضیحات
از API مربوط به chrome.platformKeys برای دسترسی به گواهینامههای کلاینت مدیریتشده توسط پلتفرم استفاده کنید. اگر کاربر یا سیاست مربوطه این مجوز را اعطا کند، یک افزونه میتواند از چنین گواهینامهای در پروتکل احراز هویت سفارشی خود استفاده کند. به عنوان مثال، این امر امکان استفاده از گواهینامههای مدیریتشده توسط پلتفرم را در VPNهای شخص ثالث فراهم میکند (به chrome.vpnProvider مراجعه کنید).
مجوزها
platformKeysدر دسترس بودن
انواع
ClientCertificateRequest
خواص
- مراجع صدور گواهی
آرایه بافر[]
فهرست نامهای متمایز مراجع صدور گواهی که توسط سرور مجاز هستند. هر ورودی باید یک نام متمایز X.509 با کدگذاری DER باشد.
- انواع گواهی
این فیلد فهرستی از انواع گواهیهای درخواستی است که بر اساس اولویت سرور مرتب شدهاند. فقط گواهیهایی از نوعی که در این فهرست موجود باشد بازیابی میشوند. با این حال، اگر
certificateTypesفهرست خالی باشد، گواهیهایی از هر نوعی بازگردانده میشوند.
ClientCertificateType
شمارشی
«آرسا ساین» "ecdsaSign"
Match
خواص
- گواهی
آرایه بافر
کدگذاری DER یک گواهی X.509.
- الگوریتم کلید
شیء
الگوریتم کلید کلید گواهیشده. این شامل پارامترهای الگوریتمی است که ذاتی کلید گواهی هستند (مثلاً طول کلید). پارامترهای دیگر مانند تابع هش مورد استفاده توسط تابع علامت شامل نمیشوند.
SelectDetails
خواص
- clientCerts
ArrayBuffer[] اختیاری
در صورت وجود،
selectClientCertificatesروی این لیست عمل میکند. در غیر این صورت، لیست تمام گواهینامههای موجود در مخازن گواهینامه پلتفرم را که برای این افزونهها در دسترس هستند، دریافت میکند. ورودیهایی که افزونه مجوز آنها را ندارد یا با درخواست مطابقت ندارند، حذف میشوند. - تعاملی
بولی
اگر درست باشد، لیست فیلتر شده به کاربر نمایش داده میشود تا به صورت دستی یک گواهی را انتخاب کند و در نتیجه به افزونه دسترسی به گواهی(ها) و کلید(ها) را اعطا کند. فقط گواهی(های) انتخاب شده بازگردانده میشوند. اگر نادرست باشد، لیست به تمام گواهیهایی که افزونه به آنها دسترسی داشته است (به صورت خودکار یا دستی) کاهش مییابد.
- درخواست
فقط گواهیهایی که با این درخواست مطابقت داشته باشند، بازگردانده میشوند.
VerificationDetails
خواص
- نام میزبان
رشته
نام میزبان سروری که گواهی برای آن تأیید میشود، مثلاً سروری که
serverCertificateChainارائه داده است. - سرورCertificateChain
آرایه بافر[]
هر ورودی زنجیرهای باید کدگذاری DER یک گواهی X.509 باشد، اولین ورودی باید گواهی سرور باشد و هر ورودی باید ورودی قبلی خود را تأیید کند.
VerificationResult
خواص
- خطاهای اشکالزدایی
رشته[]
اگر تأیید اعتماد ناموفق باشد، این آرایه شامل خطاهای گزارش شده توسط لایه شبکه زیرین است. در غیر این صورت، این آرایه خالی است.
توجه: این لیست فقط برای اشکالزدایی در نظر گرفته شده است و ممکن است شامل تمام خطاهای مربوطه نباشد. خطاهای برگردانده شده ممکن است در نسخههای بعدی این API تغییر کنند و تضمینی برای سازگاری با نسخههای قبلی یا قبلی وجود ندارد.
- مورد اعتماد
بولی
نتیجهی تأیید اعتماد: اگر اعتماد به جزئیات تأیید داده شده قابل ایجاد باشد، مقدار درست (true) و اگر اعتماد به هر دلیلی رد شود، مقدار نادرست (false) خواهد بود.
روشها
getKeyPair()
chrome.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
): void
جفت کلید certificate را برای استفاده با platformKeys.subtleCrypto به callback ارسال میکند.
پارامترها
- گواهی
آرایه بافر
گواهی
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" } }. سپس تابع 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 ارسال میکند.
پارامترها
- publicKeySpkiDer
آرایه بافر
یک X.509 SubjectPublicKeyInfo کدگذاری شده با DER، که مثلاً با فراخوانی تابع exportKey در WebCrypto با فرمت "spki" بدست آمده است.
- پارامترها
شیء
پارامترهای امضا و الگوریتم هش را علاوه بر پارامترهایی که توسط خود کلید تعیین میشوند، ارائه میدهد. همان پارامترها توسط تابع importKey در WebCrypto پذیرفته میشوند، مثلاً
RsaHashedImportParamsبرای کلید RSASSA-PKCS1-v1_5. برای کلیدهای RSASSA-PKCS1-v1_5، باید یک پارامتر "hash" نیز ارسال کنیم{ "hash": { "name": string } }. پارامتر "hash" نشان دهنده نام الگوریتم هشینگ است که قرار است در عملیات خلاصهسازی قبل از یک علامت استفاده شود. میتوان "none" را به عنوان نام هش ارسال کرد، در این صورت تابع sign لایهبندی PKCS#1 v1.5 را اعمال میکند اما دادههای داده شده را هش نمیکند.در حال حاضر، این روش از الگوریتم "ECDSA" با named-curve 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,
): Promise<Match[]>
این روش از فهرست گواهیهای کلاینت، آنهایی را که برای پلتفرم شناخته شده هستند، با request مطابقت دارند و افزونه برای آنها مجوز دسترسی به گواهی و کلید خصوصیاش را دارد، فیلتر میکند. اگر interactive روی true تنظیم شده باشد، به کاربر پنجرهای نمایش داده میشود که در آن میتواند از بین گواهیهای منطبق انتخاب کند و به افزونه دسترسی به گواهی را اعطا کند. گواهیهای کلاینت انتخاب شده/فیلتر شده به callback ارسال میشوند.
پارامترها
بازگشتها
قول< تطابق []>
کروم ۱۲۱+Promiseها فقط برای Manifest V3 و نسخههای بعدی پشتیبانی میشوند، سایر پلتفرمها باید از callbackها استفاده کنند.
subtleCrypto()
chrome.platformKeys.subtleCrypto(): object | undefined
پیادهسازی SubtleCrypto از WebCrypto که امکان عملیات رمزنگاری روی کلیدهای گواهیهای کلاینت موجود در این افزونه را فراهم میکند.
بازگشتها
شیء | تعریف نشده
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
): Promise<VerificationResult>
بررسی میکند که آیا میتوان به details.serverCertificateChain برای details.hostname طبق تنظیمات اعتماد پلتفرم اعتماد کرد یا خیر. توجه: رفتار واقعی تأیید اعتماد به طور کامل مشخص نشده است و ممکن است در آینده تغییر کند. پیادهسازی API، انقضای گواهی را تأیید میکند، مسیر صدور گواهینامه را اعتبارسنجی میکند و اعتماد را توسط یک CA شناخته شده بررسی میکند. قرار است این پیادهسازی به EKU serverAuth احترام بگذارد و از نامهای جایگزین موضوعی پشتیبانی کند.
پارامترها
- جزئیات
- تماس برگشتی
تابع اختیاری
پارامتر
callbackبه شکل زیر است:(result: VerificationResult) => void
- نتیجه
بازگشتها
قول < نتیجه تأیید >
کروم ۱۲۱+Promiseها فقط برای Manifest V3 و نسخههای بعدی پشتیبانی میشوند، سایر پلتفرمها باید از callbackها استفاده کنند.