chrome.platformKeys

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 les VPN tiers (voir chrome.vpnProvider).

Autorisations

platformKeys

Garantie de disponibilité

Chrome 45 et versions ultérieures ChromeOS uniquement

Types

ClientCertificateRequest

Propriétés

  • certificateAuthorities

    ArrayBuffer[]

    Liste des noms distincts des autorités de certification autorisées par le serveur. Chaque entrée doit correspondre à un nom distinctif X.509 encodé au format DER.

  • certificateTypes

    Ce champ liste les types de certificats demandés, triés par ordre de préférence du serveur. Seuls les certificats d'un type figurant dans cette liste seront récupérés. Toutefois, si la liste vide est certificateTypes, tous les types de certificats sont renvoyés.

ClientCertificateType

Enum

"rsaSign"

"ecdsaSign"

Match

Propriétés

  • certificat

    ArrayBuffer

    Encodage DER d'un certificat X.509.

  • keyAlgorithm

    objet

    Valeur 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é). D'autres paramètres tels que la fonction de hachage utilisée par la fonction Sign ne sont pas inclus.

SelectDetails

Propriétés

  • clientCerts

    ArrayBuffer[] facultatif

    S'il est fourni, selectClientCertificates opère 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'est pas autorisée ou qui ne correspondent pas à la demande sont supprimées.

  • interactive

    boolean

    Si la valeur est "true", l'utilisateur peut sélectionner manuellement un certificat dans la liste filtrée, ce qui permet à l'extension d'accéder aux certificats et aux clés. Seuls les certificats sélectionnés vous 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).

  • 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é le 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 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 uniquement au débogage et peut ne pas contenir toutes les erreurs pertinentes. Les erreurs renvoyées peuvent changer dans les futures révisions de cette API, et il n'est pas garanti qu'elles soient rétrocompatibles ou avancées.

  • fiable

    boolean

    Résultat de la vérification de l'approbation : "true" si la confiance a pu être établie pour les informations de validation données, et "false" si la confiance 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'un Match renvoyé par selectClientCertificates.

  • 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 par la fonction importKey de WebCrypto (par exemple, RsaHashedImportParams pour une clé RSASSA-PKCS1-v1_5 et EcKeyImportParams pour une clé EC). En outre, 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 "sign" applique ensuite un remplissage PKCS#1 v1.5, mais ne hache pas les données données.

    Actuellement, cette méthode n'est compatible qu'avec les algorithmes "RSASSA-PKCS1-v1_5" et "ECDSA".

  • rappel

    function

    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 85 et versions ultérieures
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

    SubjectPublicKeyInfo 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 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 de hachage { "hash": { "name": string } }. Le paramètre "hash" 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 appliquera le remplissage PKCS#1 v1.5 sans hacher les données en question.

    Cette méthode est actuellement 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".

  • rappel

    function

    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()

Promesse
chrome.platformKeys.selectClientCertificates(
  details: SelectDetails,
  callback?: function,
)

Cette méthode permet de filtrer dans 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 dans laquelle l'utilisateur peut sélectionner un certificat correspondant 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

    fonction facultative

    Le paramètre callback se présente comme suit :

    (matches: Match[])=>void

    • correspondances

      Liste des certificats correspondant à la requête, pour lesquels l'extension est autorisée et, si interactive est défini sur "true", qui ont été sélectionnés par l'utilisateur.

Renvoie

  • Promise<Match[]>

    Chrome 121 et versions ultérieures

    Les promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse est résolue avec le même type que celui transmis au rappel.

subtleCrypto()

chrome.platformKeys.subtleCrypto()

Implémentation du SubtleCrypto de WebCrypto qui permet les opérations de cryptographie sur les clés de certificats client disponibles pour cette extension.

Renvoie

  • objet|non défini

verifyTLSServerCertificate()

Promesse
chrome.platformKeys.verifyTLSServerCertificate(
  details: VerificationDetails,
  callback?: function,
)

Vérifie si details.serverCertificateChain peut être approuvé pour details.hostname en fonction des paramètres de confiance de la plate-forme. Remarque: Le comportement réel de la validation de l'authentification n'est pas entièrement spécifié et est susceptible de changer à l'avenir. L'implémentation de l'API vérifie l'expiration du certificat, valide le chemin de certification et vérifie l'approbation par une autorité de certification connue. L'implémentation est censée respecter le serverAuth EKU et accepter les autres noms d'objet.

Paramètres

Renvoie

  • Chrome 121 et versions ultérieures

    Les promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse est résolue avec le même type que celui transmis au rappel.