Descrição
Use a API chrome.platformKeys para acessar certificados de cliente gerenciados pela plataforma. Se o usuário ou a política conceder a permissão, uma extensão poderá usar esse certificado no protocolo de autenticação personalizado. Por exemplo, isso permite o uso de certificados gerenciados pela plataforma em VPNs de terceiros (consulte chrome.vpnProvider).
Permissões
platformKeysDisponibilidade
Tipos
ClientCertificateRequest
Propriedades
- 
    certificateAuthoritiesArrayBuffer[] Lista de nomes distintos de autoridades certificadoras permitidas pelo servidor. Cada entrada precisa ser um DistinguishedName X.509 codificado em DER. 
- 
    certificateTypesEste campo é uma lista dos tipos de certificados solicitados, classificados de acordo com a preferência do servidor. Somente certificados de um tipo contido nesta lista serão recuperados. No entanto, se certificateTypesfor a lista vazia, certificados de qualquer tipo serão retornados.
ClientCertificateType
Enumeração
"rsaSign" 
 
"ecdsaSign" 
 
Match
Propriedades
- 
    certificadoArrayBuffer A codificação DER de um certificado X.509. 
- 
    keyAlgorithmobjeto O KeyAlgorithm da chave certificada. Ele contém parâmetros de algoritmo inerentes à chave do certificado, como o comprimento da chave. Outros parâmetros, como a função de hash usada pela função de sinalização, não estão incluídos. 
SelectDetails
Propriedades
- 
    clientCertsArrayBuffer[] opcional Se fornecido, o selectClientCertificatesvai operar nessa lista. Caso contrário, vai buscar a lista de todos os certificados dos repositórios de certificados da plataforma que estão disponíveis para essas extensões. As entradas para as quais a extensão não tem permissão ou que não correspondem à solicitação são removidas.
- 
    interativobooleano Se for "true", a lista filtrada será apresentada ao usuário para que ele selecione manualmente um certificado, concedendo à extensão acesso aos certificados e chaves. Somente os certificados selecionados serão retornados. Se for "false", a lista será reduzida a todos os certificados que a extensão tem permissão para acessar (de forma automática ou manual). 
- 
    solicitaçãoSomente os certificados que corresponderem a essa solicitação serão retornados. 
VerificationDetails
Propriedades
- 
    nome do hoststring O nome do host do servidor para verificar o certificado, por exemplo, o servidor que apresentou o serverCertificateChain.
- 
    serverCertificateChainArrayBuffer[] Cada entrada de cadeia precisa ser a codificação DER de um certificado X.509. A primeira entrada precisa ser o certificado do servidor, e cada entrada precisa certificar a entrada anterior. 
VerificationResult
Propriedades
- 
    debug_errorsstring[] Se a verificação de confiança falhar, essa matriz vai conter os erros informados pela camada de rede subjacente. Caso contrário, a matriz fica vazia. Observação:essa lista é destinada apenas à depuração e pode não conter todos os erros relevantes. Os erros retornados podem mudar em revisões futuras desta API e não têm garantia de compatibilidade com versões anteriores ou posteriores. 
- 
    confiávelbooleano O resultado da verificação de confiança: "true" se a confiança para os detalhes de verificação fornecidos puder ser estabelecida e "false" se a confiança for rejeitada por qualquer motivo. 
Métodos
getKeyPair()
chrome.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
): void
Transmite o par de chaves de certificate para uso com platformKeys.subtleCrypto para callback.
Parâmetros
- 
    certificadoArrayBuffer O certificado de um Matchretornado porselectClientCertificates.
