Beschreibung
Verwenden Sie die chrome.platformKeys
API, um auf von der Plattform verwaltete Clientzertifikate zuzugreifen. Wenn der Nutzer oder die Richtlinie die Berechtigung erteilt, kann eine Erweiterung ein solches Zertifikat in ihrem benutzerdefinierten Authentifizierungsprotokoll verwenden. Beispiel: Dadurch können von der Plattform verwaltete Zertifikate in Drittanbieter-VPNs verwendet werden (siehe chrome.vpnProvider).
Berechtigungen
platformKeys
Verfügbarkeit
Typen
ClientCertificateRequest
Attribute
-
certificateAuthorities
ArrayBuffer[]
Liste der Distinguished Names von Zertifizierungsstellen, die vom Server zugelassen werden. Jeder Eintrag muss ein DER-codierter X.509 DistinguishedName sein.
-
certificateTypes
Dieses Feld enthält eine Liste der angeforderten Zertifikatstypen, sortiert in der Reihenfolge der Servereinstellungen. Nur Zertifikate eines Typs, der in dieser Liste enthalten ist, werden abgerufen. Wenn
certificateTypes
jedoch die leere Liste ist, werden Zertifikate jeden Typs zurückgegeben.
ClientCertificateType
Enum
"rsaSign"
"ecdsaSign"
Match
Attribute
-
Zertifikat
ArrayBuffer
Die DER-Codierung eines X.509-Zertifikats
-
keyAlgorithm
Objekt
Der KeyAlgorithm des zertifizierten Schlüssels. Enthält Algorithmusparameter, die dem Schlüssel des Zertifikats inhärent sind (z.B. die Schlüssellänge). Andere Parameter wie die von der Sign-Funktion verwendete Hash-Funktion sind nicht enthalten.
SelectDetails
Attribute
-
clientCerts
ArrayBuffer[] optional
Wenn angegeben, wird die
selectClientCertificates
auf der Grundlage dieser Liste ausgeführt. Andernfalls wird eine Liste aller Zertifikate aus den Zertifikatsspeichern der Plattform abgerufen, die für diese Erweiterungen verfügbar sind. Einträge, für die die Erweiterung keine Berechtigung hat oder die nicht mit der Anfrage übereinstimmen, werden entfernt. -
interactive
boolean
Ist dieser Wert auf „true“ gesetzt, wird dem Nutzer die gefilterte Liste angezeigt, damit er manuell ein Zertifikat auswählen kann. Dadurch erhält die Erweiterung Zugriff auf die Zertifikate und Schlüssel. Nur die ausgewählten Zertifikate werden zurückgegeben. Bei „false“ wird die Liste auf alle Zertifikate reduziert, auf die die Erweiterung automatisch oder manuell Zugriff erhalten hat.
-
Anfrage
Es werden nur Zertifikate zurückgegeben, die mit dieser Anfrage übereinstimmen.
VerificationDetails
Attribute
-
Hostname
String
Der Hostname des Servers, für den das Zertifikat bestätigt werden soll, z.B. dem Server, der
serverCertificateChain
bereitgestellt hat. -
serverCertificateChain
ArrayBuffer[]
Jeder Ketteneintrag muss die DER-Codierung eines X.509-Zertifikats sein, der erste Eintrag muss das Serverzertifikat sein und jeder Eintrag muss den ihm vorangehenden Eintrag zertifizieren.
VerificationResult
Attribute
-
debug_errors
String[]
Wenn die Überprüfung der Vertrauensstellung fehlgeschlagen ist, enthält dieses Array die von der zugrunde liegenden Netzwerkschicht gemeldeten Fehler. Andernfalls ist dieses Array leer.
Hinweis:Diese Liste dient nur zur Fehlerbehebung und enthält möglicherweise nicht alle relevanten Fehler. Die zurückgegebenen Fehler können sich in zukünftigen Versionen dieser API ändern. Es ist nicht garantiert, dass sie rückwärts- oder rückwärtskompatibel sind.
-
vertrauenswürdig
boolean
Das Ergebnis der Vertrauensüberprüfung: „true“, wenn die gegebenen Bestätigungsdetails eine Vertrauensstellung ergeben, und „false“, wenn das Vertrauen aus irgendeinem Grund abgelehnt wird.
Methoden
getKeyPair()
chrome.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
)
Übergibt das Schlüsselpaar certificate
zur Verwendung mit platformKeys.subtleCrypto
an callback
.
Parameter
-
Zertifikat
ArrayBuffer
Das Zertifikat eines
Match
, das vonselectClientCertificates
zurückgegeben wurde. -
Parameter
Objekt
Bestimmt Signatur-/Hash-Algorithmusparameter zusätzlich zu den Parametern, die durch den Schlüssel selbst festgelegt werden. Dieselben Parameter werden von der Funktion importKey von WebCrypto akzeptiert, z.B.
RsaHashedImportParams
für einen RSASSA-PKCS1-v1_5-Schlüssel undEcKeyImportParams
für einen EC-Schlüssel. Außerdem kann für RSASSA-PKCS1-v1_5-Schlüssel der Namensparameter des Hash-Algorithmus mit einem der folgenden Werte angegeben werden: „none“, „SHA-1“, „SHA-256“, „SHA-384“ oder „SHA-512“. Beispiel:{"hash": { "name": "none" } }
Die Signierfunktion wendet dann PKCS#1 v1.5-Padding an, aber hasht die angegebenen Daten nicht.Derzeit unterstützt diese Methode nur den Typ „RSASSA-PKCS1-v1_5“ und „ECDSA“ Algorithmen.
-
callback
Funktion
Der Parameter
callback
sieht so aus: <ph type="x-smartling-placeholder"></ph>(publicKey: object, privateKey?: object) => void
-
publicKey
Objekt
-
privateKey
Objekt optional
Könnte
null
sein, wenn diese Erweiterung keinen Zugriff darauf hat.
-
getKeyPairBySpki()
chrome.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
)
Übergibt das von publicKeySpkiDer
angegebene Schlüsselpaar zur Verwendung mit platformKeys.subtleCrypto
an callback
.
Parameter
-
publicKeySpkiDer
ArrayBuffer
Eine DER-verschlüsselte X.509 SubjectPublicKeyInfo, die z. B. abgerufen wird. indem Sie die Funktion exportKey von WebCrypto mit format="spki" aufrufen.
-
Parameter
Objekt
Stellt Signatur- und Hash-Algorithmusparameter zusätzlich zu denen bereit, die durch den Schlüssel selbst festgelegt werden. Dieselben Parameter werden von der Funktion importKey von WebCrypto akzeptiert, z.B.
RsaHashedImportParams
für einen RSASSA-PKCS1-v1_5-Schlüssel. Für RSASSA-PKCS1-v1_5-Schlüssel müssen wir auch einen „Hash“ übergeben. Parameter{ "hash": { "name": string } }
. Der „Hash“-Wert -Parameter steht für den Namen des Hash-Algorithmus, der im Digest-Vorgang vor einem Vorzeichen verwendet werden soll. Es ist möglich, „keine“ als Hash-Namen ein. In diesem Fall wendet die Signierfunktion das PKCS#1-Padding von Version 1.5 an und hasht die angegebenen Daten nicht.Derzeit unterstützt diese Methode die Methode „ECDSA“. mit der benannten Kurve P-256 und „RSASSA-PKCS1-v1_5“. mit einem der Hash-Algorithmen „none“, „SHA-1“, „SHA-256“, „SHA-384“ oder „SHA-512“.
-
callback
Funktion
Der Parameter
callback
sieht so aus: <ph type="x-smartling-placeholder"></ph>(publicKey: object, privateKey?: object) => void
-
publicKey
Objekt
-
privateKey
Objekt optional
Könnte
null
sein, wenn diese Erweiterung keinen Zugriff darauf hat.
-
selectClientCertificates()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
callback?: function,
)
Mit dieser Methode werden aus einer Liste von Clientzertifikaten diejenigen gefiltert, die der Plattform bekannt sind, mit request
übereinstimmen und für die die Erweiterung die Berechtigung hat, auf das Zertifikat und seinen privaten Schlüssel zuzugreifen. Wenn interactive
auf „true“ gesetzt ist, wird dem Nutzer ein Dialogfeld angezeigt, in dem er aus übereinstimmenden Zertifikaten auswählen und der Erweiterung Zugriff auf das Zertifikat gewähren kann. Die ausgewählten/gefilterten Clientzertifikate werden an callback
übergeben.
Parameter
-
Details
-
callback
Funktion optional
Der Parameter
callback
sieht so aus: <ph type="x-smartling-placeholder"></ph>(matches: Match[]) => void
-
stimmt überein mit
Die Liste der Zertifikate, die der Anfrage entsprechen, für die die Erweiterung eine Berechtigung hat und die vom Nutzer ausgewählt wurden, wenn
interactive
„true“ ist.
-
Gibt Folgendes zurück:
-
Promise<Übereinstimmung[]>
Chrome 121 oder höherPromise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks sind jedoch für Abwärtskompatibilität. Sie können nicht beide in demselben Funktionsaufruf verwenden. Die Promise wird mit demselben Typ aufgelöst, der an das Callback übergeben wird.
subtleCrypto()
chrome.platformKeys.subtleCrypto()
Eine Implementierung von SubtleCrypto von WebCrypto, die kryptografische Vorgänge für Schlüssel von Clientzertifikaten ermöglicht, die für diese Erweiterung verfügbar sind.
Gibt Folgendes zurück:
-
object | nicht definiert
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
)
Prüft, ob details.serverCertificateChain
für details.hostname
gemäß den Vertrauenseinstellungen der Plattform als vertrauenswürdig eingestuft werden kann. Hinweis: Das tatsächliche Verhalten der Vertrauensprüfung ist nicht vollständig spezifiziert und kann sich in Zukunft ändern. Die API-Implementierung überprüft den Ablauf des Zertifikats, validiert den Zertifizierungspfad und prüft, ob eine bekannte Zertifizierungsstelle vertrauenswürdig ist. Die Implementierung sollte die EKU serverAuth berücksichtigen und alternative Antragstellernamen unterstützen.
Parameter
-
Details
-
callback
Funktion optional
Der Parameter
callback
sieht so aus: <ph type="x-smartling-placeholder"></ph>(result: VerificationResult) => void
-
Ergebnis
-
Gibt Folgendes zurück:
-
Promise<VerificationResult>
Chrome 121 oder höherPromise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks sind jedoch für Abwärtskompatibilität. Sie können nicht beide in demselben Funktionsaufruf verwenden. Die Promise wird mit demselben Typ aufgelöst, der an das Callback übergeben wird.