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
platformKeysBeschikbaarheid
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
certificateTypesde 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
selectClientCertificatesop 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).
-
verzoek
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
serverCertificateChainheeft 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
Matchdat is geretourneerd doorselectClientCertificates. -
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
RsaHashedImportParamsvoor een RSASSA-PKCS1-v1_5-sleutel enEcKeyImportParamsvoor 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
callbackziet er zo uit:(publicKey: object, privateKey?: object) => void
-
publicKey
object
-
privateKey
object optioneel
Kan
nullzijn als deze extensie geen toegang heeft tot de URL.
-
getKeyPairBySpki()
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
RsaHashedImportParamsvoor 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
callbackziet er zo uit:(publicKey: object, privateKey?: object) => void
-
publicKey
object
-
privateKey
object optioneel
Kan
nullzijn als deze extensie geen toegang heeft tot de URL.
-
selectClientCertificates()
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
Retourzendingen
-
Promise<Match[]>
Chrome 121 of hogerPromises 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()
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
-
details
-
callback
functie optioneel
De parameter
callbackziet er zo uit:(result: VerificationResult) => void
-
resultaat
-
Retourzendingen
-
Promise<VerificationResult>
Chrome 121 of hogerPromises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.