chrome.platformKeys

الوصف

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

الأذونات

platformKeys

مدى التوفّر

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

الأنواع

ClientCertificateRequest

الخصائص

  • certificateAuthorities

    ArrayBuffer[]

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

  • certificateTypes

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

ClientCertificateType

Enum

"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 والإصدارات الأحدث

subtleCrypto()

chrome.platformKeys.subtleCrypto(): object | undefined

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

المرتجعات

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

verifyTLSServerCertificate()

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

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

المعلمات

المرتجعات

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