chrome.platformKeys

refresh date: 2026-09-25 robots: noindex

Descrizione

Utilizza l'API chrome.platformKeys per accedere ai certificati client gestiti dalla piattaforma. Se l'utente o la policy concede l'autorizzazione, un'estensione può utilizzare questo certificato nel suo protocollo di autenticazione personalizzato. Ad esempio, questo consente l'utilizzo di certificati gestiti dalla piattaforma in VPN di terze parti (vedi chrome.vpnProvider).

Autorizzazioni

platformKeys

Disponibilità

Chrome 45 e versioni successive Solo ChromeOS

Tipi

ClientCertificateRequest

Proprietà

  • certificateAuthorities

    ArrayBuffer[]

    Elenco dei nomi distinti delle autorità di certificazione consentite dal server. Ogni voce deve essere un DistinguishedName X.509 con codifica DER.

  • certificateTypes

    Questo campo è un elenco dei tipi di certificati richiesti, ordinati in base alla preferenza del server. Verranno recuperati solo i certificati di un tipo contenuto in questo elenco. Tuttavia, se certificateTypes è l'elenco vuoto, verranno restituiti certificati di qualsiasi tipo.

ClientCertificateType

Enum

"rsaSign"

"ecdsaSign"

Match

Proprietà

  • certificato

    ArrayBuffer

    La codifica DER di un certificato X.509.

  • keyAlgorithm

    oggetto

    L'algoritmo KeyAlgorithm della chiave certificata. Contiene i parametri dell'algoritmo inerenti alla chiave del certificato (ad es. la lunghezza della chiave). Altri parametri, come la funzione di hash utilizzata dalla funzione di firma, non sono inclusi.

SelectDetails

Proprietà

  • clientCerts

    ArrayBuffer[] facoltativo

    Se specificato, selectClientCertificates opera su questo elenco. In caso contrario, ottiene l'elenco di tutti i certificati dagli archivi di certificati della piattaforma disponibili per queste estensioni. Le voci per le quali l'estensione non dispone dell'autorizzazione o che non corrispondono alla richiesta vengono rimosse.

  • interattivo

    booleano

    Se impostato su true, l'elenco filtrato viene presentato all'utente per selezionare manualmente un certificato e concedere così all'estensione l'accesso ai certificati e alle chiavi. Verranno restituiti solo i certificati selezionati. Se è false, l'elenco viene ridotto a tutti i certificati a cui è stato concesso l'accesso all'estensione (automaticamente o manualmente).

  • Verranno restituiti solo i certificati che corrispondono a questa richiesta.

VerificationDetails

Proprietà

  • nome host

    stringa

    Il nome host del server per cui verificare il certificato, ad esempio il server che ha presentato il serverCertificateChain.

  • serverCertificateChain

    ArrayBuffer[]

    Ogni voce della catena deve essere la codifica DER di un certificato X.509, la prima voce deve essere il certificato del server e ogni voce deve certificare quella precedente.

VerificationResult

Proprietà

  • debug_errors

    string[]

    Se la verifica dell'attendibilità non è andata a buon fine, questo array contiene gli errori segnalati dal livello di rete sottostante. In caso contrario, questo array è vuoto.

    Nota: questo elenco è destinato esclusivamente al debug e potrebbe non contenere tutti gli errori pertinenti. Gli errori restituiti potrebbero cambiare nelle revisioni future di questa API e non è garantita la compatibilità con le versioni precedenti o successive.

  • attendibile

    booleano

    Il risultato della verifica dell'attendibilità: true se è possibile stabilire l'attendibilità per i dettagli di verifica specificati e false se l'attendibilità viene rifiutata per qualsiasi motivo.

Metodi

getKeyPair()

chrome.platformKeys.getKeyPair(
  certificate: ArrayBuffer,
  parameters: object,
  callback: function,
)
: void

Passa la coppia di chiavi di certificate per l'utilizzo con platformKeys.subtleCrypto a callback.

