chrome.platformKeys

refresh date: 2026-09-25 robots: noindex

Beschrijving

Gebruik de chrome.platformKeys API om toegang te krijgen tot clientcertificaten die door het platform worden beheerd. Als de gebruiker of het beleid het recht verleent, kan een extensie een dergelijk certificaat gebruiken in het aangepaste verificatieprotocol. Zo kunnen door het platform beheerde certificaten worden gebruikt in VPN's van derden (zie chrome.vpnProvider).

Rechten

platformKeys

Beschikbaarheid

Chrome 45 of hoger Alleen ChromeOS

Typen

ClientCertificateRequest

Eigenschappen

  • certificateAuthorities

    ArrayBuffer[]

    Lijst met DN-namen (Distinguished Names) van certificeringsinstanties die zijn toegestaan door de server. Elke invoer moet een DER-gecodeerde X.509 DistinguishedName zijn.

  • certificateTypes

    Dit veld is een lijst met de typen certificaten die zijn aangevraagd, gesorteerd op de voorkeur van de server. Alleen certificaten van een type dat in deze lijst staat, worden opgehaald. Als certificateTypes de lege lijst is, worden er certificaten van elk type geretourneerd.

ClientCertificateType

Enum

"rsaSign"

"ecdsaSign"

Match

Eigenschappen

  • certificaat

    ArrayBuffer

    De DER-codering van een X.509-certificaat.

  • keyAlgorithm

    object

    Het KeyAlgorithm van de gecertificeerde sleutel. Dit bevat algoritmeparameters die inherent zijn aan de sleutel van het certificaat (bijvoorbeeld de sleutellengte). Andere parameters, zoals de hash-functie die wordt gebruikt door de sign-functie, zijn niet opgenomen.

SelectDetails

Eigenschappen

  • clientCerts

    ArrayBuffer[] optioneel

    Als je een lijst invoert, werkt de selectClientCertificates op deze lijst. Anders wordt de lijst met alle certificaten uit de certificaatopslag van het platform opgehaald die beschikbaar zijn voor deze extensies. Invoeren waarvoor de extensie geen rechten heeft of die niet overeenkomen met het verzoek, worden verwijderd.

  • interactief

    booleaans

    Als je dit instelt op True, wordt de gefilterde lijst aan de gebruiker getoond, zodat deze handmatig een certificaat kan selecteren en de extensie toegang kan geven tot de certificaten en sleutels. Alleen de geselecteerde certificaten worden geretourneerd. Als de waarde onwaar is, wordt de lijst beperkt tot alle certificaten waartoe de extensie toegang heeft gekregen (automatisch of handmatig).

  • Alleen certificaten die overeenkomen met dit verzoek worden geretourneerd.

VerificationDetails

Eigenschappen

  • hostname

    tekenreeks

    De hostnaam van de server waarvoor het certificaat moet worden geverifieerd, bijvoorbeeld de server die de serverCertificateChain heeft gepresenteerd.

  • serverCertificateChain

    ArrayBuffer[]

    Elke keteninvoer moet de DER-codering van een X.509-certificaat zijn. De eerste invoer moet het servercertificaat zijn en elke invoer moet de invoer ervoor certificeren.

VerificationResult

Eigenschappen

  • debug_errors

    tekenreeks[]

    Als de vertrouwensverificatie is mislukt, bevat deze matrix de fouten die zijn gerapporteerd door de onderliggende netwerklaag. Anders is deze matrix leeg.

    Opmerking: Deze lijst is alleen bedoeld voor foutopsporing en bevat misschien niet alle relevante fouten. De geretourneerde fouten kunnen veranderen in toekomstige revisies van deze API en zijn niet gegarandeerd compatibel met eerdere of latere versies.

  • vertrouwd

    booleaans

    Het resultaat van de vertrouwensverificatie: waar als het vertrouwen voor de opgegeven verificatiegegevens kan worden vastgesteld en onwaar als het vertrouwen om welke reden dan ook wordt afgewezen.

Methoden

getKeyPair()

chrome.platformKeys.getKeyPair(
  certificate: ArrayBuffer,
  parameters: object,
  callback: function,
)
: void

Geeft het sleutelpaar van certificate door aan callback voor gebruik met platformKeys.subtleCrypto.

