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é. Exemple : cette option permet d'utiliser des certificats gérés par la plate-forme dans des 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 nom distinctif X.509 codé DER.
-
certificateTypes
Ce champ répertorie les types de certificats demandés, triés par ordre de préférence du serveur. Seuls les certificats figurant dans cette liste seront récupérés. Toutefois, si
certificateTypes
est la liste vide, tous les types de certificats sont 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 des 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 indiquée,
selectClientCertificates
agit sur cette liste. Sinon, obtient la liste de tous les certificats à partir des magasins de certificats de la plate-forme 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. Il peut sélectionner manuellement un certificat et accorder ainsi à l'extension l'accès aux certificats et 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 accès (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 vérifier le certificat, par exemple le serveur qui a présenté
serverCertificateChain
. -
serverCertificateChain
ArrayBuffer[]
Chaque entrée de 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 vérification de l'approbation échoue, 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 uniquement au débogage. Il se peut qu'elle ne contienne pas toutes les erreurs pertinentes. Les erreurs renvoyées peuvent changer dans les futures révisions de cette API. Il n'est pas garanti qu'elles soient rétrocompatibles ou rétrocompatibles.
-
fiable
booléen
Le résultat de la vérification de la confiance est "true" si la confiance pour les informations de validation données a pu être établie et "false" si elle est rejetée pour une raison quelconque.
Méthodes
getKeyPair()
chrome.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
)
Transmet la paire de clés certificate
à utiliser avec platformKeys.subtleCrypto
à callback
.
Paramètres
-
certificat
ArrayBuffer
Certificat d'une
Match
renvoyé 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 que la fonction importKey de WebCrypto sont acceptés.Ex. :
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 du 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".{"hash": { "name": "none" } }
La fonction de signature appliquera ensuite le remplissage PKCS#1 v1.5, mais ne hachera pas les données données.Actuellement, cette méthode n'accepte que la version "RSASSA-PKCS1-v1_5" et "ECDSA" algorithmes.
-
rappel
fonction
Le paramètre
callback
se présente comme suit:(publicKey: object, privateKey?: object) => void
-
publicKey
objet
-
privateKey
objet facultatif
Peut être
null
si cette extension n'y a pas accès.
-
getKeyPairBySpki()
chrome.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
)
Transmet la paire de clés identifiée par publicKeySpkiDer
pour une utilisation avec platformKeys.subtleCrypto
à callback
.
Paramètres
-
publicKeySpkiDer
ArrayBuffer
Élément 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 de signature et de hachage de l'algorithme, en plus de ceux fixés par la clé elle-même. Les mêmes paramètres que la fonction importKey de WebCrypto sont acceptés.Ex. :
RsaHashedImportParams
pour une clé RSASSA-PKCS1-v1_5. Pour les clés RSASSA-PKCS1-v1_5, nous devons également transmettre un "hachage" paramètre{ "hash": { "name": string } }
. Le "hachage" représente le nom de l'algorithme de hachage à utiliser dans l'opération de condensé avant un signe. Il est possible de transmettre "none" comme nom de hachage. Dans ce cas, la fonction de signature applique une marge intérieure PKCS#1 v1.5, mais ne hache pas les données données.Actuellement, cette méthode accepte l'algorithme "ECDSA" algorithme avec la courbe nommée P-256 et "RSASSA-PKCS1-v1_5" avec l'un des algorithmes de hachage "none", "SHA-1", "SHA-256", "SHA-384" ou "SHA-512".
-
rappel
fonction
Le paramètre
callback
se présente comme suit:(publicKey: object, privateKey?: object) => void
-
publicKey
objet
-
privateKey
objet facultatif
Peut être
null
si cette extension n'y a pas accès.
-
selectClientCertificates()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
callback?: function,
)
Cette méthode filtre à partir d'une liste de certificats clients, ceux qui sont connus de la plate-forme, 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. L'utilisateur peut alors sélectionner des certificats correspondants et accorder à l'extension l'accès au certificat. Les certificats client sélectionnés/filtrés seront transmis à callback
.
Paramètres
-
détails
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(matches: Match[]) => void
-
correspond à
Liste des certificats correspondant à la requête, pour lesquels l'extension dispose de l'autorisation et, si
interactive
est défini sur "true", qui ont été sélectionnés par l'utilisateur.
-
Renvoie
-
Promesse<Correspondance[]>
Chrome 121 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
subtleCrypto()
chrome.platformKeys.subtleCrypto()
Implémentation de la fonctionnalité SubtleCrypto de WebCrypto, qui permet d'effectuer des opérations de chiffrement sur des clés de certificats client disponibles pour cette extension.
Renvoie
-
object | indéfinie
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
)
Vérifie si details.serverCertificateChain
peut être approuvé pour details.hostname
selon les paramètres de confiance de la plate-forme. Remarque: Le comportement réel de la vérification de confiance n'est pas entièrement spécifié et est susceptible de changer par la suite. La mise en œuvre de l'API vérifie l'expiration du certificat, le chemin de certification et la confiance d'une autorité de certification connue. L'implémentation est censée respecter l'EKU serverAuth et accepter les autres noms d'objet.
Paramètres
-
détails
-
rappel
function facultatif
Le paramètre
callback
se 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 versions ultérieures. Les autres plates-formes doivent utiliser des rappels.