chrome.platformtoetsen

Vernieuwingsdatum: 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 de toestemming verleent, kan een extensie een dergelijk certificaat gebruiken in zijn eigen authenticatieprotocol. Dit maakt bijvoorbeeld het gebruik van door het platform beheerde certificaten in VPN's van derden mogelijk (zie chrome.vpnProvider ).

Toestemmingen

platformKeys

Beschikbaarheid

Chrome 45+ Alleen voor ChromeOS

Soorten

ClientCertificateRequest

Eigenschappen

  • certificeringsinstanties

    ArrayBuffer[]

    Lijst met distinguished names van certificeringsinstanties die door de server zijn toegestaan. Elke vermelding moet een DER-gecodeerde X.509 DistinguishedName zijn.

  • certificaattypen

    Dit veld bevat een lijst met de gevraagde certificaattypen, gesorteerd op de voorkeur van de server. Alleen certificaten van een type dat in deze lijst voorkomt, worden opgehaald. Als certificateTypes echter leeg is, worden certificaten van elk type geretourneerd.

ClientCertificateType

Enum

"rsaSign"

"ecdsaSign"

Match

Eigenschappen

  • certificaat

    ArrayBuffer

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

  • sleutelalgoritme

    voorwerp

    Het sleutelalgoritme van de gecertificeerde sleutel. Dit bevat algoritme-parameters die inherent zijn aan de sleutel van het certificaat (bijvoorbeeld de sleutellengte). Andere parameters, zoals de hashfunctie die door de ondertekeningsfunctie wordt gebruikt, zijn niet inbegrepen.

SelectDetails

Eigenschappen

  • clientCerts

    ArrayBuffer[] optioneel

    Indien opgegeven, werkt selectClientCertificates met deze lijst. Anders wordt de lijst met alle certificaten uit de certificaatarchieven van het platform opgehaald die beschikbaar zijn voor deze extensie. Vermeldingen waarvoor de extensie geen toestemming heeft of die niet overeenkomen met het verzoek, worden verwijderd.

  • interactieve

    booleaans

    Indien waar, wordt de gefilterde lijst aan de gebruiker getoond, zodat deze handmatig een certificaat kan selecteren en de extensie toegang kan verlenen tot het/de certificaat(en) en de/sleutel(s). Alleen het/de geselecteerde certificaat(en) worden geretourneerd. Indien onwaar, wordt de lijst beperkt tot alle certificaten waartoe de extensie toegang heeft gekregen (automatisch of handmatig).

  • Alleen certificaten die aan dit verzoek voldoen, worden geretourneerd.

VerificationDetails

Eigenschappen

  • hostnaam

    snaar

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

  • serverCertificateChain

    ArrayBuffer[]

    Elke vermelding in de certificaatketen moet de DER-codering van een X.509-certificaat zijn, de eerste vermelding moet het servercertificaat zijn en elke vermelding moet de voorafgaande vermelding certificeren.

VerificationResult

Eigenschappen

  • debug_errors

    snaar[]

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

    Let op: deze lijst is alleen bedoeld voor debugdoeleinden en bevat mogelijk niet alle relevante fouten. De geretourneerde fouten kunnen in toekomstige versies van deze API wijzigen en er is geen garantie dat ze voorwaarts of achterwaarts compatibel zijn.

  • vertrouwd

    booleaans

    Het resultaat van de vertrouwensverificatie: waar als het vertrouwen in de opgegeven verificatiegegevens kon worden vastgesteld en onwaar als het vertrouwen om welke reden dan ook werd 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 , geretourneerd door selectClientCertificates .

  • parameters

    voorwerp

    Bepaalt de parameters voor het handtekening-/hashalgoritme, naast de parameters die door de sleutel zelf zijn vastgelegd. Dezelfde parameters worden geaccepteerd als door de importKey- functie van WebCrypto, bijvoorbeeld RsaHashedImportParams voor een RSASSA-PKCS1-v1_5-sleutel en EcKeyImportParams voor een EC-sleutel. Daarnaast kan voor RSASSA-PKCS1-v1_5-sleutels de parameter voor de naam van het hashalgoritme worden opgegeven met een van de volgende waarden: "none", "SHA-1", "SHA-256", "SHA-384" of "SHA-512", bijvoorbeeld {"hash": { "name": "none" } } . De ondertekeningsfunctie zal dan PKCS#1 v1.5-padding toepassen, maar de gegeven data niet hashen.

    Momenteel ondersteunt deze methode alleen de algoritmen "RSASSA-PKCS1-v1_5" en "ECDSA".

  • terugbelverzoek

    functie

    De callback parameter ziet er als volgt uit:

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

    • openbare sleutel

      voorwerp

    • privésleutel

      object optioneel

      Kan null zijn als deze extensie er geen toegang toe heeft.

