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