chrome.platformKeys

تاریخ به‌روزرسانی: 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 ارسال می‌شوند.

پارامترها

  • تماس برگشتی

    تابع اختیاری

    پارامتر callback به شکل زیر است:

    (matches: Match[]) => void

    • مسابقات

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

بازگشت‌ها

  • قول< تطابق []>

    کروم ۱۲۱+

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

پارامترها

بازگشت‌ها

  • کروم ۱۲۱+

    Promiseها فقط برای Manifest V3 و نسخه‌های بعدی پشتیبانی می‌شوند، سایر پلتفرم‌ها باید از callbackها استفاده کنند.