الوصف
استخدِم واجهة برمجة التطبيقات chrome.platformKeys
للوصول إلى شهادات العميل التي يديرها النظام الأساسي. وفي حال منح المستخدم أو السياسة الإذن، يمكن للإضافة استخدام هذه الشهادة في بروتوكول المصادقة المخصص. مثلاً: ويسمح هذا باستخدام الشهادات المُدارة من قِبل النظام الأساسي في الشبكات الافتراضية الخاصة التابعة لجهات خارجية (يُرجى الاطّلاع على chrome.vpnProvider).
الأذونات
platformKeys
مدى التوفّر
الأنواع
ClientCertificateRequest
أماكن إقامة
-
certificateAuthorities
ArrayBuffer[]
قائمة بالأسماء المميزة للمراجع المصدقة التي يسمح بها الخادم. يجب أن يكون كل إدخال بترميز X.509 DistinguishedName بترميز DER.
-
certificateTypes
هذا الحقل هو قائمة بأنواع الشهادات المطلوبة، ويتم ترتيبها بترتيب تفضيل الخادم. سيتم استرداد الشهادات من النوع الوارد في هذه القائمة فقط. إذا كانت القائمة
certificateTypes
هي القائمة الفارغة، سيتم عرض الشهادات من أي نوع.
ClientCertificateType
Enum
"rsaSign"
"ecdsaSign"
Match
أماكن إقامة
-
الشهادة
مخزن المصفوفات
ترميز DER لشهادة X.509
-
keyAlgorithm
كائن
KeyAlgorithm للمفتاح المعتمد. يحتوي هذا على مَعلمات الخوارزمية المتأصلة في مفتاح الشهادة (مثل طول المفتاح). ولم يتم تضمين معلَمات أخرى، مثل دالة التجزئة التي تستخدمها دالة الإشارة.
SelectDetails
أماكن إقامة
-
clientCerts
ArrayBuffer[] اختيارية
تعمل
selectClientCertificates
في هذه القائمة في حال توفّرها. بخلاف ذلك، سيحصل على قائمة بجميع الشهادات من مخازن شهادات النظام الأساسي المتاحة لهذه الإضافات. تتم إزالة الإدخالات التي لا تملك الإضافة إذنًا لها أو التي لا تتطابق مع الطلب. -
تفاعلي
منطقي
في حال اختيار القيمة "true"، يتم تقديم القائمة التي تمت فلترتها للمستخدم لاختيار شهادة يدويًا، وبالتالي منح الإضافة إذن الوصول إلى الشهادات والمفاتيح. سيتم عرض الشهادات المحدّدة فقط. إذا تم ضبط السياسة على "خطأ"، يتم تقليل القائمة إلى جميع الشهادات التي تم منح الإضافة إذن الوصول إليها (تلقائيًا أو يدويًا).
-
لن يتم عرض سوى الشهادات التي تطابق هذا الطلب.
VerificationDetails
أماكن إقامة
-
اسم المضيف
سلسلة
اسم المضيف للخادم للتحقق من شهادته، على سبيل المثال: الخادم الذي قدّم
serverCertificateChain
. -
serverCertificateChain
ArrayBuffer[]
يجب أن يكون كل إدخال سلسلة هو ترميز DER لشهادة X.509، ويجب أن يكون الإدخال الأول شهادة الخادم ويجب أن يصادق كل إدخال على الإدخال الذي يسبقه.
VerificationResult
أماكن إقامة
-
debug_errors
سلسلة[]
إذا لم تنجح عملية التحقّق من الثقة، ستحتوي هذه المصفوفة على الأخطاء التي تم الإبلاغ عنها من خلال طبقة الشبكة الأساسية. وبخلاف ذلك، هذه الصفيفة فارغة.
ملاحظة: هذه القائمة مخصّصة لتصحيح الأخطاء فقط وقد لا تحتوي على جميع الأخطاء ذات الصلة. وقد تتغير الأخطاء الناتجة في النُسخ المستقبلية من واجهة برمجة التطبيقات هذه، ولا يمكن ضمان توافقها مع واجهة برمجة التطبيقات هذه.
-
موثوق به
منطقي
نتيجة عملية التحقّق من الثقة: تكون القيمة "صحيح" إذا تعذّر إنشاء الثقة لتفاصيل التحقّق المحدّدة، و"خطأ" في حال رفض الثقة لأي سبب من الأسباب.
الطُرق
getKeyPair()
chrome.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
)
تمرير مفتاحَي التشفير certificate
للاستخدام مع platformKeys.subtleCrypto
إلى callback
المعلمات
-
الشهادة
مخزن المصفوفات
شهادة
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" } }
ستعمل دالة التوقيع بعد ذلك على تطبيق المساحة المتروكة للإصدار 1.5 من PKCS#1 ولكن لن تجزئ البيانات المحددة.في الوقت الحالي، لا تتوافق هذه الطريقة إلا مع "RSASSA-PKCS1-v1_5" وECDSA الخوارزميات.
-
رد الاتصال
دالة
تظهر المَعلمة
callback
على النحو التالي:(publicKey: object, privateKey?: object) => void
-
publicKey
كائن
-
privateKey
الكائن اختياري
قد تكون القيمة
null
إذا لم تتمكّن هذه الإضافة من الوصول إليها.
-
getKeyPairBySpki()
chrome.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
)
تمرير مفتاحَي التشفير المحدَّدَين بواسطة publicKeySpkiDer
للاستخدام مع platformKeys.subtleCrypto
إلى callback
المعلمات
-
publicKeySpkiDer
مخزن المصفوفات
شهادة X.509 SubjectPublicKeyInfo بترميز DER، والتي تم الحصول عليها، على سبيل المثال: من خلال استدعاء دالة exportKey في WebCrypto باستخدام format="spki".
-
المعلمات
كائن
توفّر هذه البيانات معلَمات خوارزمية التجزئة والتوقيعات، بالإضافة إلى تلك التي تم تثبيتها بواسطة المفتاح نفسه. يتم قبول المعلمات نفسها بواسطة دالة importKey في WebCrypto، على سبيل المثال:
RsaHashedImportParams
للمفتاح RSASSA-PKCS1-v1_5. بالنسبة للمفاتيح RSASSA-PKCS1-v1_5، نحتاج أيضًا إلى تمرير "تجزئة" المعلمة{ "hash": { "name": string } }
. "التجزئة" اسم خوارزمية التجزئة المراد استخدامها في عملية الملخص قبل علامة. من الممكن تمرير "none" كاسم تجزئة، وفي هذه الحالة ستطبق دالة الإشارة المساحة المتروكة PKCS#1 v1.5 ولن تجزئ البيانات المحددة.في الوقت الحالي، تتوافق هذه الطريقة مع "ECDSA" خوارزمية ذات المنحنى المسمى P-256 و"RSASSA-PKCS1-v1_5" بإحدى خوارزميات التجزئة "none" و"SHA-1" و"SHA-256" و"SHA-384" و"SHA-512".
-
رد الاتصال
دالة
تظهر المَعلمة
callback
على النحو التالي:(publicKey: object, privateKey?: object) => void
-
publicKey
كائن
-
privateKey
الكائن اختياري
قد تكون القيمة
null
إذا لم تتمكّن هذه الإضافة من الوصول إليها.
-
selectClientCertificates()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
callback?: function,
)
تؤدي هذه الطريقة إلى فلترة الشهادات من قائمة شهادات العميل المعروفة للمنصة، تتطابق مع request
والتي يكون لدى الإضافة إذن لها بالوصول إلى الشهادة ومفتاحها الخاص. إذا تم ضبط السياسة interactive
على "صحيح"، سيظهر للمستخدم مربّع حوار حيث يمكنه الاختيار من بين الشهادات المطابِقة ومنح الإضافة إذن الوصول إلى الشهادة. سيتم تمرير شهادات العميل المحدّدة/التي تمت فلترتها إلى callback
.
المعلمات
المرتجعات
-
الوعد <Match[]>
الإصدار 121 من Chrome أو الإصدارات الأحدثتتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير معاودة الاتصال. التوافق مع الأنظمة القديمة. لا يمكنك استخدام كلتيهما في نفس استدعاء الدالة. تشير رسالة الأشكال البيانية يتم حل الوعد بنفس النوع الذي يتم إرساله إلى معاودة الاتصال.
subtleCrypto()
chrome.platformKeys.subtleCrypto()
يشير هذا المصطلح إلى تنفيذ لترميز SubtleCrypto من WebCrypto يسمح بإجراء عمليات تشفير على مفاتيح شهادات العميل المتاحة لهذه الإضافة.
المرتجعات
-
object | غير محدّدة
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
)
يتم التحقّق مما إذا كان يمكن الوثوق بـ details.serverCertificateChain
في details.hostname
وفقًا لإعدادات الثقة في النظام الأساسي. ملاحظة: لم يتم تحديد السلوك الفعلي لعملية "إثبات ملكية الثقة" بشكل كامل وقد يتغيّر في المستقبل. يتحقّق تنفيذ واجهة برمجة التطبيقات من انتهاء صلاحية الشهادة، ويتحقّق من مسار الشهادة، ويتحقّق من الثقة من قِبل مرجع تصديق معروف. من المفترض أن يراعي التنفيذ خادم EKU serverAuth وأن يتيح استخدام الأسماء البديلة للموضوع.
المعلمات
-
التفاصيل
-
رد الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:(result: VerificationResult) => void
-
نتيجة
-
المرتجعات
-
Promise<VerificationResult>
الإصدار 121 من Chrome أو الإصدارات الأحدثتتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير معاودة الاتصال. التوافق مع الأنظمة القديمة. لا يمكنك استخدام كلتيهما في نفس استدعاء الدالة. تشير رسالة الأشكال البيانية يتم حل الوعد بنفس النوع الذي يتم إرساله إلى معاودة الاتصال.