chrome.platformKeys

説明

chrome.platformKeys API を使用して、プラットフォームが管理するクライアント証明書にアクセスします。ユーザーまたはポリシーが権限を付与した場合、拡張機能はその証明書をカスタム認証プロトコルで使用できます。例:これにより、サードパーティの VPN でプラットフォームが管理する証明書を使用できるようになります(chrome.vpnProvider を参照)。

権限

platformKeys

対象

Chrome 45 以降 ChromeOS のみ をご覧ください。

ClientCertificateRequest

プロパティ

  • certificateAuthorities

    ArrayBuffer[]

    サーバーで許可されている認証局の識別名のリスト。各エントリは、DER でエンコードされた X.509 DistinguishedName にする必要があります。

  • certificateTypes

    このフィールドは、リクエストされた証明書の種類をサーバーの優先順で並べ替えたリストです。このリストに含まれるタイプの証明書のみを取得します。ただし、certificateTypes が空のリストの場合は、任意のタイプの証明書が返されます。

ClientCertificateType

列挙型

"rsaSign"

"ecdsaSign"

Match

プロパティ

  • 証明書

    ArrayBuffer

    X.509 証明書の DER エンコード。

  • keyAlgorithm

    オブジェクト

    認定された鍵の KeyAlgorithm。これには、証明書の鍵に固有のアルゴリズム パラメータ(鍵の長さなど)が含まれます。署名関数で使用されるハッシュ関数などの他のパラメータは含まれません。

SelectDetails

プロパティ

  • clientCerts

    ArrayBuffer[] 省略可

    指定すると、selectClientCertificates はこのリストで動作します。それ以外の場合、プラットフォームの証明書ストアからこの拡張機能で利用できるすべての証明書のリストを取得します。拡張機能に権限がないエントリや、リクエストと一致しないエントリは削除されます。

  • インタラクティブ

    ブール値

    true の場合、フィルタされたリストがユーザーに提示され、証明書を手動で選択することで、証明書と鍵へのアクセス権が拡張機能に付与されます。選択した証明書のみが返されます。false の場合、拡張機能が(自動または手動で)アクセスを許可されているすべての証明書にリストが縮小されます。

  • このリクエストに一致する証明書のみが返されます。

VerificationDetails

プロパティ

  • hostname

    文字列

    証明書を検証するサーバーのホスト名(例:serverCertificateChain を提示したサーバー。

  • serverCertificateChain

    ArrayBuffer[]

    各チェーン エントリは X.509 証明書の DER エンコードでなければならず、最初のエントリはサーバー証明書でなければならず、各エントリは先行するエントリを証明する必要があります。

VerificationResult

プロパティ

  • debug_errors

    string[]

    信頼性の検証で不合格だった場合、この配列には基盤となるネットワーク レイヤから報告されたエラーが含まれます。それ以外の場合、この配列は空です。

    注: このリストはデバッグのみを目的としており、関連するエラーがすべて含まれているとは限りません。返されるエラーは、この API の将来のリビジョンで変更される可能性があります。また、上位互換性や下位互換性は保証されません。

  • trusted

    ブール値

    信頼検証の結果。指定された検証の詳細に対する信頼が確立できた場合は true、なんらかの理由で信頼が拒否された場合は false です。

メソッド

getKeyPair()

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

platformKeys.subtleCrypto で使用する certificate の鍵ペアを callback に渡します。

パラメータ

  • 証明書

    ArrayBuffer

    selectClientCertificates から返される Match の証明書。

  • パラメータ

    オブジェクト

    鍵自体によって固定されたパラメータに加えて、署名/ハッシュ アルゴリズム パラメータを決定します。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" } }。署名関数は PKCS#1 v1.5 のパディングを適用しますが、指定されたデータをハッシュ化しません。

    現在、このメソッドは「RSASSA-PKCS1-v1_5」および「ECDSA」学習します。

  • callback

    関数

    callback パラメータは次のようになります。

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

    • publicKey

      オブジェクト

    • privateKey

      オブジェクト(省略可)

      この拡張機能がアクセスできない場合は、null である可能性があります。

getKeyPairBySpki()

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

platformKeys.subtleCrypto で使用するために publicKeySpkiDer で識別される鍵ペアを callback に渡します。

パラメータ

  • publicKeySpkiDer

    ArrayBuffer

    DER でエンコードされた X.509 SubjectPublicKeyInfo。例:format="spki" を指定して WebCrypto の exportKey 関数を呼び出します。

  • パラメータ

    オブジェクト

    鍵自体によって固定されるパラメータに加えて、署名パラメータとハッシュ アルゴリズム パラメータを提供します。WebCrypto の importKey 関数と同じパラメータを使用できます。次に例を示します。RSASSA-PKCS1-v1_5 鍵の場合は RsaHashedImportParams。RSASSA-PKCS1-v1_5 鍵の場合は、「hash」も渡す必要があります。パラメータ { "hash": { "name": string } }。「ハッシュ」パラメータは、署名前のダイジェスト オペレーションで使用されるハッシュ アルゴリズムの名前を表します。「none」を渡したり、として渡されます。この場合、符号関数は PKCS#1 v1.5 のパディングを適用しますが、指定されたデータをハッシュ化しません。

    現在、このメソッドは「ECDSA」名前付き曲線 P-256 と「RSASSA-PKCS1-v1_5」を使用したアルゴリズム「none」、「SHA-1」、「SHA-256」、「SHA-384」、「SHA-512」のいずれかのハッシュ アルゴリズムを持つアルゴリズムです。

  • callback

    関数

    callback パラメータは次のようになります。

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

    • publicKey

      オブジェクト

    • privateKey

      オブジェクト(省略可)

      この拡張機能がアクセスできない場合は、null である可能性があります。

selectClientCertificates()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.platformKeys.selectClientCertificates(
  details: SelectDetails,
  callback?: function,
)

このメソッドは、プラットフォームで認識され、request と一致し、拡張機能が証明書とその秘密鍵にアクセスする権限を持つクライアント証明書をリストからフィルタします。interactive が true の場合、ユーザーはダイアログが表示され、一致する証明書の中から証明書を選択して拡張機能に証明書へのアクセス権を付与できます。選択またはフィルタしたクライアント証明書が callback に渡されます。

パラメータ

  • 詳細
  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    (matches: Match[]) => void

    • 一致

      リクエストに一致し、拡張機能に権限が付与されている証明書のリスト。interactive が true の場合はユーザーが選択した証明書のリスト。

戻り値

  • Promise<Match[]>

    Chrome 121 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

subtleCrypto()

chrome.platformKeys.subtleCrypto()

この拡張機能で利用可能なクライアント証明書の鍵に対する暗号オペレーションを可能にする、WebCrypto の SubtleCrypto の実装。

戻り値

  • object |未定義

verifyTLSServerCertificate()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.platformKeys.verifyTLSServerCertificate(
  details: VerificationDetails,
  callback?: function,
)

プラットフォームの信頼設定に従って、details.serverCertificateChaindetails.hostname に対して信頼できるかどうかを確認します。注: 信頼性検証の実際の動作は完全には指定されておらず、今後変更される可能性があります。API 実装では、証明書の有効期限の検証、証明書のパスの検証、既知の CA による信頼のチェックを行います。この実装では、EKU の serverAuth を尊重し、サブジェクトの代替名をサポートすることになっています。

パラメータ

戻り値

  • Promise&lt;VerificationResult&gt;

    Chrome 121 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。