الوصف
استخدِم واجهة برمجة التطبيقات 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
على هذه القائمة. بخلاف ذلك، يتم الحصول على قائمة بجميع الشهادات من مخازن الشهادات في النظام الأساسي المتاحة لهذه الإضافات. تتم إزالة الإدخالات التي لا تملك الإضافة الإذن بالوصول إليها أو التي لا تتطابق مع الطلب. -
تفاعلي
قيمة منطقية
في حال ضبطها على "صحيح"، سيتم عرض القائمة المُفلترة على المستخدم ليختار شهادة يدويًا، وبالتالي منح الإضافة إذن الوصول إلى الشهادات والمفاتيح. سيتم عرض الشهادات المحدّدة فقط. إذا كانت القيمة 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 والإصدارات الأحدث
subtleCrypto()
chrome.platformKeys.subtleCrypto(): object | undefined
تنفيذ SubtleCrypto في WebCrypto، ما يتيح إجراء عمليات تشفير على مفاتيح شهادات العميل المتاحة لهذه الإضافة
المرتجعات
-
كائن | غير محدّد
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
): Promise<VerificationResult>
تتحقّق هذه السمة مما إذا كان يمكن الوثوق في details.serverCertificateChain
بشأن details.hostname
وفقًا لإعدادات الثقة في النظام الأساسي. ملاحظة: لم يتم تحديد السلوك الفعلي لعملية التحقّق من الموثوقية بشكل كامل، وقد يتغيّر في المستقبل. تتحقّق عملية تنفيذ واجهة برمجة التطبيقات من تاريخ انتهاء صلاحية الشهادة، وتتحقّق من مسار الشهادة، وتتحقّق من الثقة من خلال مرجع تصديق معروف. من المفترض أن تحترم عملية التنفيذ معرّف الاستخدام الموسّع للمفتاح serverAuth وأن تتوافق مع الأسماء البديلة للموضوع.
المعلمات
-
التفاصيل
-
callback
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:(result: VerificationResult) => void
-
نتيجة
-
المرتجعات
-
Promise<VerificationResult>
الإصدار 121 من Chrome والإصدارات الأحدث