refresh date: 2026-09-25 robots: noindex
Opis
Użyj interfejsu chrome.platformKeys API, aby uzyskać dostęp do certyfikatów klienta zarządzanych przez platformę. Jeśli użytkownik lub zasady przyznają uprawnienia, rozszerzenie może używać takiego certyfikatu w swoim niestandardowym protokole uwierzytelniania. Umożliwia to na przykład korzystanie z certyfikatów zarządzanych przez platformę w usługach VPN innych firm (patrz chrome.vpnProvider).
Uprawnienia
platformKeysDostępność
Typy
ClientCertificateRequest
Właściwości
-
certificateAuthorities
ArrayBuffer[]
Lista nazw wyróżniających urzędów certyfikacji dozwolonych przez serwer. Każdy wpis musi być nazwą wyróżniającą X.509 zakodowaną w formacie DER.
-
certificateTypes
To pole zawiera listę typów żądanych certyfikatów posortowanych według preferencji serwera. Pobrane zostaną tylko certyfikaty typu znajdującego się na tej liście. Jeśli
certificateTypesjest pustą listą, zwracane są certyfikaty dowolnego typu.
ClientCertificateType
Typ wyliczeniowy
„rsaSign”
„ecdsaSign”
Match
Właściwości
-
certyfikat
ArrayBuffer
Kodowanie DER certyfikatu X.509.
-
keyAlgorithm
obiekt
KeyAlgorithm certyfikowanego klucza. Zawiera parametry algorytmu, które są nieodłączne od klucza certyfikatu (np. długość klucza). Nie obejmuje to innych parametrów, takich jak funkcja skrótu używana przez funkcję podpisu.
SelectDetails
Właściwości
-
clientCerts
ArrayBuffer[] opcjonalnie
Jeśli podano wartość,
selectClientCertificatesdziała na tej liście. W przeciwnym razie pobiera listę wszystkich certyfikatów z magazynów certyfikatów platformy, które są dostępne dla tego rozszerzenia. Wpisy, do których rozszerzenie nie ma uprawnień lub które nie pasują do żądania, są usuwane. -
interaktywny
wartość logiczna
Jeśli ma wartość „true”, użytkownikowi zostanie wyświetlona przefiltrowana lista, z której może ręcznie wybrać certyfikat, a tym samym przyznać rozszerzeniu dostęp do certyfikatów i kluczy. Zostaną zwrócone tylko wybrane certyfikaty. Jeśli wartość to „false”, lista zostanie ograniczona do wszystkich certyfikatów, do których rozszerzenie ma dostęp (automatyczny lub ręczny).
-
żądanie
Zostaną zwrócone tylko certyfikaty zgodne z tym żądaniem.
VerificationDetails
Właściwości
-
nazwa hosta
tekst
Nazwa hosta serwera, dla którego ma zostać zweryfikowany certyfikat, np. serwera, który przedstawił
serverCertificateChain. -
serverCertificateChain
ArrayBuffer[]
Każdy wpis w łańcuchu musi być kodowaniem DER certyfikatu X.509. Pierwszy wpis musi być certyfikatem serwera, a każdy wpis musi potwierdzać wpis poprzedzający.
VerificationResult
Właściwości
-
debug_errors
string[]
Jeśli weryfikacja zaufania się nie powiodła, ta tablica zawiera błędy zgłoszone przez warstwę sieciową. W przeciwnym razie ta tablica jest pusta.
Uwaga: ta lista służy wyłącznie do debugowania i może nie zawierać wszystkich istotnych błędów. Błędy zwracane przez ten interfejs API mogą ulec zmianie w przyszłych wersjach i nie gwarantujemy ich zgodności wstecznej ani w przód.
-
zaufane
wartość logiczna
Wynik weryfikacji zaufania: „true”, jeśli na podstawie podanych szczegółów weryfikacji można było ustalić zaufanie, lub „false”, jeśli zaufanie zostało odrzucone z dowolnego powodu.
Metody
getKeyPair()
chrome.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
): void
Przekazuje parę kluczy certificate do użycia z platformKeys.subtleCrypto do callback.
Parametry
-
certyfikat
ArrayBuffer
Certyfikat
Matchzwrócony przezselectClientCertificates. -
parametry
obiekt
Określa parametry algorytmu podpisu lub funkcji skrótu oprócz parametrów ustalonych przez sam klucz. Akceptowane są te same parametry co w przypadku funkcji importKey WebCrypto, np.
RsaHashedImportParamsw przypadku klucza RSASSA-PKCS1-v1_5 iEcKeyImportParamsw przypadku klucza EC. W przypadku kluczy RSASSA-PKCS1-v1_5 można też określić parametr nazwy algorytmu mieszania z jedną z tych wartości: „none”, „SHA-1”, „SHA-256”, „SHA-384” lub „SHA-512”, np.{"hash": { "name": "none" } }. Funkcja podpisywania zastosuje wtedy dopełnienie PKCS#1 v1.5, ale nie wygeneruje skrótu podanych danych.Obecnie ta metoda obsługuje tylko algorytmy „RSASSA-PKCS1-v1_5” i „ECDSA”.
-
callback
funkcja
Parametr
callbackwygląda tak:(publicKey: object, privateKey?: object) => void
-
publicKey
obiekt
-
privateKey
obiekt opcjonalny
Może być
null, jeśli to rozszerzenie nie ma do niego dostępu.
-
getKeyPairBySpki()
chrome.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
): void
Przekazuje parę kluczy zidentyfikowaną przez publicKeySpkiDer do użycia z platformKeys.subtleCrypto do callback.
Parametry
-
publicKeySpkiDer
ArrayBuffer
Zakodowany w formacie DER obiekt X.509 SubjectPublicKeyInfo, uzyskany np. przez wywołanie funkcji exportKey interfejsu WebCrypto z parametrem format="spki".
-
parametry
obiekt
Zawiera parametry algorytmu podpisu i funkcji haszującej, oprócz tych, które są stałe dla danego klucza. Akceptowane są te same parametry co w przypadku funkcji importKey WebCrypto, np.
RsaHashedImportParamsw przypadku klucza RSASSA-PKCS1-v1_5. W przypadku kluczy RSASSA-PKCS1-v1_5 musimy też przekazać parametr „hash”{ "hash": { "name": string } }. Parametr „hash” reprezentuje nazwę algorytmu haszowania, który ma być używany w operacji skrótu przed podpisem. Jako nazwę skrótu można przekazać „none”. W takim przypadku funkcja podpisywania zastosuje do podanych danych dopełnienie PKCS#1 v1.5, ale nie utworzy ich skrótu.Obecnie ta metoda obsługuje algorytm „ECDSA” z nazwaną krzywą P-256 oraz algorytm „RSASSA-PKCS1-v1_5” z jednym z algorytmów szyfrowania „none”, „SHA-1”, „SHA-256”, „SHA-384” i „SHA-512”.
-
callback
funkcja
Parametr
callbackwygląda tak:(publicKey: object, privateKey?: object) => void
-
publicKey
obiekt
-
privateKey
obiekt opcjonalny
Może być
null, jeśli to rozszerzenie nie ma do niego dostępu.
-
selectClientCertificates()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
callback?: function,
): Promise<Match[]>
Ta metoda filtruje z listy certyfikatów klienta te, które są znane platformie, pasują do request i do których rozszerzenie ma uprawnienia dostępu do certyfikatu i jego klucza prywatnego. Jeśli zasada interactive ma wartość Prawda, użytkownik zobaczy okno, w którym może wybrać pasujące certyfikaty i przyznać rozszerzeniu dostęp do certyfikatu. Wybrane lub odfiltrowane certyfikaty klienta zostaną przekazane do callback.
Parametry
-
szczegóły
-
callback
funkcja opcjonalna
Parametr
callbackwygląda tak:(matches: Match[]) => void
-
pasuje do
Lista certyfikatów pasujących do żądania, do których rozszerzenie ma uprawnienia i które (jeśli
interactivema wartość true) zostały wybrane przez użytkownika.
-
Zwroty
-
Promise<Match[]>
Chrome 121 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
subtleCrypto()
chrome.platformKeys.subtleCrypto(): object | undefined
Implementacja interfejsu SubtleCrypto WebCrypto, która umożliwia operacje kryptograficzne na kluczach certyfikatów klienta dostępnych dla tego rozszerzenia.
Zwroty
-
object | undefined
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
): Promise<VerificationResult>
Sprawdza, czy details.serverCertificateChain może być uznawany za zaufany w przypadku details.hostname zgodnie z ustawieniami zaufania platformy. Uwaga: rzeczywiste działanie weryfikacji zaufania nie jest w pełni określone i może się w przyszłości zmienić. Implementacja interfejsu API weryfikuje datę wygaśnięcia certyfikatu, ścieżkę certyfikacji i zaufanie do znanego urzędu certyfikacji. Implementacja powinna uwzględniać rozszerzone użycie klucza serverAuth i obsługiwać alternatywne nazwy podmiotu.
Parametry
-
szczegóły
-
callback
funkcja opcjonalna
Parametr
callbackwygląda tak:(result: VerificationResult) => void
-
wynik
-
Zwroty
-
Promise<VerificationResult>
Chrome 121 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.