getKeyPairBySpki()

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

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

Parameters

  • publicKeySpkiDer

    ArrayBuffer

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

  • parameters

    voorwerp

    Deze functie biedt parameters voor de handtekening en het hash-algoritme, naast de parameters die door de sleutel zelf worden bepaald. Dezelfde parameters worden geaccepteerd als door de importKey- functie van WebCrypto, bijvoorbeeld RsaHashedImportParams voor een RSASSA-PKCS1-v1_5-sleutel. Voor RSASSA-PKCS1-v1_5-sleutels moeten we ook een "hash"-parameter doorgeven { "hash": { "name": string } } . De parameter "hash" vertegenwoordigt de naam van het hash-algoritme dat moet worden gebruikt in de digest-bewerking vóór een ondertekening. Het is mogelijk om "none" als hash-naam door te geven, in welk geval de ondertekeningsfunctie PKCS#1 v1.5-padding toepast, maar de gegeven data niet hasht.

    Momenteel ondersteunt deze methode het "ECDSA"-algoritme met named-curve P-256 en het "RSASSA-PKCS1-v1_5"-algoritme met een van de hashing-algoritmen "geen", "SHA-1", "SHA-256", "SHA-384" en "SHA-512".

  • terugbelverzoek

    functie

    De callback parameter ziet er als volgt uit:

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

    • openbare sleutel

      voorwerp

    • privésleutel

      object optioneel

      Kan null zijn als deze extensie er geen toegang toe heeft.

selectClientCertificates()

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

Deze methode filtert uit een lijst met clientcertificaten de certificaten die bekend zijn bij het platform, overeenkomen met request en waarvoor de extensie toegang heeft tot het certificaat en de bijbehorende privésleutel. Als interactive waar is, krijgt de gebruiker een dialoogvenster te zien waarin hij/zij een van de overeenkomende certificaten kan selecteren en de extensie toegang tot het certificaat kan verlenen. De geselecteerde/gefilterde clientcertificaten worden doorgegeven aan callback .

Parameters

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (matches: Match[]) => void

    • wedstrijden

      De lijst met certificaten die overeenkomen met het verzoek, waarvoor de extensie toestemming heeft en, indien interactive is ingeschakeld, die door de gebruiker zijn geselecteerd.

Retourneert

  • Promise< Match []>

    Chrome 121+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

subtleCrypto()

chrome.platformKeys.subtleCrypto(): object | undefined

Een implementatie van WebCrypto's SubtleCrypto waarmee cryptografische bewerkingen kunnen worden uitgevoerd op sleutels van clientcertificaten die beschikbaar zijn voor deze extensie.

Retourneert

  • object | niet gedefinieerd

verifyTLSServerCertificate()

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

Controleert of details.serverCertificateChain kan worden vertrouwd voor details.hostname op basis van 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 dient de EKU serverAuth te respecteren en alternatieve onderwerpnamen te ondersteunen.

Parameters

Retourneert

  • Promise< VerificationResult >

    Chrome 121+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.