Descrizione
Utilizza l'API chrome.platformKeys
per accedere ai certificati client gestiti dalla piattaforma. Se l'utente o il criterio concedono l'autorizzazione, un'estensione può utilizzare questo certificato nel proprio protocollo di autenticazione personalizzato. Ad es. Questa opzione consente l'utilizzo di certificati gestiti dalla piattaforma in VPN di terze parti (vedi chrome.vpnProvider).
Autorizzazioni
platformKeys
Disponibilità
Tipi
ClientCertificateRequest
Proprietà
-
certificateAuthorities
ArrayBuffer[]
Elenco di nomi distinti delle autorità di certificazione consentiti dal server. Ciascuna voce deve essere un DN DN (DistinguitedName) con codifica DER.
-
certificateTypes
Questo campo elenca i tipi di certificati richiesti, ordinati in base alle preferenze 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
Il valore KeyAlgorithm della chiave certificata. Contiene parametri dell'algoritmo inerenti alla chiave del certificato (ad es. la lunghezza della chiave). Non sono inclusi altri parametri come la funzione hash utilizzata dalla funzione di firma.
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 questa estensione. Le voci per le quali l'estensione non dispone dell'autorizzazione o che non corrisponde alla richiesta vengono rimosse. -
interattivo
booleano
Se il valore è true, l'elenco filtrato viene presentato all'utente per selezionare manualmente un certificato, concedendo 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).
-
richiesta
Verranno restituiti solo i certificati che corrispondono a questa richiesta.
VerificationDetails
Proprietà
-
nome host
stringa
Il nome host del server per il quale verificare il certificato, ad esempio il server che ha presentato
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 la voce che lo precede.
VerificationResult
Proprietà
-
debug_errors
stringa[]
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 solo 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 precedenti.
-
attendibile
booleano
Il risultato della verifica dell'attendibilità: true se è possibile stabilire la fiducia per i dettagli della verifica forniti e falso se viene rifiutata per qualsiasi motivo la fiducia.
Metodi
getKeyPair()
chrome.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
)
Trasmette la coppia di chiavi certificate
per l'utilizzo con platformKeys.subtleCrypto
a callback
.
Parametri
-
certificato
ArrayBuffer
Il certificato di
Match
restituito daselectClientCertificates
. -
Parametri
oggetto
Determina i parametri dell'algoritmo di firma/hash in aggiunta ai parametri fissati dalla chiave stessa. Sono accettati gli stessi parametri accettati dalla funzione importKey di WebCrypto, ad esempio
RsaHashedImportParams
per una chiave RSASSA-PKCS1-v1_5 eEcKeyImportParams
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 es.{"hash": { "name": "none" } }
. La funzione di segno applicherà quindi la spaziatura interna PKCS#1 v1.5, ma non eseguirà l'hashing dei dati specificati.Attualmente, questo metodo supporta solo "RSASSA-PKCS1-v1_5" e "ECDSA" degli algoritmi.
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(publicKey: object, privateKey?: object) => void
-
publicKey
oggetto
-
privateKey
oggetto facoltativo
Potrebbe essere
null
se questa estensione non ha accesso all'estensione.
-
getKeyPairBySpki()
chrome.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
)
Trasmette la coppia di chiavi identificata da publicKeySpkiDer
per l'utilizzo con platformKeys.subtleCrypto
a callback
.
Parametri
-
publicKeySpkiDer
ArrayBuffer
Un oggetto SubjectPublicKeyInfo X.509 con codifica DER, ottenuto ad esempio richiamando la funzione exportKey di WebCrypto con format="spki".
-
Parametri
oggetto
Fornisce i parametri dell'algoritmo di firma e hash, oltre a quelli fissati dalla chiave stessa. Sono accettati gli stessi parametri accettati dalla 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 "hash" parametro{ "hash": { "name": string } }
. L'"hash" rappresenta il nome dell'algoritmo di hashing da utilizzare nell'operazione digest prima di un segno. È possibile passare "nessuno" come nome hash, nel qual caso la funzione di segno applicherà la spaziatura interna PKCS#1 v1.5 e non eseguirà l'hashing dei dati forniti.Attualmente, questo metodo supporta l'ECDSA algoritmo con curva denominata P-256 e "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
oggetto facoltativo
Potrebbe essere
null
se questa estensione non ha accesso all'estensione.
-
selectClientCertificates()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
callback?: function,
)
Questo metodo filtra da un elenco di certificati client quelli noti alla piattaforma, che corrispondono a request
e per i quali l'estensione è autorizzata ad accedere al certificato e alla relativa chiave privata. Se il criterio interactive
è impostato su true, all'utente viene mostrata una finestra di dialogo in cui può scegliere tra i certificati corrispondenti e concedere all'estensione l'accesso al certificato. I certificati client selezionati/filtrati verranno passati a callback
.
Parametri
-
dettagli
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(matches: Match[]) => void
-
corrisponde a
L'elenco di certificati che corrispondono alla richiesta, per i quali l'estensione dispone dell'autorizzazione e, se il criterio
interactive
è impostato su true, che sono stati selezionati dall'utente.
-
Resi
-
Prometti<Corrispondenza[]>
Chrome 121 e versioni successive .Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
subtleCrypto()
chrome.platformKeys.subtleCrypto()
Un'implementazione di SubtleCrypto di WebCrypto che consente operazioni crittografiche sulle chiavi dei certificati client disponibili per questa estensione.
Resi
-
object | non definito
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
)
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à di una CA nota. L'implementazione deve rispettare la funzione EKU serverAuth e supportare nomi alternativi degli oggetti.
Parametri
-
dettagli
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(result: VerificationResult) => void
-
risultato
-
Resi
-
Promise<VerificationResult>
Chrome 121 e versioni successive .Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.