refresh date: 2026-09-25 robots: noindex
תיאור
משתמשים ב-API של 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 של המפתח המאומת. הוא מכיל פרמטרים של אלגוריתם שקשורים למפתח של האישור (למשל, אורך המפתח). פרמטרים אחרים, כמו פונקציית הגיבוב (hash) שמשמשת את פונקציית החתימה, לא נכללים.
SelectDetails
מאפיינים
-
clientCerts
ArrayBuffer[] אופציונלי
אם הוא מוגדר,
selectClientCertificatesפועל ברשימה הזו. אחרת, מתקבלת רשימה של כל האישורים ממאגרי האישורים של הפלטפורמה שזמינים לתוספים האלה. רשומות שלתוסף אין הרשאה לגשת אליהן או שלא תואמות לבקשה יוסרו. -
אינטראקטיבי
בוליאני
אם הערך הוא True, הרשימה המסוננת מוצגת למשתמש כדי שיבחר אישור באופן ידני, וכך יעניק לתוסף גישה לאישורים ולמפתחות. יוחזרו רק האישורים שנבחרו. אם הערך הוא False, הרשימה מצטמצמת לכל האישורים שהתוסף קיבל גישה אליהם (באופן אוטומטי או ידני).
-
יוחזרו רק אישורים שתואמים לבקשה הזו.
VerificationDetails
מאפיינים
-
hostname
מחרוזת
שם המארח של השרת שצריך לאמת את האישור שלו, למשל השרת שהציג את
serverCertificateChain. -
serverCertificateChain
ArrayBuffer[]
כל רשומה בשרשרת חייבת להיות קידוד DER של אישור X.509, הרשומה הראשונה חייבת להיות אישור השרת וכל רשומה חייבת לאשר את הרשומה שלפניה.
VerificationResult
מאפיינים
-
debug_errors
string[]
אם אימות האמון נכשל, המערך הזה מכיל את השגיאות שדווחו על ידי שכבת הרשת הבסיסית. אחרת, המערך הזה ריק.
הערה: הרשימה הזו מיועדת לניפוי באגים בלבד, ויכול להיות שהיא לא מכילה את כל השגיאות הרלוונטיות. יכול להיות שהשגיאות שיוחזרו ישתנו בגרסאות עתידיות של ה-API הזה, ואין הבטחה שהן יהיו תואמות לדורות קודמים או לדורות הבאים.
-
מהימן
בוליאני
תוצאת אימות האמינות: true אם אפשר לאמת את האמינות של פרטי האימות שצוינו, ו-false אם האמינות נדחתה מסיבה כלשהי.
Methods
getKeyPair()
chrome.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
): void
מעביר את זוג המפתחות של certificate לשימוש עם platformKeys.subtleCrypto אל callback.
פרמטרים
-
אישור
ArrayBuffer
האישור של
Matchשהוחזר על ידיselectClientCertificates. -
פרמטרים
אובייקט
קובעת את הפרמטרים של אלגוריתם החתימה/הגיבוב (hash) בנוסף לפרמטרים שנקבעו על ידי המפתח עצמו. מתקבלים אותם פרמטרים כמו בפונקציה 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, אבל לא תבצע גיבוב (hash) של הנתונים שניתנו.בשלב הזה, השיטה הזו תומכת רק באלגוריתמים RSASSA-PKCS1-v1_5 ו-ECDSA.
-
callback
פונקציה
הפרמטר
callbackנראה כך:(publicKey: object, privateKey?: object) => void
-
publicKey
אובייקט
-
privateKey
object optional
יכול להיות שהערך יהיה
nullאם לתוסף הזה אין גישה אליו.
-
getKeyPairBySpki()
chrome.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
): void
מעביר את זוג המפתחות שזוהה על ידי publicKeySpkiDer לשימוש עם platformKeys.subtleCrypto אל callback.
פרמטרים
-
publicKeySpkiDer
ArrayBuffer
SubjectPublicKeyInfo בקידוד DER מסוג X.509, שמתקבל, למשל, על ידי קריאה לפונקציה exportKey של WebCrypto עם format="spki".
-
פרמטרים
אובייקט
מספק פרמטרים של אלגוריתם חתימה וגיבוב (hash), בנוסף לאלה שנקבעו על ידי המפתח עצמו. הפרמטרים שמתקבלים זהים לאלה של הפונקציה 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
object optional
יכול להיות שהערך יהיה
nullאם לתוסף הזה אין גישה אליו.
-
selectClientCertificates()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
callback?: function,
): Promise<Match[]>
השיטה הזו מסננת מרשימה של אישורי לקוח את האישורים שמוכרים לפלטפורמה, תואמים ל-request ולתוסף יש הרשאה לגשת לאישור ולמפתח הפרטי שלו. אם המדיניות interactive מוגדרת כ-True, תוצג למשתמש תיבת דו-שיח שבה הוא יוכל לבחור מבין האישורים התואמים ולהעניק לתוסף גישה לאישור. אישורי הלקוח שנבחרו או סוננו יועברו אל callback.
פרמטרים
החזרות
-
Promise<Match[]>
Chrome מגרסה 121 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
subtleCrypto()
chrome.platformKeys.subtleCrypto(): object | undefined
הטמעה של SubtleCrypto של WebCrypto שמאפשרת פעולות קריפטוגרפיות במפתחות של אישורי לקוח שזמינים לתוסף הזה.
החזרות
-
object | undefined
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
): Promise<VerificationResult>
בודק אם אפשר לסמוך על details.serverCertificateChain עבור details.hostname בהתאם להגדרות האמינות של הפלטפורמה. הערה: ההתנהגות בפועל של אימות האמינות לא מוגדרת באופן מלא ועשויה להשתנות בעתיד. הטמעת ה-API מאמתת את תפוגת האישור, מאמתת את נתיב האישור ובודקת את המהימנות על ידי רשות אישורים (CA) מוכרת. ההטמעה אמורה לכבד את serverAuth של EKU ולתמוך בשמות חלופיים של בעלים (subject).
פרמטרים
-
פרטים
-
callback
function optional
הפרמטר
callbackנראה כך:(result: VerificationResult) => void
-
תוצאה
-
החזרות
-
Promise<VerificationResult>
Chrome מגרסה 121 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).