chrome.platformKeys

refresh date: 2026-09-25 robots: noindex

Opis

Użyj interfejsu API chrome.platformKeys, aby uzyskać dostęp do certyfikatów klienta zarządzanych przez platformę. Jeśli użytkownik lub zasada przyzna 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 sieciach VPN innych firm (patrz chrome.vpnProvider).

Uprawnienia

platformKeys

Dostępność

Chrome 45 lub nowsza wersja Tylko ChromeOS

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ć zakodowaną w formacie DER nazwą DistinguishedName X.509.

  • certificateTypes

    To pole zawiera listę typów żądanych certyfikatów posortowanych według preferencji serwera. Pobierane będą tylko certyfikaty typu znajdującego się na tej liście. Jeśli jednak certificateTypes jest 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). Inne parametry, takie jak funkcja skrótu używana przez funkcję podpisu, nie są uwzględniane.

SelectDetails

Właściwości

  • clientCerts

    ArrayBuffer[] opcjonalny

    Jeśli podasz tę wartość, selectClientCertificates będzie dział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 prośby, są usuwane.

  • interaktywny

    wartość logiczna

    Jeśli ma wartość prawda (true), użytkownik zobaczy przefiltrowaną listę, z której może ręcznie wybrać certyfikat, przyznając rozszerzeniu dostęp do certyfikatów i kluczy. Zwrócone zostaną tylko wybrane certyfikaty. Jeśli ma wartość false, lista jest ograniczona do wszystkich certyfikatów, do których rozszerzenie ma dostęp (automatycznie lub ręcznie).

  • Zwracane będą 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ć zakodowany w formacie DER certyfikatu X.509, pierwszy wpis musi być certyfikatem serwera, a każdy wpis musi poświadczać wpis, który go poprzedza.

VerificationResult

Właściwości

  • debug_errors

    string[]

    Jeśli weryfikacja zaufania się nie powiedzie, ta tablica zawiera błędy zgłoszone przez podstawową warstwę sieciową. W przeciwnym razie ta tablica jest pusta.

    Uwaga: ta lista służy tylko do debugowania i może nie zawierać wszystkich istotnych błędów. Zwracane błędy mogą ulec zmianie w przyszłych wersjach tego interfejsu API i nie gwarantujemy ich zgodności wstecznej ani zgodności z przyszłymi wersjami.

  • zaufane

    wartość logiczna

    Wynik weryfikacji zaufania: „true”, jeśli można było ustalić zaufanie dla podanych szczegółów weryfikacji, lub „false”, jeśli zaufanie zostało odrzucone z jakiegokolwiek 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 Match zwrócony przez selectClientCertificates.

  • parametry

    obiekt

    Określa parametry algorytmu podpisu/skrótu oprócz parametrów ustalonych przez sam klucz. Akceptowane są te same parametry co w przypadku funkcji importKey WebCrypto, np. RsaHashedImportParams dla klucza RSASSA-PKCS1-v1_5 i EcKeyImportParams dla klucza EC. W przypadku kluczy RSASSA-PKCS1-v1_5 parametr nazwy algorytmu szyfrowania może mieć jedną z tych wartości: „none”, „SHA-1”, „SHA-256”, „SHA-384” lub „SHA-512”, np. {"hash": { "name": "none" } }. Funkcja podpisu zastosuje wtedy dopełnienie PKCS#1 v1.5, ale nie utworzy skrótu podanych danych.

    Obecnie ta metoda obsługuje tylko algorytmy „RSASSA-PKCS1-v1_5” i „ECDSA”.

  • callback

    funkcja

    Parametr callback wygląda tak:

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

    • publicKey

      obiekt

    • privateKey

      object opcjonalny

      Jeśli rozszerzenie nie ma dostępu do tej strony, może to być null.

getKeyPairBySpki()

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

Przekazuje parę kluczy identyfikowaną przez publicKeySpkiDer do callback, aby można było jej używać z platformKeys.subtleCrypto.

Parametry

  • publicKeySpkiDer

    ArrayBuffer

    Zakodowany w formacie DER obiekt SubjectPublicKeyInfo X.509, uzyskany np. przez wywołanie funkcji exportKey WebCrypto z formatem „spki”.

  • parametry

    obiekt

    Udostępnia parametry algorytmu podpisu i haszowania, oprócz tych, które są stałe dla samego klucza. Akceptowane są te same parametry co w przypadku funkcji importKey WebCrypto, np. RsaHashedImportParams dla 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 szyfrowania, który ma być używany w operacji skrótu przed podpisaniem. Można przekazać „none” jako nazwę skrótu. W takim przypadku funkcja podpisu zastosuje dopełnienie PKCS#1 v1.5, ale nie zaszyfruje podanych danych.

    Obecnie ta metoda obsługuje algorytm „ECDSA” z krzywą nazwaną P-256 i algorytm „RSASSA-PKCS1-v1_5” z jednym z algorytmów szyfrowania „none”, „SHA-1”, „SHA-256”, „SHA-384” i „SHA-512”.

  • callback

    funkcja

    Parametr callback wygląda tak:

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

    • publicKey

      obiekt

    • privateKey

      object opcjonalny

      Jeśli rozszerzenie nie ma dostępu do tej strony, może to być null.

selectClientCertificates()

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

Ta metoda filtruje listę certyfikatów klienta, wybierając te, które są znane platformie, pasują do request i do których rozszerzenie ma uprawnienia dostępu (oraz do ich 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

    function opcjonalne

    Parametr callback wygląda tak:

    (matches: Match[]) => void

    • pasuje do

      Lista certyfikatów, które pasują do żądania, do których rozszerzenie ma uprawnienia i które zostały wybrane przez użytkownika (jeśli zasada interactive ma wartość prawda).

Zwroty

  • Promise<Match[]>

    Chrome 121 lub nowsza wersja

    Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.

subtleCrypto()

chrome.platformKeys.subtleCrypto(): object | undefined

Implementacja interfejsu SubtleCrypto WebCrypto, która umożliwia wykonywanie operacji kryptograficznych na kluczach certyfikatów klienta dostępnych dla tego rozszerzenia.

Zwroty

  • object | undefined

verifyTLSServerCertificate()

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

Sprawdza, czy details.serverCertificateChain może być zaufany dla details.hostname zgodnie z ustawieniami zaufania platformy. Uwaga: rzeczywiste działanie weryfikacji zaufania nie jest w pełni określone i może się zmienić w przyszłości. Implementacja interfejsu API weryfikuje wygaśnięcie certyfikatu, sprawdza ścieżkę certyfikacji i zaufanie przez znany urząd certyfikacji. Implementacja powinna uwzględniać rozszerzone użycie klucza serverAuth i obsługiwać alternatywne nazwy podmiotu.

Parametry

Zwroty

  • Chrome 121 lub nowsza wersja

    Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.