Description
Utilisez l'API chrome.platformKeys
pour accéder aux certificats client gérés par la plate-forme. Si l'utilisateur ou les règles l'autorisent, une extension peut utiliser un tel certificat dans son protocole d'authentification personnalisé. Par exemple, les certificats gérés par la plate-forme peuvent alors être utilisés dans les VPN tiers (voir chrome.vpnProvider).
Autorisations
platformKeys
Disponibilité
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é au format DER.
-
certificateTypes
Ce champ est une liste des types de certificats demandés, triés selon les préférences du serveur. Seuls les certificats d'un type figurant dans cette liste seront récupérés. Toutefois, si
certificateTypes
est 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é). D'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 spécifiée, la
selectClientCertificates
s'applique à 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 l'autorisation ou qui ne correspondent pas à la demande 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 accorde à l'extension l'accès aux certificats et 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 demande seront renvoyés.
VerificationDetails
Propriétés
-
nom d'hôte
chaîne
Nom d'hôte du serveur pour lequel le certificat doit être validé (par exemple, le serveur qui a présenté
serverCertificateChain
). -
serverCertificateChain
ArrayBuffer[]
Chaque entrée de la chaîne doit correspondre à 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 ne sont pas garanties d'être compatibles avec les versions ultérieures ou antérieures.
-
fiable
booléen
Résultat de la validation de la fiabilité : "true" si la fiabilité pour les informations de validation données a pu être établie, et "false" si la fiabilité est refusé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
pour l'utiliser avec platformKeys.subtleCrypto
à callback
.
Paramètres
-
certificat
ArrayBuffer
Certificat d'un
Match
renvoyé parselectClientCertificates
. -
paramètres
objet
Détermine les paramètres de l'algorithme de signature/de 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
RsaHashedImportParams
pour une clé RSASSA-PKCS1-v1_5 etEcKeyImportParams
pour une clé EC. De plus, pour les clés RSASSA-PKCS1-v1_5, le paramètre de nom d'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
callback
se présente comme suit :(publicKey: object, privateKey?: object) => void
-
publicKey
objet
-
privateKey
object facultatif
Peut être
null
si 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
pour l'utilisation avec platformKeys.subtleCrypto
à callback
.
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
RsaHashedImportParams
pour 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 appliquera un remplissage PKCS#1 v1.5, mais ne hachera 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
callback
se présente comme suit :(publicKey: object, privateKey?: object) => void
-
publicKey
objet
-
privateKey
object facultatif
Peut être
null
si cette extension n'y a pas accès.
-
selectClientCertificates()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
): Promise<Match[]>
Cette méthode filtre une liste de certificats client pour ne conserver que 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
Renvoie
-
Promise<Match[]>
Chrome 121 et versions ultérieures
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,
): Promise<VerificationResult>
Vérifie si details.serverCertificateChain
peut être considéré comme fiable 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 accordée par une autorité de certification connue. L'implémentation est censée respecter l'EKU serverAuth et accepter les noms d'objet de remplacement.
Paramètres
-
détails
Renvoie
-
Promise<VerificationResult>
Chrome 121 et versions ultérieures