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