refresh date: 2026-09-25 robots: noindex
Description
Utilisez l'API chrome.platformKeys pour accéder aux certificats client gérés par la plate-forme. Si l'utilisateur ou la règle accorde l'autorisation, une extension peut utiliser un tel certificat dans son protocole d'authentification personnalisé. Par exemple, cela permet d'utiliser des certificats gérés par la plate-forme dans des VPN tiers (voir chrome.vpnProvider).
Autorisations
platformKeysDisponibilité
Types
ClientCertificateRequest
Propriétés
-
certificateAuthorities
ArrayBuffer[]
Liste des noms distinctifs des autorités de certification autorisées par le serveur. Chaque entrée doit être un DistinguishedName X.509 encodé en DER.
-
certificateTypes
Ce champ est une liste des types de certificats demandés, triés par ordre de préférence du serveur. Seuls les certificats d'un type contenu dans cette liste seront récupérés. Toutefois, si
certificateTypesest une liste vide, les certificats de n'importe quel type seront renvoyés.
ClientCertificateType
Énumération
"rsaSign"
"ecdsaSign"
Match
Propriétés
-
certificat
ArrayBuffer
Encodage DER d'un certificat X.509.
-
keyAlgorithm
objet
KeyAlgorithm de la clé certifiée. Il contient les paramètres d'algorithme inhérents à la clé du certificat (par exemple, la longueur de la clé). Les autres paramètres, tels que la fonction de hachage utilisée par la fonction de signature, ne sont pas inclus.
SelectDetails
Propriétés
-
clientCerts
ArrayBuffer[] facultatif
Si elle est fournie,
selectClientCertificatesopère sur cette liste. Sinon, obtient la liste de tous les certificats des magasins de certificats de la plate-forme qui sont disponibles pour cette extension. Les entrées pour lesquelles l'extension n'a pas d'autorisation ou qui ne correspondent pas à la requête sont supprimées. -
interactive
booléen
Si la valeur est "true", la liste filtrée est présentée à l'utilisateur pour qu'il sélectionne manuellement un certificat, ce qui permet à l'extension d'accéder au(x) certificat(s) et à la ou aux clés. Seuls les certificats sélectionnés seront renvoyés. Si la valeur est "false", la liste est réduite à tous les certificats auxquels l'extension a été autorisée à accéder (automatiquement ou manuellement).
-
request
Seuls les certificats correspondant à cette requête seront renvoyés.
VerificationDetails
Propriétés
-
nom d'hôte
chaîne
Nom d'hôte du serveur pour lequel valider le certificat, par exemple le serveur qui a présenté le
serverCertificateChain. -
serverCertificateChain
ArrayBuffer[]
Chaque entrée de la chaîne doit être l'encodage DER d'un certificat X.509. La première entrée doit être le certificat du serveur, et chaque entrée doit certifier l'entrée qui la précède.
VerificationResult
Propriétés
-
debug_errors
chaîne[]
Si la validation de la confiance a échoué, ce tableau contient les erreurs signalées par la couche réseau sous-jacente. Sinon, ce tableau est vide.
Remarque : Cette liste est destinée au débogage uniquement et peut ne pas contenir toutes les erreurs pertinentes. Les erreurs renvoyées peuvent changer dans les futures révisions de cette API, et leur compatibilité ascendante ou rétrocompatible n'est pas garantie.
-
fiable
booléen
Résultat de la validation de la confiance : "true" si la confiance a pu être établie pour les détails de validation donnés, et "false" si la confiance est rejetée pour une raison quelconque.
Méthodes
getKeyPair()
chrome.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
): void
Transmet la paire de clés de certificate à callback pour l'utiliser avec platformKeys.subtleCrypto.
Paramètres
-
certificat
ArrayBuffer
Le certificat d'un
Matchrenvoyé parselectClientCertificates. -
paramètres
objet
Détermine les paramètres de l'algorithme de signature/hachage en plus des paramètres fixés par la clé elle-même. Les mêmes paramètres sont acceptés que par la fonction importKey de WebCrypto, par exemple
RsaHashedImportParamspour une clé RSASSA-PKCS1-v1_5 etEcKeyImportParamspour une clé EC. De plus, pour les clés RSASSA-PKCS1-v1_5, le paramètre de nom de l'algorithme de hachage peut être spécifié avec l'une des valeurs suivantes : "none", "SHA-1", "SHA-256", "SHA-384" ou "SHA-512", par exemple{"hash": { "name": "none" } }. La fonction de signature appliquera ensuite le remplissage PKCS#1 v1.5, mais ne hachera pas les données fournies.Actuellement, cette méthode n'est compatible qu'avec les algorithmes "RSASSA-PKCS1-v1_5" et "ECDSA".
-
callback
fonction
Le paramètre
callbackse présente comme suit :(publicKey: object, privateKey?: object) => void
-
publicKey
objet
-
privateKey
objet facultatif
Peut être
nullsi cette extension n'y a pas accès.
-
getKeyPairBySpki()
chrome.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
): void
Transmet la paire de clés identifiée par publicKeySpkiDer à callback pour l'utiliser avec platformKeys.subtleCrypto.
Paramètres
-
publicKeySpkiDer
ArrayBuffer
SubjectPublicKeyInfo X.509 encodé au format DER, obtenu par exemple en appelant la fonction exportKey de WebCrypto avec format="spki".
-
paramètres
objet
Fournit des paramètres d'algorithme de signature et de hachage, en plus de ceux fixés par la clé elle-même. Les mêmes paramètres sont acceptés que par la fonction importKey de WebCrypto, par exemple
RsaHashedImportParamspour une clé RSASSA-PKCS1-v1_5. Pour les clés RSASSA-PKCS1-v1_5, nous devons également transmettre un paramètre "hash"{ "hash": { "name": string } }. Le paramètre "hash" représente le nom de l'algorithme de hachage à utiliser dans l'opération de condensé avant une signature. Il est possible de transmettre "none" comme nom de hachage. Dans ce cas, la fonction de signature applique le remplissage PKCS#1 v1.5, mais ne hache pas les données fournies.Actuellement, cette méthode est compatible avec l'algorithme "ECDSA" avec la courbe nommée P-256 et l'algorithme "RSASSA-PKCS1-v1_5" avec l'un des algorithmes de hachage "none", "SHA-1", "SHA-256", "SHA-384" et "SHA-512".
-
callback
fonction
Le paramètre
callbackse présente comme suit :(publicKey: object, privateKey?: object) => void
-
publicKey
objet
-
privateKey
objet facultatif
Peut être
nullsi cette extension n'y a pas accès.
-
selectClientCertificates()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
callback?: function,
): Promise<Match[]>
Cette méthode filtre, à partir d'une liste de certificats client, ceux qui sont connus de la plate-forme, qui correspondent à request et pour lesquels l'extension est autorisée à accéder au certificat et à sa clé privée. Si interactive est défini sur "true", une boîte de dialogue s'affiche pour permettre à l'utilisateur de sélectionner un certificat correspondant et d'accorder à l'extension l'accès à ce certificat. Les certificats client sélectionnés/filtrés seront transmis à callback.
Paramètres
-
détails
-
callback
function facultatif
Le paramètre
callbackse présente comme suit :(matches: Match[]) => void
-
correspond à
Match[]
Liste des certificats correspondant à la requête, pour lesquels l'extension dispose d'une autorisation et, si
interactiveest défini sur "true", qui ont été sélectionnés par l'utilisateur.
-
Renvoie
-
Promise<Match[]>
Chrome 121 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
subtleCrypto()
chrome.platformKeys.subtleCrypto(): object | undefined
Implémentation de SubtleCrypto de WebCrypto qui permet d'effectuer des opérations de chiffrement sur les clés des certificats client disponibles pour cette extension.
Renvoie
-
object | undefined
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
): Promise<VerificationResult>
Vérifie si details.serverCertificateChain est digne de confiance pour details.hostname selon les paramètres de confiance de la plate-forme. Remarque : Le comportement réel de la validation de la confiance n'est pas entièrement spécifié et peut changer à l'avenir. L'implémentation de l'API vérifie l'expiration du certificat, valide le chemin de certification et vérifie la confiance par une autorité de certification connue. L'implémentation doit respecter l'EKU serverAuth et accepter les autres noms de l'objet.
Paramètres
-
détails
-
callback
function facultatif
Le paramètre
callbackse présente comme suit :(result: VerificationResult) => void
-
résultat
-
Renvoie
-
Promise<VerificationResult>
Chrome 121 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.