chrome.platformKeys

refresh date: 2026-09-25 robots: noindex

شرح

از chrome.platformKeys API برای دسترسی به گواهینامه‌های کارخواه مدیریت‌شده توسط پلاتفرم استفاده کنید. اگر کاربر یا خط‌مشی اجازه را اعطا کند، افزونه می‌تواند از چنین گواهینامه‌ای در پروتکل اصالت‌سنجی سفارشی خود استفاده کند. برای مثال، این کار اجازه می‌دهد از گواهی‌های مدیریت‌شده پلاتفرم در وی‌پی‌ان‌های طرف سوم استفاده شود (chrome.vpnProvider را ببینید).

اجازه‌ها

platformKeys

دردسترس بودن

Chrome نسخه ۴۵ به بالا فقط ChromeOS

انواع

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 نسخه ۸۵ و بالاتر
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 ارسال خواهد شد.

پارامترها

  • جزئیات
  • تماس برگشتی

    تابع اختیاری

    پارامتر callback به‌صورت زیر است:

    (matches: Match[]) => void

    • انطباق‌ها

      فهرست گواهینامه‌هایی که با درخواست مطابقت دارند، افزونه برای آن‌ها اجازه دارد، و اگر interactive درست باشد، توسط کاربر انتخاب شده‌اند.

بازگشتی‌ها

  • 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 پیروی کند و از نام‌های جایگزین موضوع پشتیبانی کند.

پارامترها

بازگشتی‌ها

  • Chrome نسخه ۱۲۱ و بالاتر

    ‫Promises فقط برای «مانیفست نسخه ۳» و نسخه‌های جدیدتر پشتیبانی می‌شود، پلاتفرم‌های دیگر باید از callbacks استفاده کنند.