Parameters

  • certificaat

    ArrayBuffer

    Het certificaat van een Match dat is geretourneerd door selectClientCertificates.

  • parameters

    object

    Bepaalt de parameters van het handtekening-/hash-algoritme naast de parameters die door de sleutel zelf zijn vastgelegd. Dezelfde parameters worden geaccepteerd als door de functie importKey van WebCrypto, bijvoorbeeld RsaHashedImportParams voor een RSASSA-PKCS1-v1_5-sleutel en EcKeyImportParams voor een EC-sleutel. Voor RSASSA-PKCS1-v1_5-sleutels kan de parameter voor de naam van het hash-algoritme worden gespecificeerd met een van de volgende waarden: none, SHA-1, SHA-256, SHA-384 of SHA-512, bijvoorbeeld {"hash": { "name": "none" } }. De sign-functie past dan PKCS#1 v1.5-opvulling toe, maar hasht de aangeleverde gegevens niet.

    Op dit moment ondersteunt deze methode alleen de algoritmen RSASSA-PKCS1-v1_5 en ECDSA.

  • callback

    functie

    De parameter callback ziet er zo uit:

    (publicKey: object, privateKey?: object) => void

    • publicKey

      object

    • privateKey

      object optioneel

      Kan null zijn als deze extensie geen toegang heeft tot de URL.

getKeyPairBySpki()

Chrome 85+
chrome.platformKeys.getKeyPairBySpki(
  publicKeySpkiDer: ArrayBuffer,
  parameters: object,
  callback: function,
)
: void

Geeft het sleutelpaar dat wordt geïdentificeerd door publicKeySpkiDer door voor gebruik met platformKeys.subtleCrypto aan callback.

Parameters

  • publicKeySpkiDer

    ArrayBuffer

    Een DER-gecodeerde X.509 SubjectPublicKeyInfo, bijvoorbeeld verkregen door de functie exportKey van WebCrypto aan te roepen met format="spki".

  • parameters

    object

    Biedt parameters voor handtekening- en hash-algoritmen, naast de parameters die door de sleutel zelf zijn vastgelegd. Dezelfde parameters worden geaccepteerd als door de functie importKey van WebCrypto, bijvoorbeeld RsaHashedImportParams voor een RSASSA-PKCS1-v1_5-sleutel. Voor RSASSA-PKCS1-v1_5-sleutels moeten we ook een hash-parameter { "hash": { "name": string } } doorgeven. De parameter 'hash' staat voor de naam van het hash-algoritme dat moet worden gebruikt in de digest-bewerking vóór een teken. Je kunt 'none' doorgeven als de hash-naam. In dat geval past de sign-functie PKCS#1 v1.5-opvulling toe, maar wordt de hash van de gegeven gegevens niet berekend.

    Deze methode ondersteunt op dit moment het ECDSA-algoritme met de benoemde curve P-256 en het RSASSA-PKCS1-v1_5-algoritme met een van de hash-algoritmen none, SHA-1, SHA-256, SHA-384 en SHA-512.

  • callback

    functie

    De parameter callback ziet er zo uit:

    (publicKey: object, privateKey?: object) => void

    • publicKey

      object

    • privateKey

      object optioneel

      Kan null zijn als deze extensie geen toegang heeft tot de URL.

selectClientCertificates()

Promise
chrome.platformKeys.selectClientCertificates(
  details: SelectDetails,
  callback?: function,
)
: Promise<Match[]>

Met deze methode worden uit een lijst met clientcertificaten de certificaten gefilterd die bekend zijn bij het platform, overeenkomen met request en waarvoor de extensie rechten heeft om toegang te krijgen tot het certificaat en de privésleutel. Als interactive waar is, krijgt de gebruiker een dialoogvenster waarin die een keuze kan maken uit overeenkomende certificaten en de extensie toegang kan geven tot het certificaat. De geselecteerde/gefilterde clientcertificaten worden doorgegeven aan callback.

Parameters

  • details
  • callback

    functie optioneel

    De parameter callback ziet er zo uit:

    (matches: Match[]) => void

    • komt overeen

      De lijst met certificaten die overeenkomen met het verzoek, waarvoor de extensie rechten heeft en die door de gebruiker zijn geselecteerd als interactive waar is.

Retourzendingen

  • Promise<Match[]>

    Chrome 121 of hoger

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

subtleCrypto()

chrome.platformKeys.subtleCrypto(): object | undefined

Een implementatie van WebCrypto's SubtleCrypto die cryptobewerkingen toestaat op sleutels van clientcertificaten die beschikbaar zijn voor deze extensie.

Retourzendingen

  • object | undefined

verifyTLSServerCertificate()

Promise
chrome.platformKeys.verifyTLSServerCertificate(
  details: VerificationDetails,
  callback?: function,
)
: Promise<VerificationResult>

Controleert of details.serverCertificateChain kan worden vertrouwd voor details.hostname volgens de vertrouwensinstellingen van het platform. Opmerking: Het daadwerkelijke gedrag van de vertrouwensverificatie is niet volledig gespecificeerd en kan in de toekomst veranderen. De API-implementatie verifieert de vervaldatum van het certificaat, valideert het certificeringspad en controleert het vertrouwen door een bekende CA. De implementatie moet de EKU serverAuth respecteren en alternatieve namen voor het onderwerp ondersteunen.

Parameters

Retourzendingen

  • Chrome 121 of hoger

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.