Parametri

  • certificato

    ArrayBuffer

    Il certificato di un Match restituito da selectClientCertificates.

  • Parametri

    oggetto

    Determina i parametri dell'algoritmo di firma/hash oltre ai parametri fissati dalla chiave stessa. Vengono accettati gli stessi parametri della funzione importKey di WebCrypto, ad esempio RsaHashedImportParams per una chiave RSASSA-PKCS1-v1_5 e EcKeyImportParams per una chiave EC. Inoltre, per le chiavi RSASSA-PKCS1-v1_5, il parametro del nome dell'algoritmo di hashing può essere specificato con uno dei seguenti valori: "none", "SHA-1", "SHA-256", "SHA-384" o "SHA-512", ad esempio {"hash": { "name": "none" } }. La funzione di firma applicherà quindi la spaziatura interna PKCS#1 v1.5, ma non eseguirà l'hashing dei dati forniti.

    Al momento, questo metodo supporta solo gli algoritmi "RSASSA-PKCS1-v1_5" ed "ECDSA".

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

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

    • publicKey

      oggetto

    • privateKey

      object facoltativo

      Potrebbe essere null se questa estensione non ha accesso.

getKeyPairBySpki()

Chrome 85 e versioni successive
chrome.platformKeys.getKeyPairBySpki(
  publicKeySpkiDer: ArrayBuffer,
  parameters: object,
  callback: function,
)
: void

Passa la coppia di chiavi identificata da publicKeySpkiDer per l'utilizzo con platformKeys.subtleCrypto a callback.

Parametri

  • publicKeySpkiDer

    ArrayBuffer

    Un SubjectPublicKeyInfo X.509 con codifica DER, ottenuto ad esempio chiamando la funzione exportKey di WebCrypto con format="spki".

  • Parametri

    oggetto

    Fornisce i parametri dell'algoritmo di firma e di hashing, oltre a quelli fissati dalla chiave stessa. Vengono accettati gli stessi parametri della funzione importKey di WebCrypto, ad esempio RsaHashedImportParams per una chiave RSASSA-PKCS1-v1_5. Per le chiavi RSASSA-PKCS1-v1_5, dobbiamo anche passare un parametro "hash" { "hash": { "name": string } }. Il parametro "hash" rappresenta il nome dell'algoritmo di hashing da utilizzare nell'operazione di digest prima di una firma. È possibile passare "none" come nome dell'hash. In questo caso, la funzione di firma applicherà il padding PKCS#1 v1.5, ma non eseguirà l'hashing dei dati forniti.

    Attualmente, questo metodo supporta l'algoritmo "ECDSA" con curva denominata P-256 e l'algoritmo "RSASSA-PKCS1-v1_5" con uno degli algoritmi di hashing "none", "SHA-1", "SHA-256", "SHA-384" e "SHA-512".

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

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

    • publicKey

      oggetto

    • privateKey

      object facoltativo

      Potrebbe essere null se questa estensione non ha accesso.

selectClientCertificates()

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

Questo metodo filtra da un elenco di certificati client quelli noti alla piattaforma, che corrispondono a request e per i quali l'estensione dispone dell'autorizzazione per accedere al certificato e alla relativa chiave privata. Se interactive è impostato su True, all'utente viene mostrata una finestra di dialogo in cui può selezionare i certificati corrispondenti e concedere all'estensione l'accesso al certificato. I certificati client selezionati/filtrati verranno trasmessi a callback.

Parametri

  • dettagli
  • callback

    funzione elemento facoltativo

    Il parametro callback ha il seguente aspetto:

    (matches: Match[]) => void

    • corrisponde a

      L'elenco dei certificati che corrispondono alla richiesta, per i quali l'estensione dispone dell'autorizzazione e, se interactive è true, che sono stati selezionati dall'utente.

Resi

  • Promise<Match[]>

    Chrome 121 e versioni successive

    Le promise sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.

subtleCrypto()

chrome.platformKeys.subtleCrypto(): object | undefined

Un'implementazione di SubtleCrypto di WebCrypto che consente operazioni di crittografia sulle chiavi dei certificati client disponibili per questa estensione.

Resi

  • object | undefined

verifyTLSServerCertificate()

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

Controlla se details.serverCertificateChain può essere considerato attendibile per details.hostname in base alle impostazioni di attendibilità della piattaforma. Nota: il comportamento effettivo della verifica dell'attendibilità non è completamente specificato e potrebbe cambiare in futuro. L'implementazione dell'API verifica la scadenza del certificato, convalida il percorso di certificazione e controlla l'attendibilità da parte di una CA nota. L'implementazione deve rispettare l'EKU serverAuth e supportare i nomi alternativi del soggetto.

Parametri

Resi

  • Chrome 121 e versioni successive

    Le promise sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.