refresh date: 2026-09-25 robots: noindex
الوصف
استخدِم واجهة برمجة التطبيقات chrome.platformKeys للوصول إلى شهادات العميل التي يديرها النظام الأساسي. إذا منح المستخدم أو السياسة الإذن، يمكن أن تستخدم الإضافة هذه الشهادة في بروتوكول المصادقة المخصّص. على سبيل المثال، يتيح ذلك استخدام الشهادات المُدارة على مستوى النظام الأساسي في شبكات VPN التابعة لجهات خارجية (راجِع chrome.vpnProvider).
الأذونات
platformKeysمدى التوفّر
الأنواع
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()
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.
المعلمات
المرتجعات
-
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 وأن يتوافق مع الأسماء البديلة للموضوع.
المعلمات
-
التفاصيل
-
callback
الدالة اختيارية
تظهر المَعلمة
callbackعلى النحو التالي:(result: VerificationResult) => void
-
نتيجة
-
المرتجعات
-
Promise<VerificationResult>
الإصدار 121 من Chrome والإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، بينما تحتاج المنصات الأخرى إلى استخدام عمليات معاودة الاتصال.