chrome.platformKeys

дата обновления: 2026-09-25 robots: noindex

Описание

Используйте API chrome.platformKeys для доступа к клиентским сертификатам, управляемым платформой. Если пользователь или политика предоставляют разрешение, расширение может использовать такой сертификат в своем пользовательском протоколе аутентификации. Например, это позволяет использовать сертификаты, управляемые платформой, в VPN-сервисах третьих сторон (см. chrome.vpnProvider ).

Разрешения

platformKeys

Доступность

Chrome 45+ (только ChromeOS)

Типы

ClientCertificateRequest

Характеристики

  • центры сертификации

    ArrayBuffer[]

    Список отличительных имен центров сертификации, разрешенных сервером. Каждая запись должна представлять собой отличительное имя X.509 в кодировке DER.

  • certificateTypes

    В этом поле представлен список типов запрошенных сертификатов, отсортированных в порядке предпочтения сервера. Будут получены только сертификаты того типа, который содержится в этом списке. Однако если список certificateTypes пуст, будут возвращены сертификаты любого типа.

ClientCertificateType

Перечисление

"rsaSign"

"ecdsaSign"

Match

Характеристики

  • сертификат

    ArrayBuffer

    Кодировка DER сертификата X.509.

  • ключевой алгоритм

    объект

    Алгоритм ключа (KeyAlgorithm ) сертифицированного сертификата. Он содержит параметры алгоритма, присущие ключу сертификата (например, длина ключа). Другие параметры, такие как хеш-функция, используемая функцией подписи, не включены.

SelectDetails

Характеристики

  • клиентские сертификаты

    ArrayBuffer[] необязательный

    Если параметр selectClientCertificates указан, он работает с этим списком. В противном случае, он получает список всех сертификатов из хранилищ сертификатов платформы, доступных для данного расширения. Записи, к которым расширение не имеет доступа или которые не соответствуют запросу, удаляются.

  • интерактивный

    логический

    Если значение равно true, отфильтрованный список отображается пользователю для ручного выбора сертификата, что предоставляет расширению доступ к сертификату(ам) и ключу(ам). Будут возвращены только выбранные сертификаты. Если значение равно false, список сокращается до всех сертификатов, к которым расширению предоставлен доступ (автоматически или вручную).

  • Будут возвращены только сертификаты, соответствующие данному запросу.

VerificationDetails

Характеристики

  • имя хоста

    нить

    Имя хоста сервера, для которого необходимо проверить сертификат, например, сервер, предоставивший serverCertificateChain .

  • цепочка сертификатов сервера

    ArrayBuffer[]

    Каждая запись в цепочке должна представлять собой DER-кодировку сертификата X.509, первая запись должна быть сертификатом сервера, а каждая последующая запись должна подтверждать подлинность предыдущей.

VerificationResult

Характеристики

  • debug_errors

    нить[]

    Если проверка доверия не удалась, этот массив содержит ошибки, сообщенные нижележащим сетевым уровнем. В противном случае этот массив пуст.

    Примечание: Этот список предназначен только для отладки и может не содержать всех соответствующих ошибок. Возвращаемые ошибки могут измениться в будущих версиях этого API, и их совместимость с предыдущими или будущими версиями не гарантируется.

  • доверенный

    логический

    Результат проверки доверия: true, если доверие к указанным данным проверки было установлено, и false, если доверие отклонено по какой-либо причине.

Методы

getKeyPair()

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

Передает пару ключей certificate для использования с platformKeys.subtleCrypto в callback .

Параметры

  • сертификат

    ArrayBuffer

    Сертификат Match , возвращенный функцией selectClientCertificates .

  • параметры

    объект

    Определяет параметры алгоритма подписи/хеширования в дополнение к параметрам, заданным самим ключом. Принимаются те же параметры, что и в функции importKey WebCrypto, например, RsaHashedImportParams для ключа RSASSA-PKCS1-v1_5 и EcKeyImportParams для ключа EC. Кроме того, для ключей RSASSA-PKCS1-v1_5 параметр имени алгоритма хеширования может быть указан с одним из следующих значений: "none", "SHA-1", "SHA-256", "SHA-384" или "SHA-512", например {"hash": { "name": "none" } } . В этом случае функция подписи применит заполнение PKCS#1 v1.5, но не будет хешировать заданные данные.

    В настоящее время этот метод поддерживает только алгоритмы "RSASSA-PKCS1-v1_5" и "ECDSA".

  • перезвонить

    функция

    Параметр callback выглядит следующим образом:

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

    • publicKey

      объект

    • закрытый ключ

      объект необязательный

      Значение может быть null если данное расширение не имеет к нему доступа.

