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ò usare tale certificato nel proprio protocollo di autenticazione personalizzato. Ad esempio, è consentito 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 di autorità di certificazione consentite dal server. Ogni voce deve essere un DN X.509 con codifica DER.
-
certificateTypes
Questo campo è un elenco dei tipi di certificati richiesti, ordinati in base alle preferenze del server. Verranno recuperati solo i certificati del tipo contenuto in questo elenco. Se
certificateTypes
è l'elenco vuoto, tuttavia, 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'KeyAlgorithm della chiave certificata. Contiene parametri dell'algoritmo intrinseci alla chiave del certificato (ad es. la lunghezza della chiave). Non sono inclusi altri parametri come la funzione hash utilizzata dalla funzione sign.
SelectDetails
Proprietà
-
clientCerts
ArrayBuffer[] facoltativo
Se fornito,
selectClientCertificates
opera in base a questo elenco. In caso contrario, ottiene l'elenco di tutti i certificati disponibili per questa estensione dagli archivi di certificati della piattaforma. Le voci per le quali l'estensione non ha l'autorizzazione o che non corrispondono alla richiesta vengono rimosse. -
interactive
boolean
Se il valore è true, l'elenco filtrato viene proposto all'utente di 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).
-
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 utilizzare 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 la precede.
VerificationResult
Proprietà
-
debug_errors
stringa[]
Se la verifica dell'attendibilità non va 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 ne è garantito che siano compatibili con le versioni precedenti o successive.
-
attendibile
boolean
Il risultato della verifica dell'attendibilità: true se i dettagli della verifica indicati è stato stabilito e falso se il trust è rifiutato per qualsiasi motivo.
Metodi
getKeyPair()
chrome.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
)
Trasmette a callback
la coppia di chiavi di certificate
per l'utilizzo con platformKeys.subtleCrypto
.
Parametri
-
certificato
ArrayBuffer
Il certificato di una
Match
restituito daselectClientCertificates
. -
Parametri
oggetto
Determina i parametri dell'algoritmo di firma/hash in aggiunta ai parametri stabiliti dalla chiave stessa. Sono accettati gli stessi parametri della funzione importKey di WebCrypto, ad esempio
RsaHashedImportParams
per una chiave RSASSA-PKCS1-v1_5 eEcKeyImportParams
per 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 sign applicherà quindi la spaziatura interna PKCS#1 v1.5 ma non eseguirà l'hashing dei dati specificati.Attualmente, 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
oggetto facoltativo
Il valore potrebbe essere
null
se questa estensione non ha accesso all'estensione.
-
getKeyPairBySpki()
chrome.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
)
Trasmette a callback
la coppia di chiavi identificata da publicKeySpkiDer
per l'utilizzo con platformKeys.subtleCrypto
.
Parametri
-
publicKeySpkiDer
ArrayBuffer
Un X.509 SubjectPublicKeyInfo con codifica DER, ottenuto ad esempio chiamando la funzione esportazioneKey di WebCrypto con formato="spki".
-
Parametri
oggetto
Fornisce i parametri dell'algoritmo di firma e dell'algoritmo di hash, oltre a quelli fissati dalla chiave stessa. Sono 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 passare anche un parametro "hash"{ "hash": { "name": string } }
. Il parametro "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 sign applicherà la spaziatura interna PKCS#1 v1.5 e non eseguirà l'hashing dei dati dati.Attualmente, questo metodo supporta l'algoritmo "ECDSA" con la curva denominata P-256 e l'algoritmo "RSASSA-PKCS1-v1_5" con uno degli algoritmi di hashing "nessuno", "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
Il valore 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
è true, all'utente viene visualizzata 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 dei certificati che corrispondono alla richiesta per i quali l'estensione è autorizzata e, se
interactive
è true, che sono stati selezionati dall'utente.
-
Ritorni
-
Promise<Match[]>
Chrome 121 e versioni successiveLe promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.
subtleCrypto()
chrome.platformKeys.subtleCrypto()
Un'implementazione di SubtleCrypto di WebCrypto che consente operazioni di crittografia sulle chiavi dei certificati client disponibili per questa estensione.
Ritorni
-
oggetto | undefined
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 di attendibilità non è completamente specificato e potrebbe cambiare in futuro. L'implementazione dell'API verifica la scadenza del certificato, convalida il percorso di certificazione e verifica l'attendibilità di una CA nota. L'implementazione deve rispettare il serverAuth EKU e supportare nomi alternativi degli oggetti.
Parametri
-
dettagli
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(result: VerificationResult) => void
-
risultato
-
Ritorni
-
Promise<VerificationResult>
Chrome 121 e versioni successiveLe promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.