chrome.platformKeys

Description

使用 chrome.platformKeys API 访问由平台管理的客户端证书。如果用户或策略授予权限,扩展可以在其自定义身份验证协议中使用此类证书。例如。这允许在第三方 VPN 中使用平台管理的证书(请参阅 chrome.vpnProvider)。

Permissions

platformKeys

Availability

Chrome 45+ Foreground only

Summary

Types

ClientCertificateRequest

PROPERTIES

  • certificateAuthorities

    ArrayBuffer[]

    服务器允许的证书颁发机构的专有名称列表。每个条目必须是 DER 编码的 X.509 DistinguishedName。

  • certificateTypes

    ClientCertificateType[]

    此字段是所请求证书类型的列表,按服务器的首选项排序。仅检索此列表中包含的类型的证书。但是,如果 certificateTypes 是空列表,则将返回任何类型的证书。

ClientCertificateType

TYPE

"rsaSign", or "ecdsaSign"

Match

PROPERTIES

  • certificate

    ArrayBuffer

    X.509 证书的 DER 编码。

  • keyAlgorithm

    object

    认证密钥的密钥KeyAlgorithm算法。这包含证书密钥固有的算法参数(例如密钥长度)。不包括其他参数,如符号函数使用的哈希函数。

SelectDetails

PROPERTIES

  • clientCerts

    ArrayBuffer[] optional

    如果给定,则 selectClientCertificates 对该列表进行操作。否则,从该扩展可用的平台证书存储中获取所有证书的列表。扩展没有权限或与请求不匹配的条目将被删除。

  • interactive

    boolean

    如果为真,则向用户呈现过滤列表以手动选择证书,从而授予对证书和密钥的扩展访问权。只会返回选定的证书。如果为 false,则列表将缩减为扩展已被授予访问权限(自动或手动)的所有证书。

  • request

    ClientCertificateRequest

    只会返回与此请求匹配的证书。

VerificationDetails

PROPERTIES

  • hostname

    string

    用于验证证书的服务器的主机名,例如提供 serverCertificateChain 的服务器。

  • serverCertificateChain

    ArrayBuffer[]

    每个链条目必须是 X.509 证书的 DER 编码,第一个条目必须是服务器证书,每个条目必须证明它前面的条目。

VerificationResult

PROPERTIES

  • debug_errors

    string[]

    如果信任验证失败,则该数组包含底层网络层报告的错误。否则,此数组为空。

    注意:此列表仅用于调试,可能不包含所有相关错误。返回的错误可能会在此 API 的未来修订版中发生变化,并且不保证向前或向后兼容。

  • trusted

    boolean

    信任验证的结果:如果可以建立对给定验证详细信息的信任,则为 true,如果出于任何原因拒绝信任,则为 false。

Methods

getKeyPair

chrome.platformKeys.getKeyPair(
  certificate: ArrayBuffer,
  parameters: object,
  callback: function,
)

将用于 platformKeys.subtleCrypto 的证书密钥certificate对传递给回调callback

PARAMETERS

  • certificate

    ArrayBuffer

    selectClientCertificates 返回的匹配Match证书。

  • parameters

    object

    除了由密钥本身固定的参数之外,还确定签名/哈希算法参数。 WebCrypto 的 importKey 函数接受相同的参数,例如RSASSA-PKCS1-v1_5 密钥为 RsaHashedImportParams,EC 密钥为 EcKeyImportParams。此外,对于 RSASSA-PKCS1-v1_5 密钥,可以使用以下值之一指定散列算法名称参数:“none”、“SHA-1”、“SHA-256”、“SHA-384”或“SHA-512”,例如{"hash": { "name": "none" } }。然后 sign 函数将应用 PKCS#1 v1.5 填充,但不会散列给定的数据。

    目前,该方法仅支持“RSASSA-PKCS1-v1_5”和“ECDSA”算法。

  • callback

    function

    The callback parameter looks like:

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

      object

    • privateKey

      object optional

      如果此扩展无权访问它,则可能为 null。

getKeyPairBySpki

chrome.platformKeys.getKeyPairBySpki(
  publicKeySpkiDer: ArrayBuffer,
  parameters: object,
  callback: function,
)

Chrome 85+

publicKeySpkiDer 标识的密钥对与platformKeys.subtleCrypto 一起使用传递给回调callback

PARAMETERS

  • publicKeySpkiDer

    ArrayBuffer

    DER 编码的 X.509 SubjectPublicKeyInfo,例如获得通过使用 format="spki" 调用 WebCrypto 的 exportKey 函数。

  • parameters

    object

    除了由密钥本身固定的参数外,还提供签名和哈希算法参数。 WebCrypto 的 importKey 函数接受相同的参数,例如RSASSA-PKCS1-v1_5 密钥的 RsaHashedImportParams。对于 RSASSA-PKCS1-v1_5 密钥,我们还需要传递一个“hash”参数{“hash”:{“name”:string}}。“hash”参数表示在符号前的摘要操作中使用的散列算法的名称。可以传递“none”作为散列名称,在这种情况下,符号函数将应用 PKCS#1 v1.5 填充,但不会散列给定的数据。

    目前,此方法支持使用命名曲线 P-256 的“ECDSA”算法和使用散列算法“none”、“SHA-1”、“SHA-256”、“SHA”之一的“RSASSA-PKCS1-v1_5”算法-384”和“SHA-512”。

  • callback

    function

    The callback parameter looks like:

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

      object

    • privateKey

      object optional

      如果此扩展无权访问它,则可能为 null

selectClientCertificates

chrome.platformKeys.selectClientCertificates( details: SelectDetails, callback: function, )

此方法从客户端证书列表中筛选出平台已知、匹配请求request以及扩展程序有权访问证书及其私钥的证书。如果交互interactive为真,则向用户显示一个对话框,他们可以在其中从匹配的证书中进行选择并授予扩展访问证书的权限。选定/过滤的客户端证书将传递给回调callback

PARAMETERS

  • details

    SelectDetails

  • callback

    function

    The callback parameter looks like:

    (matches: Match[]) => void

    • matches

      Match[]

      与请求匹配的证书列表,扩展程序具有权限,如果交互interactive为真,则由用户选择。

subtleCrypto

chrome.platformKeys.subtleCrypto()

WebCrypto 的 SubtleCrypto 的实现,它允许对此扩展可用的客户端证书的密钥进行加密操作。

RETURNS

  • object | undefined

verifyTLSServerCertificate

chrome.platformKeys.verifyTLSServerCertificate(
  details: VerificationDetails,
  callback: function,
)

根据平台的信任设置,检查 details.serverCertificateChain 是否可以信任 details.hostname。注意:信任验证的实际行为并未完全指定,将来可能会发生变化。API 实现验证证书到期、验证证书路径并检查已知 CA 的信任。该实现应该尊重 EKU serverAuth 并支持主题备用名称。

PARAMETERS

By.一粒技术服务.

results matching ""

    No results matching ""