chrome.platformKeys

refresh date: 2026-09-25 robots: noindex

Descrição

Use a API chrome.platformKeys para acessar os certificados do 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

platformKeys

Disponibilidade

Chrome 45+ Somente no ChromeOS

Tipos

ClientCertificateRequest

Propriedades

  • certificateAuthorities

    ArrayBuffer[]

    Lista de nomes diferenciados de autoridades certificadoras permitidas pelo servidor. Cada entrada precisa ser um DistinguishedName X.509 codificado em DER.

  • certificateTypes

    Esse campo é uma lista dos tipos de certificados solicitados, classificados em ordem de preferência do servidor. Somente os certificados de um tipo contido nessa lista serão recuperados. No entanto, se certificateTypes for uma lista vazia, os certificados de qualquer tipo serão retornados.

ClientCertificateType

Enumeração

"rsaSign"

"ecdsaSign"

Match

Propriedades

  • certificado

    ArrayBuffer

    A codificação DER de um certificado X.509.

  • keyAlgorithm

    objeto

    O KeyAlgorithm da chave certificada. Contém parâmetros de algoritmo inerentes à chave do certificado (por exemplo, o tamanho da chave). Outros parâmetros, como a função hash usada pela função de assinatura, não estão incluídos.

SelectDetails

Propriedades

  • clientCerts

    ArrayBuffer[] opcional

    Se fornecido, o selectClientCertificates opera nessa lista. Caso contrário, recebe 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.

  • interativo

    booleano

    Se for verdadeiro, a lista filtrada será apresentada ao usuário para que ele selecione manualmente um certificado, concedendo à extensão acesso aos certificados e às chaves. Somente os certificados selecionados serão retornados. Se for falso, a lista será reduzida a todos os certificados que a extensão tem permissão para acessar (de forma automática ou manual).

  • solicitação

    Somente os certificados que corresponderem a essa solicitação serão retornados.

VerificationDetails

Propriedades

  • nome do host

    string

    O nome do host do servidor para verificar o certificado, por exemplo, o servidor que apresentou o serverCertificateChain.

  • serverCertificateChain

    ArrayBuffer[]

    Cada entrada da 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_errors

    string[]

    Se a verificação de confiança falhar, essa matriz vai conter os erros relatados pela camada de rede subjacente. Caso contrário, essa matriz estará 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 futuras.

  • confiável

    booleano

    O resultado da verificação de confiança: verdadeiro se a confiança para os detalhes de verificação fornecidos puder ser estabelecida e falso 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

  • certificado

    ArrayBuffer

    O certificado de um Match retornado por selectClientCertificates.

  • parâmetros

    objeto

    Determina os parâmetros do 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 da WebCrypto, por exemplo, RsaHashedImportParams para uma chave RSASSA-PKCS1-v1_5 e EcKeyImportParams para 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 preenchimento PKCS#1 v1.5, mas não vai gerar um hash dos dados fornecidos.

    No momento, esse método só é compatível com os algoritmos "RSASSA-PKCS1-v1_5" e "ECDSA".

  • callback

    função

    O parâmetro callback é semelhante a:

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

    • publicKey

      objeto

    • privateKey

      objeto optional

      Pode ser null se a extensão não tiver acesso a ele.

getKeyPairBySpki()

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

Transmite o par de chaves identificado por publicKeySpkiDer para uso com platformKeys.subtleCrypto para callback.

Parâmetros

  • publicKeySpkiDer

    ArrayBuffer

    Um SubjectPublicKeyInfo X.509 codificado em DER, obtido, por exemplo, chamando a função exportKey do WebCrypto com format="spki".

  • parâmetros

    objeto

    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 da WebCrypto, por exemplo, RsaHashedImportParams para 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 preenchimento PKCS#1 v1.5, mas não vai gerar o hash dos dados fornecidos.

    No momento, esse método é compatível com o algoritmo "ECDSA" com a 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".

  • callback

    função

    O parâmetro callback é semelhante a:

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

    • publicKey

      objeto

    • privateKey

      objeto optional

      Pode ser null se a extensão não tiver acesso a ele.

selectClientCertificates()

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

Esse método filtra, de uma lista de certificados do cliente, aqueles que são conhecidos pela plataforma, correspondem a request e para os quais a extensão tem permissão de acesso ao certificado e à chave privada. Se interactive for verdadeiro, o usuário verá uma caixa de diálogo em que poderá selecionar um dos certificados correspondentes e conceder à extensão acesso a ele. Os certificados do cliente selecionados/filtrados serão transmitidos para o callback.

Parâmetros

  • detalhes
  • callback

    função optional

    O parâmetro callback é semelhante a:

    (matches: Match[]) => void

    • correspondências

      A lista de certificados que correspondem à solicitação, para os quais a extensão tem permissão e, se interactive for verdadeiro, que foram selecionados pelo usuário.

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 do WebCrypto que permite operações de criptografia em chaves de certificados do cliente disponíveis para essa extensão.

Retorna

  • object | undefined

verifyTLSServerCertificate()

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

Verifica se details.serverCertificateChain é 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 é 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 de uma CA conhecida. A implementação precisa respeitar o EKU serverAuth e aceitar nomes alternativos do sujeito.

Parâmetros

Retorna

  • Chrome 121+

    As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.