- 
    parâmetrosobjeto Determina parâmetros de algoritmo de assinatura/hash, além dos parâmetros fixados pela própria chave. Os mesmos parâmetros são aceitos pela função importKey do WebCrypto, por exemplo, RsaHashedImportParamspara uma chave RSASSA-PKCS1-v1_5 eEcKeyImportParamspara uma chave EC. Além disso, para chaves RSASSA-PKCS1-v1_5, o parâmetro de nome do algoritmo de hash pode ser especificado com um dos seguintes valores: "none", "SHA-1", "SHA-256", "SHA-384" ou "SHA-512", por exemplo,{"hash": { "name": "none" } }. A função de assinatura vai aplicar o padding PKCS#1 v1.5, mas não vai fazer hash dos dados fornecidos.No momento, esse método só é compatível com os algoritmos "RSASSA-PKCS1-v1_5" e "ECDSA". 
- 
    callbackfunção O parâmetro callbacktem esta aparência:(publicKey: object, privateKey?: object) => void - 
    publicKeyobjeto 
- 
    privateKeyobjeto opcional Pode ser nullse a extensão não tiver acesso a ele.
 
- 
    
getKeyPairBySpki()
chrome.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
): void
Transfere o par de chaves identificado por publicKeySpkiDer para uso com platformKeys.subtleCrypto para callback.
Parâmetros
- 
    publicKeySpkiDerArrayBuffer Um SubjectPublicKeyInfo X.509 codificado em DER, obtido, por exemplo, chamando a função exportKey do WebCrypto com format="spki". 
- 
    parâmetrosobjeto Fornece parâmetros de algoritmo de assinatura e hash, além daqueles fixados pela própria chave. Os mesmos parâmetros são aceitos pela função importKey do WebCrypto, por exemplo, RsaHashedImportParamspara uma chave RSASSA-PKCS1-v1_5. Para chaves RSASSA-PKCS1-v1_5, também precisamos transmitir um parâmetro "hash"{ "hash": { "name": string } }. O parâmetro "hash" representa o nome do algoritmo de hash a ser usado na operação de resumo antes de uma assinatura. É possível transmitir "none" como o nome do hash. Nesse caso, a função de assinatura vai aplicar o padding PKCS#1 v1.5, mas não vai fazer hash dos dados fornecidos.No momento, esse método é compatível com o algoritmo "ECDSA" com curva nomeada P-256 e o algoritmo "RSASSA-PKCS1-v1_5" com um dos algoritmos de hash "none", "SHA-1", "SHA-256", "SHA-384" e "SHA-512". 
- 
    callbackfunção O parâmetro callbacktem esta aparência:(publicKey: object, privateKey?: object) => void - 
    publicKeyobjeto 
- 
    privateKeyobjeto opcional Pode ser nullse a extensão não tiver acesso a ele.
 
- 
    
selectClientCertificates()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
callback?: function,
): Promise<Match[]>
Esse método filtra de uma lista de certificados de cliente aqueles que são conhecidos pela plataforma, correspondem a request e para os quais a extensão tem permissão para acessar o certificado e a chave privada dele. Se interactive for verdadeiro, o usuário vai receber uma caixa de diálogo em que poderá selecionar entre os certificados correspondentes e conceder acesso da extensão ao certificado. Os certificados de cliente selecionados/filtrados serão transmitidos para callback.
Parâmetros
Retorna
- 
            Promise<Match[]> Chrome 121+As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks. 
subtleCrypto()
chrome.platformKeys.subtleCrypto(): object | undefined
Uma implementação do SubtleCrypto da WebCrypto que permite operações criptográficas em chaves de certificados do cliente disponíveis para essa extensão.
Retorna
- 
            object | undefined 
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
): Promise<VerificationResult>
Verifica se details.serverCertificateChain pode ser confiável para details.hostname de acordo com as configurações de confiança da plataforma. Observação: o comportamento real da verificação de confiança não está totalmente especificado e pode mudar no futuro. A implementação da API verifica a validade do certificado, valida o caminho de certificação e verifica a confiança por uma CA conhecida. A implementação precisa respeitar o EKU serverAuth e aceitar nomes alternativos de assunto.
Parâmetros
- 
    detalhes
- 
    callbackfunção opcional O parâmetro callbacktem esta aparência:(result: VerificationResult) => void - 
    resultado
 
- 
    
Retorna
- 
            Promise<VerificationResult> Chrome 121+As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.