chrome.platformKeys

refresh date: 2026-09-25 robots: noindex

الوصف

استخدِم واجهة برمجة التطبيقات chrome.platformKeys للوصول إلى شهادات العميل التي يديرها النظام الأساسي. إذا منح المستخدم أو السياسة الإذن، يمكن أن تستخدم الإضافة هذه الشهادة في بروتوكول المصادقة المخصّص. على سبيل المثال، يتيح ذلك استخدام الشهادات المُدارة على مستوى النظام الأساسي في شبكات VPN التابعة لجهات خارجية (راجِع chrome.vpnProvider).

الأذونات

platformKeys

مدى التوفّر

الإصدار 45 من Chrome والإصدارات الأحدث نظام التشغيل ChromeOS فقط

الأنواع

ClientCertificateRequest

الخصائص

  • certificateAuthorities

    ArrayBuffer[]

    قائمة بالأسماء المميزة لهيئات إصدار الشهادات التي يسمح بها الخادم يجب أن يكون كل إدخال اسمًا مميزًا بتنسيق X.509 ومُرمَّزًا بتنسيق DER.

  • certificateTypes

    هذا الحقل هو قائمة بأنواع الشهادات المطلوبة، ويتم ترتيبها حسب الأولوية التي يحدّدها الخادم. سيتم استرداد الشهادات من نوع مضمّن في هذه القائمة فقط. إذا كانت certificateTypes هي القائمة الفارغة، سيتم عرض شهادات من أي نوع.

ClientCertificateType

تعداد

"rsaSign"

"ecdsaSign"

Match

الخصائص

  • الشهادة

    ArrayBuffer

    ترميز DER لشهادة X.509

  • keyAlgorithm

    عنصر

    تمثّل هذه السمة KeyAlgorithm المفتاح المصدَّق عليه. يحتوي هذا الحقل على مَعلمات الخوارزمية المتأصّلة في مفتاح الشهادة (مثل طول المفتاح). لا يتم تضمين مَعلمات أخرى، مثل دالة التجزئة التي تستخدمها دالة التوقيع.

SelectDetails

الخصائص

  • clientCerts

    ArrayBuffer[] اختياري

    في حال توفُّرها، تعمل selectClientCertificates على هذه القائمة. بخلاف ذلك، يتم الحصول على قائمة بجميع الشهادات من مخازن الشهادات في النظام الأساسي المتاحة لهذه الإضافات. تتم إزالة الإدخالات التي لا تملك الإضافة الإذن بالوصول إليها أو التي لا تتطابق مع الطلب.

  • تفاعلي

    قيمة منطقية

    إذا كانت القيمة صحيحة، سيتم عرض القائمة المُفلترة على المستخدم ليختار شهادة يدويًا، وبالتالي منح الإضافة إذن الوصول إلى الشهادات والمفاتيح. سيتم عرض الشهادات المحدّدة فقط. إذا كانت القيمة false، يتم تقليل القائمة لتشمل جميع الشهادات التي تم منح الإضافة إذن الوصول إليها (تلقائيًا أو يدويًا).

  • ولن يتم عرض سوى الشهادات التي تتطابق مع هذا الطلب.

VerificationDetails

الخصائص

  • اسم المضيف

    سلسلة

    اسم مضيف الخادم الذي سيتم التحقّق من شهادته، مثل الخادم الذي قدّم serverCertificateChain.

  • serverCertificateChain

    ArrayBuffer[]

    يجب أن يكون كل إدخال في السلسلة هو ترميز DER لشهادة X.509، ويجب أن يكون الإدخال الأول هو شهادة الخادم، ويجب أن يشهد كل إدخال على الإدخال الذي يسبقه.

VerificationResult

الخصائص

  • debug_errors

    string[]

    إذا تعذّر إثبات صحة الشهادة، تحتوي هذه المصفوفة على الأخطاء التي أبلغت عنها طبقة الشبكة الأساسية. وفي ما عدا ذلك، تكون هذه المصفوفة فارغة.

    ملاحظة: هذه القائمة مخصّصة لتصحيح الأخطاء فقط وقد لا تحتوي على جميع الأخطاء ذات الصلة. قد تتغيّر الأخطاء التي يتم عرضها في المراجعات المستقبلية لواجهة برمجة التطبيقات هذه، ولا نضمن أن تكون متوافقة مع الإصدارات الأحدث أو الأقدم.

  • موثوق

    قيمة منطقية

    نتيجة التحقّق من صحة الشهادة: تكون القيمة "صحيح" إذا كان من الممكن إثبات صحة تفاصيل التحقّق المحدّدة، وتكون القيمة "خطأ" إذا تم رفض صحة الشهادة لأي سبب.

