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 aangepaste authenticatieprotocol. Dit maakt bijvoorbeeld het gebruik van platformbeheerde certificaten in VPN's van derden mogelijk (zie chrome.vpnProvider ).
Machtigingen
platformKeys
Beschikbaarheid
Soorten
ClientCertificateRequest
Eigenschappen
- certificaatAutoriteiten
ArrayBuffer[]
Lijst met onderscheidende namen van certificeringsinstanties die door de server zijn toegestaan. Elke invoer moet een DER-gecodeerde X.509 DistinguishedName zijn.
- certificaatTypen
Dit veld bevat een lijst met de aangevraagde typen certificaten, gesorteerd op basis van de voorkeur van de server. Alleen certificaten van een type dat in deze lijst voorkomt, worden opgehaald. Als
certificateTypes
echter de lege lijst is, worden certificaten van welk type dan ook geretourneerd.
ClientCertificateType
Enum
"rsaSign" "ecdsaTeken"
Match
Eigenschappen
- certificaat
ArrayBuffer
De DER-codering van een X.509-certificaat.
- sleutelAlgoritme
voorwerp
Het sleutelalgoritme van de gecertificeerde sleutel. Dit bevat algoritmeparameters die inherent zijn aan de sleutel van het certificaat (bijvoorbeeld de sleutellengte). Andere parameters zoals de hashfunctie die door de tekenfunctie wordt gebruikt, zijn niet inbegrepen.
SelectDetails
Eigenschappen
- klantCerts
ArrayBuffer[] optioneel
Indien opgegeven, werkt de
selectClientCertificates
op deze lijst. Anders wordt de lijst opgehaald met alle certificaten uit de certificaatarchieven van het platform die beschikbaar zijn voor deze extensies. Inzendingen waar de extensie geen toestemming voor heeft of die niet overeenkomen met het verzoek, worden verwijderd. - interactieve
Booleaans
Indien waar, wordt de gefilterde lijst aan de gebruiker gepresenteerd om handmatig een certificaat te selecteren en daarmee de extensie toegang te verlenen tot de certificaten en sleutel(s). Alleen de geselecteerde certificaat(en) worden geretourneerd. Als 'false' is, wordt de lijst beperkt tot alle certificaten waartoe de extensie toegang heeft gekregen (automatisch of handmatig).
- verzoek
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 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 voorafgaande invoer certificeren.
VerificationResult
Eigenschappen
- debug_fouten
snaar[]
Als de vertrouwensverificatie mislukt, bevat deze array de fouten die door de onderliggende netwerklaag worden gerapporteerd. Anders is deze array leeg.
Opmerking: deze lijst is alleen bedoeld voor foutopsporing en bevat mogelijk niet alle relevante fouten. De geretourneerde fouten kunnen veranderen in toekomstige herzieningen van deze API en zijn niet gegarandeerd voorwaarts of achterwaarts compatibel.
- vertrouwd
Booleaans
Het resultaat van de vertrouwensverificatie: waar als het vertrouwen voor de gegeven verificatiedetails kan worden gevestigd en onwaar als het vertrouwen om welke reden dan ook wordt afgewezen.
Methoden
getKeyPair()
chrome.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
)
Geeft het sleutelpaar van het certificate
door voor gebruik met platformKeys.subtleCrypto
om callback
.
Parameters
- certificaat
ArrayBuffer
Het certificaat van een
Match
dat wordt geretourneerd doorselectClientCertificates
. - parameters
voorwerp
Bepaalt handtekening-/hash-algoritmeparameters als aanvulling op 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 enEcKeyImportParams
voor EC-sleutel. Bovendien kan voor RSASSA-PKCS1-v1_5-sleutels de hash-algoritmenaamparameter worden opgegeven met een van de volgende waarden: "none", "SHA-1", "SHA-256", "SHA-384" of "SHA-512 ", bijvoorbeeld{"hash": { "name": "none" } }
. De tekenfunctie past dan PKCS#1 v1.5-opvulling toe, maar hasht de gegeven gegevens niet.Momenteel ondersteunt deze methode alleen de algoritmen "RSASSA-PKCS1-v1_5" en "ECDSA".
- terugbellen
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.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
)
Geeft het sleutelpaar door dat is geïdentificeerd door publicKeySpkiDer
voor gebruik met platformKeys.subtleCrypto
om callback
.
Parameters
- publicKeySpkiDer
ArrayBuffer
Een DER-gecodeerde X.509 SubjectPublicKeyInfo, bijvoorbeeld verkregen door de exportKey-functie van WebCrypto aan te roepen met format="spki".
- parameters
voorwerp
Biedt handtekening- en hash-algoritmeparameters, 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. Voor RSASSA-PKCS1-v1_5-sleutels moeten we ook een "hash"-parameter{ "hash": { "name": string } }
doorgeven. De parameter "hash" vertegenwoordigt de naam van het hash-algoritme dat moet worden gebruikt in de digest-bewerking vóór een teken. Het is mogelijk om "none" door te geven als de hashnaam, in welk geval de tekenfunctie PKCS#1 v1.5-opvulling zal toepassen en de gegeven gegevens niet zal hashen.Momenteel ondersteunt deze methode het "ECDSA"-algoritme met 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".
- terugbellen
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()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
callback?: function,
)
Deze methode filtert uit een lijst met clientcertificaten de certificaten die bekend zijn bij het platform, request
en waarvoor de extensie toestemming heeft om toegang te krijgen tot het certificaat en de privésleutel ervan. Als interactive
waar is, krijgt de gebruiker een dialoogvenster te zien waarin hij of zij kan kiezen uit overeenkomende certificaten en de extensie toegang tot het certificaat kan verlenen. De geselecteerde/gefilterde clientcertificaten worden doorgegeven aan callback
.
Parameters
- details
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:(matches: Match[]) => void
- wedstrijden
Overeenkomst []
De lijst met certificaten die overeenkomen met het verzoek, waarvoor de extensie toestemming heeft en, als
interactive
waar is, die door de gebruiker zijn geselecteerd.
Retouren
Beloof< Match []>
Chroom 121+Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.
subtleCrypto()
chrome.platformKeys.subtleCrypto()
Een implementatie van WebCrypto's SubtleCrypto die cryptobewerkingen mogelijk maakt op sleutels van clientcertificaten die beschikbaar zijn voor deze extensie.
Retouren
voorwerp | ongedefinieerd
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
)
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 van een bekende CA. De implementatie wordt verondersteld de EKU-serverAuth te respecteren en alternatieve onderwerpnamen te ondersteunen.
Parameters
- details
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:(result: VerificationResult) => void
- resultaat
Retouren
Belofte< VerificatieResultaat >
Chroom 121+Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.