Deskripsi
Gunakan chrome.platformKeys
API untuk mengakses sertifikat klien yang dikelola oleh platform. Jika pengguna atau kebijakan memberikan izin, ekstensi dapat menggunakan sertifikat tersebut dalam protokol autentikasi kustomnya. Mis. hal ini memungkinkan penggunaan sertifikat yang dikelola platform dalam VPN pihak ketiga (lihat chrome.vpnProvider).
Izin
platformKeys
Ketersediaan
Jenis
ClientCertificateRequest
Properti
-
certificateAuthorities
ArrayBuffer[]
Daftar nama resmi certificate authority yang diizinkan oleh server. Setiap entri harus berupa X.509 DistinguishedName yang dienkode dengan DER.
-
certificateTypes
Kolom ini berisi daftar jenis sertifikat yang diminta, yang diurutkan dalam urutan preferensi server. Hanya sertifikat dari jenis yang ada dalam daftar ini yang akan diambil. Namun, jika
certificateTypes
adalah daftar kosong, sertifikat jenis apa pun akan ditampilkan.
ClientCertificateType
Enum
"rsaSign"
"ecdsaSign"
Match
Properti
-
sertifikat
ArrayBuffer
Encoding DER sertifikat X.509.
-
keyAlgorithm
objek
KeyAlgorithm kunci tersertifikasi. Ini berisi parameter algoritma yang melekat pada kunci sertifikat (mis. panjang kunci). Parameter lain seperti fungsi {i>hash<i} yang digunakan oleh fungsi tanda tidak disertakan.
SelectDetails
Properti
-
clientCerts
ArrayBuffer[] opsional
Jika diberikan,
selectClientCertificates
beroperasi pada daftar ini. Jika tidak, Anda akan mendapatkan daftar semua sertifikat dari penyimpanan sertifikat platform yang tersedia untuk ekstensi ini. Entri yang izinnya tidak dimiliki oleh ekstensi atau tidak cocok dengan permintaan akan dihapus. -
interaktif
boolean
Jika true (benar), daftar yang difilter akan ditampilkan kepada pengguna untuk memilih sertifikat secara manual, sehingga memberi ekstensi akses ke sertifikat dan kunci. Hanya sertifikat yang dipilih yang akan dikembalikan. Jika nilainya salah, daftar akan dikurangi menjadi semua sertifikat yang dapat diakses oleh ekstensi (secara otomatis atau manual).
-
minta
Hanya sertifikat yang cocok dengan permintaan ini yang akan ditampilkan.
VerificationDetails
Properti
-
hostname
string
Nama host server yang sertifikatnya akan diverifikasi, mis. server yang menampilkan
serverCertificateChain
. -
serverCertificateChain
ArrayBuffer[]
Setiap entri rantai harus berupa encoding DER sertifikat X.509, entri pertama harus berupa sertifikat server dan setiap entri harus menyatakan entri yang mendahuluinya.
VerificationResult
Properti
-
debug_errors
{i>string<i}[]
Jika verifikasi kepercayaan gagal, array ini berisi error yang dilaporkan oleh lapisan jaringan pokok. Jika tidak, array ini akan kosong.
Catatan: Daftar ini hanya dimaksudkan untuk proses debug dan mungkin tidak berisi semua error yang relevan. Error yang ditampilkan dapat berubah dalam revisi API ini di masa mendatang, dan tidak dijamin memiliki kompatibilitas maju atau mundur.
-
tepercaya
boolean
Hasil verifikasi kepercayaan: benar jika kepercayaan untuk detail verifikasi yang diberikan dapat diperoleh, dan salah jika kepercayaan ditolak karena alasan apa pun.
Metode
getKeyPair()
chrome.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
)
Meneruskan pasangan kunci certificate
untuk digunakan dengan platformKeys.subtleCrypto
ke callback
.
Parameter
-
sertifikat
ArrayBuffer
Sertifikat
Match
yang ditampilkan olehselectClientCertificates
. -
parameter
objek
Menentukan parameter algoritma tanda tangan/hash selain parameter yang ditetapkan oleh kunci itu sendiri. Parameter yang sama diterima oleh fungsi importKey WebCrypto, misalnya
RsaHashedImportParams
untuk kunci RSASSA-PKCS1-v1_5 danEcKeyImportParams
untuk kunci EC. Selain itu untuk kunci RSASSA-PKCS1-v1_5, parameter nama algoritma hashing dapat ditentukan dengan salah satu nilai berikut: "none", "SHA-1", "SHA-256", "SHA-384", atau "SHA-512", misalnya{"hash": { "name": "none" } }
. Fungsi tanda kemudian akan menerapkan padding PKCS#1 v1.5 tetapi tidak melakukan hashing pada data yang diberikan.Saat ini, metode ini hanya mendukung "RSASSA-PKCS1-v1_5" dan "ECDSA" algoritme.
-
callback
fungsi
Parameter
callback
terlihat seperti ini:(publicKey: object, privateKey?: object) => void
-
publicKey
objek
-
privateKey
objek opsional
Mungkin
null
jika ekstensi ini tidak memiliki akses ke ekstensi.
-
getKeyPairBySpki()
chrome.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
)
Meneruskan pasangan kunci yang diidentifikasi oleh publicKeySpkiDer
untuk digunakan dengan platformKeys.subtleCrypto
ke callback
.
Parameter
-
publicKeySpkiDer
ArrayBuffer
X.509 SubjectPublicKeyInfo yang dienkode dengan DER, diperoleh, misalnya dengan memanggil fungsi exportKey WebCrypto dengan format="spki".
-
parameter
objek
Memberikan parameter tanda tangan dan algoritma hash, selain yang diperbaiki oleh kunci itu sendiri. Parameter yang sama diterima oleh fungsi importKey WebCrypto, misalnya
RsaHashedImportParams
untuk kunci RSASSA-PKCS1-v1_5. Untuk kunci RSASSA-PKCS1-v1_5, kita juga harus meneruskan "hash" parameter{ "hash": { "name": string } }
. "Hash" mewakili nama algoritma {i>hashing <i}yang akan digunakan dalam operasi {i>digest<i} sebelum sebuah tanda. Anda dapat meneruskan "none" sebagai nama hash, dalam hal ini fungsi tanda akan menerapkan padding PKCS#1 v1.5 dan tidak melakukan hashing pada data yang diberikan.Saat ini, metode ini mendukung "ECDSA" Algoritma dengan kurva bernama P-256 dan “RSASSA-PKCS1-v1_5” algoritma dengan salah satu algoritma hashing "none", "SHA-1", "SHA-256", "SHA-384", dan "SHA-512".
-
callback
fungsi
Parameter
callback
terlihat seperti ini:(publicKey: object, privateKey?: object) => void
-
publicKey
objek
-
privateKey
objek opsional
Mungkin
null
jika ekstensi ini tidak memiliki akses ke ekstensi.
-
selectClientCertificates()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
callback?: function,
)
Metode ini memfilter dari daftar sertifikat klien yang diketahui platform, cocok dengan request
dan yang izinnya dimiliki ekstensi untuk mengakses sertifikat serta kunci pribadinya. Jika interactive
bernilai benar, pengguna akan melihat dialog tempat mereka dapat memilih dari sertifikat yang cocok dan memberi ekstensi akses ke sertifikat. Sertifikat klien yang dipilih/difilter akan diteruskan ke callback
.
Parameter
-
detail
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(matches: Match[]) => void
-
cocok
Daftar sertifikat yang cocok dengan permintaan, yang izinnya dimiliki ekstensi dan, jika
interactive
benar, yang dipilih oleh pengguna.
-
Hasil
-
Promise<Match[]>
Chrome 121 dan yang lebih baruPromise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.
subtleCrypto()
chrome.platformKeys.subtleCrypto()
Implementasi SubtleCrypto WebCrypto yang memungkinkan operasi kripto pada kunci sertifikat klien yang tersedia untuk ekstensi ini.
Hasil
-
object | tidak ditentukan
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
)
Memeriksa apakah details.serverCertificateChain
dapat dipercaya untuk details.hostname
sesuai dengan setelan kepercayaan platform. Catatan: Perilaku sebenarnya dari verifikasi kepercayaan tidak sepenuhnya ditentukan dan dapat berubah di masa mendatang. Penerapan API akan memverifikasi masa berlaku sertifikat, memvalidasi jalur sertifikasi, dan memeriksa kepercayaan oleh CA yang dikenal. Implementasi ini harus mematuhi EKU serverAuth dan mendukung nama alternatif subjek.
Parameter
-
detail
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(result: VerificationResult) => void
-
hasil
-
Hasil
-
Promise<VerificationResult>
Chrome 121 dan yang lebih baruPromise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Tujuan promise yang di-resolve dengan jenis yang sama dengan yang diteruskan ke callback.