getKeyPairBySpki()

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

Передает пару ключей, идентифицированную параметром publicKeySpkiDer , для использования с platformKeys.subtleCrypto в callback .

Параметры

  • publicKeySpkiDer

    ArrayBuffer

    Закодированная в формате DER информация о публичном ключе субъекта X.509, полученная, например, путем вызова функции exportKey в WebCrypto с параметром format="spki".

  • параметры

    объект

    Предоставляет параметры подписи и алгоритма хеширования в дополнение к тем, которые заданы самим ключом. Принимаются те же параметры, что и в функции importKey WebCrypto, например, RsaHashedImportParams для ключа RSASSA-PKCS1-v1_5. Для ключей RSASSA-PKCS1-v1_5 необходимо также передать параметр "hash" { "hash": { "name": string } } . Параметр "hash" представляет собой имя алгоритма хеширования, который будет использоваться в операции дайджеста перед подписью. Можно передать "none" в качестве имени хеша, в этом случае функция подписи применит заполнение PKCS#1 v1.5, но не будет хешировать предоставленные данные.

    В настоящее время этот метод поддерживает алгоритм "ECDSA" с именованной кривой P-256 и алгоритм "RSASSA-PKCS1-v1_5" с одним из алгоритмов хеширования: "none", "SHA-1", "SHA-256", "SHA-384" и "SHA-512".

  • перезвонить

    функция

    Параметр callback выглядит следующим образом:

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

    • publicKey

      объект

    • закрытый ключ

      объект необязательный

      Значение может быть null если данное расширение не имеет к нему доступа.

selectClientCertificates()

Обещать
chrome.platformKeys.selectClientCertificates(
  details: SelectDetails,
  callback?: function,
)
: Promise<Match[]>

Этот метод фильтрует из списка клиентских сертификатов те, которые известны платформе, соответствуют request и к которым расширение имеет разрешение на доступ, а также к их закрытому ключу. Если interactive имеет значение true, пользователю отображается диалоговое окно, где он может выбрать из соответствующих сертификатов и предоставить расширению доступ к сертификату. Выбранные/отфильтрованные клиентские сертификаты будут переданы в callback .

Параметры

  • подробности
  • перезвонить

    функция необязательна

    Параметр callback выглядит следующим образом:

    (matches: Match[]) => void

    • Список сертификатов, соответствующих запросу, на которые расширение имеет разрешение и, если interactive имеет значение true, которые были выбраны пользователем.

Возвраты

  • Обещание< Совпадение []>

    Chrome 121+

    Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.

subtleCrypto()

chrome.platformKeys.subtleCrypto(): object | undefined

Реализация SubtleCrypto от WebCrypto, позволяющая выполнять криптографические операции с ключами клиентских сертификатов, доступных для этого расширения.

Возвраты

  • объект | неопределено

verifyTLSServerCertificate()

Обещать
chrome.platformKeys.verifyTLSServerCertificate(
  details: VerificationDetails,
  callback?: function,
)
: Promise<VerificationResult>

Проверяет, можно ли доверять details.serverCertificateChain для details.hostname в соответствии с настройками доверия платформы. Примечание: фактическое поведение проверки доверия не полностью определено и может измениться в будущем. Реализация API проверяет срок действия сертификата, подтверждает путь сертификации и проверяет доверие со стороны известного центра сертификации. Предполагается, что реализация учитывает serverAuth EKU и поддерживает альтернативные имена субъекта.

Параметры

Возвраты

  • Promise< VerificationResult >

    Chrome 121+

    Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.