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é. 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é

Chrome 45 ou version ultérieure ChromeOS uniquement

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

  • 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é 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 que la fonction importKey de WebCrypto sont acceptés.Ex. : RsaHashedImportParams pour une clé RSASSA-PKCS1-v1_5 et EcKeyImportParams 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 85 ou version ultérieure
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()

<ph type="x-smartling-placeholder"></ph> Promesse
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érieure

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

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

<ph type="x-smartling-placeholder"></ph> Promesse
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

Renvoie

  • Promise&lt;VerificationResult&gt;

    Chrome 121 ou version ultérieure

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