Descrizione
Utilizza l'API chrome.platformKeys per accedere ai certificati client gestiti dalla piattaforma. Se l'utente o il criterio concede l'autorizzazione, un'estensione può utilizzare questo certificato nel proprio protocollo di autenticazione personalizzato. Ad esempio, ciò consente l'utilizzo di certificati gestiti dalla piattaforma in VPN di terze parti (vedi chrome.vpnProvider).
Autorizzazioni
platformKeysDisponibilità
Tipi
ClientCertificateRequest
Proprietà
- 
    certificateAuthoritiesArrayBuffer[] Elenco dei nomi distinti delle autorità di certificazione consentite dal server. Ogni voce deve essere un DistinguishedName X.509 con codifica DER. 
- 
    certificateTypesQuesto campo è un elenco dei tipi di certificati richiesti, ordinati in base alle preferenze del server. Verranno recuperati solo i certificati di un tipo contenuto in questo elenco. Se certificateTypesè l'elenco vuoto, verranno restituiti certificati di qualsiasi tipo.
ClientCertificateType
Enum
"rsaSign" 
 
"ecdsaSign" 
 
Match
Proprietà
- 
    certificatoArrayBuffer Codifica DER di un certificato X.509. 
- 
    keyAlgorithmoggetto L'KeyAlgorithm della chiave certificata. Contiene i 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 segno. 
SelectDetails
Proprietà
- 
    clientCertsArrayBuffer[] facoltativo Se specificato, selectClientCertificatesopera 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 cui l'estensione non dispone dell'autorizzazione o che non corrispondono alla richiesta vengono rimosse.
- 
    interattivobooleano Se è true, l'utente visualizza l'elenco filtrato 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 l'estensione ha ottenuto l'accesso (automaticamente o manualmente). 
- 
    richiestaVerranno restituiti solo i certificati che corrispondono a questa richiesta. 
VerificationDetails
Proprietà
- 
    nome hoststringa Il nome host del server per cui verificare il certificato, ad esempio il server che ha presentato serverCertificateChain.
- 
    serverCertificateChainArrayBuffer[] 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 precedente. 
VerificationResult
Proprietà
- 
    debug_errorsstring[] Se la verifica dell'attendibilità non è riuscita, 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 successive. 
- 
    attendibilebooleano Il risultato della verifica dell'attendibilità: true se è stato 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
- 
    certificatoArrayBuffer Il certificato di un Matchrestituito daselectClientCertificates.
- 
    Parametrioggetto Determina i parametri dell'algoritmo di firma/hash in aggiunta a quelli fissati dalla chiave stessa. Vengono accettati gli stessi parametri della funzione importKey di WebCrypto, ad esempio RsaHashedImportParamsper una chiave RSASSA-PKCS1-v1_5 eEcKeyImportParamsper 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 il padding 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". 
- 
    callbackfunzione Il parametro callbackha il seguente aspetto:(publicKey: object, privateKey?: object) => void - 
    publicKeyoggetto 
- 
    privateKeyoggetto facoltativo Potrebbe essere nullse questa estensione non ha accesso.
 
- 
    
getKeyPairBySpki()
chrome.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
): void
Trasferisce la coppia di chiavi identificata da publicKeySpkiDer per l'utilizzo con platformKeys.subtleCrypto a callback.
Parametri
- 
    publicKeySpkiDerArrayBuffer Un SubjectPublicKeyInfo X.509 con codifica DER, ottenuto ad esempio chiamando la funzione exportKey di WebCrypto con format="spki". 
- 
    Parametrioggetto Fornisce i parametri dell'algoritmo di firma e hash, oltre a quelli fissati dalla chiave stessa. Vengono accettati gli stessi parametri della funzione importKey di WebCrypto, ad esempio RsaHashedImportParamsper una chiave RSASSA-PKCS1-v1_5. Per le chiavi RSASSA-PKCS1-v1_5, dobbiamo trasmettere anche un parametro "hash"{ "hash": { "name": string } }. Il parametro "hash" rappresenta il nome dell'algoritmo di hashing da utilizzare nell'operazione di digest prima di un segno. È possibile passare "none" come nome dell'hash, nel qual 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". 
- 
    callbackfunzione Il parametro callbackha il seguente aspetto:(publicKey: object, privateKey?: object) => void - 
    publicKeyoggetto 
- 
    privateKeyoggetto facoltativo Potrebbe essere nullse questa estensione non ha accesso.
 
- 
    
selectClientCertificates()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
callback?: function,
): Promise<Match[]>
Questo metodo filtra da un elenco di certificati client quelli noti alla piattaforma, corrispondenti a request e per i quali l'estensione ha l'autorizzazione per accedere al certificato e alla relativa chiave privata. Se interactive è 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 passati a callback.
Parametri
- 
    dettagli
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:(matches: Match[]) => void - 
    corrisponde aMatch[] 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+Le promesse sono supportate solo per Manifest V3 e versioni successive, 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()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
): Promise<VerificationResult>
Verifica 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'affidabilità 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 EKU serverAuth e supportare i nomi alternativi del soggetto.
Parametri
- 
    dettagli
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:(result: VerificationResult) => void - 
    risultato
 
- 
    
Resi
- 
            Promise<VerificationResult> Chrome 121+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback.