chrome.platformKeys

refresh date: 2026-09-25 robots: noindex

الوصف

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

الأذونات

platformKeys

مدى التوفّر

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

الأنواع

ClientCertificateRequest

الخصائص

  • certificateAuthorities

    ArrayBuffer[]‎

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

  • certificateTypes

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

ClientCertificateType

Enum

"rsaSign"

"ecdsaSign"

Match

الخصائص

  • الشهادة

    ArrayBuffer

    تمثّل هذه السمة ترميز DER لشهادة معيار X.509.

  • keyAlgorithm

    عنصر

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

SelectDetails

الخصائص

  • clientCerts

    ‫ArrayBuffer[]‎ اختياري

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

  • تفاعلي

    قيمة منطقية

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

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

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

      object اختياري

      قد تكون القيمة 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": { "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

      object اختياري

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

selectClientCertificates()

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

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

المعلمات

  • التفاصيل
  • callback

    function اختياري

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

    (matches: Match[]) => void

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

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

المرتجعات

  • Promise<Match[]>

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

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

subtleCrypto()

chrome.platformKeys.subtleCrypto(): object | undefined

هو تنفيذ لواجهة برمجة التطبيقات SubtleCrypto من WebCrypto يسمح بإجراء عمليات التشفير على مفاتيح شهادات العميل المتاحة لهذه الإضافة.

المرتجعات

  • object | undefined

verifyTLSServerCertificate()

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

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

المعلمات

المرتجعات

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

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