الطُرق

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

    دالة

    تظهر المَعلمة callback على النحو التالي:

    (publicKey: object, privateKey?: object) => void

    • publicKey

      عنصر

    • privateKey

      كائن اختياري

      قد يكون null إذا لم يكن لدى هذه الإضافة إذن الوصول إليه.

getKeyPairBySpki()

الإصدار 85 من Chrome والإصدارات الأحدث
chrome.platformKeys.getKeyPairBySpki(
  publicKeySpkiDer: ArrayBuffer,
  parameters: object,
  callback: function,
)
: void

تمرِّر هذه السمة مفتاحَي التشفير المحدّدين بواسطة 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 } }. تمثّل المَعلمة "hash" اسم خوارزمية التجزئة التي سيتم استخدامها في عملية الملخّص قبل التوقيع. يمكن تمرير القيمة "none" كاسم التجزئة، وفي هذه الحالة ستطبّق دالة التوقيع عملية الحشو PKCS#1 v1.5 ولكن لن تجزّئ البيانات المقدَّمة.

    تتيح هذه الطريقة حاليًا استخدام خوارزمية "ECDSA" مع المنحنى المسمّى P-256 وخوارزمية "RSASSA-PKCS1-v1_5" مع إحدى خوارزميات التجزئة "none" و"SHA-1" و"SHA-256" و"SHA-384" و "SHA-512".

  • callback

    دالة

    تظهر المَعلمة callback على النحو التالي:

    (publicKey: object, privateKey?: object) => void

    • publicKey

      عنصر

    • privateKey

      كائن اختياري

      قد يكون null إذا لم يكن لدى هذه الإضافة إذن الوصول إليه.

selectClientCertificates()

وعد
chrome.platformKeys.selectClientCertificates(
  details: SelectDetails,
  callback?: function,
)
: Promise<Match[]>

تُجري هذه الطريقة فلترة من قائمة شهادات العميل للشهادات التي يعرفها النظام الأساسي، والتي تتطابق مع request، والتي يملك الامتداد إذنًا بالوصول إلى الشهادة ومفتاحها الخاص. إذا كانت قيمة interactive هي "صحيح"، سيظهر للمستخدم مربّع حوار يمكنه من خلاله الاختيار من بين الشهادات المطابقة ومنح الإضافة إذن الوصول إلى الشهادة. سيتم تمرير شهادات العميل المحدّدة أو التي تمّت فلترتها إلى callback.

المعلمات

  • التفاصيل
  • callback

    الدالة اختيارية

    تظهر المَعلمة callback على النحو التالي:

    (matches: Match[]) => void

    • فلتر مطابق لـ

      قائمة بالشهادات التي تتطابق مع الطلب والتي تملك الإضافة إذنًا بها، والتي اختارها المستخدم إذا كانت قيمة interactive هي true.

المرتجعات

  • Promise<Match[]>

    الإصدار 121 من Chrome والإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، بينما تحتاج المنصات الأخرى إلى استخدام عمليات معاودة الاتصال.

subtleCrypto()

chrome.platformKeys.subtleCrypto(): object | undefined

تنفيذ SubtleCrypto في WebCrypto، ما يتيح إجراء عمليات تشفير على مفاتيح شهادات العميل المتاحة لهذه الإضافة

المرتجعات

  • كائن | غير محدّد

verifyTLSServerCertificate()

وعد
chrome.platformKeys.verifyTLSServerCertificate(
  details: VerificationDetails,
  callback?: function,
)
: Promise<VerificationResult>

تتحقّق هذه السمة ممّا إذا كان يمكن الوثوق في details.serverCertificateChain بشأن details.hostname وفقًا لإعدادات الثقة في النظام الأساسي. ملاحظة: لم يتم تحديد السلوك الفعلي لعملية تأكيد الثقة بشكل كامل، وقد يتغير في المستقبل. تتحقّق عملية تنفيذ واجهة برمجة التطبيقات من تاريخ انتهاء صلاحية الشهادة، وتتحقّق من مسار الشهادة، وتتحقّق من الثقة من خلال مرجع تصديق معروف. من المفترض أن يلتزم التنفيذ بـ EKU serverAuth وأن يتوافق مع الأسماء البديلة للموضوع.

المعلمات

المرتجعات

  • الإصدار 121 من Chrome والإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، بينما تحتاج المنصات الأخرى إلى استخدام عمليات معاودة الاتصال.