SubtleCrypto

SubtleCrypto インターフェイスは、暗号プリミティブのセットを表します。これは、window コンテキスト (Window.crypto) 内で利用可能な Crypto.subtle プロパティを通して利用できます。

仕様書より引用 (拙訳): "開発者は、SubtleCrypto インターフェイスを使用する際に、提供される様々なアルゴリズムの設計と実装の両面でセキュリティに関わる問題に注意を払うことが期待されます。生のアルゴリズムは、その使用に必要とされる独自のセキュリティパラメーターとコンポジションを表す多様なプロトコルとアプリケーションの実装において、開発者に最大限の柔軟性を許すために提供されます。"

プロパティ

このインターフェイスはどのプロパティも定義または継承しません。

メソッド

このインターフェイスはどのメソッドも継承しません。

SubtleCrypto.encrypt()
引数に与えられた平文テキストおよびアルゴリズム、鍵に対応する暗号化されたデータの Promise を返します。
SubtleCrypto.decrypt()
引数に与えられた暗号化されたテキストおよびアルゴリズム、鍵に対応する平文データの Promise を返します。
SubtleCrypto.sign()
引数に与えられたテキストおよびアルゴリズム、鍵に対応する署名の Promise を返します。
SubtleCrypto.verify()
引数に与えられた署名が、同じく引数に与えられたテキストおよびアルゴリズム、鍵と一致するかどうかを示す Boolean 値の Promise を返します。
SubtleCrypto.digest()
引数に与えられたアルゴリズムとテキストから生成されたダイジェストの Promise を返します。
SubtleCrypto.generateKey()
引数に与えられたアルゴリズム、抽出可能性、使用法と一致する、対称アルゴリズムでは新たに生成された CryptoKeyPromise を、非対称アルゴリズムでは 2 個の新たに生成された鍵を含む CryptoKeyPairPromise を返します。
SubtleCrypto.deriveKey()
引数に与えられたマスターキーと特定のアルゴリズムによりもたらされる、新たに生成された CryptoKeyPromise を返します。
SubtleCrypto.deriveBits()
引数に与えられたマスターキーと特定のアルゴリズムによりもたらされる、疑似乱数ビットの新たに生成されたバッファーの Promise を返します。
SubtleCrypto.importKey()
引数に与えられた書式およびアルゴリズム、生の鍵データ、使用法、抽出可能性に対応する CryptoKeyPromise を返します。
SubtleCrypto.exportKey()
要求された書式内の鍵を含むバッファーの Promise を返します。
SubtleCrypto.wrapKey()
安全でない環境での使用法 (transfer, storage) について、ラップされた対称鍵の Promise を返します。返されるラップされたバッファーは、引数に与えられた書式内にあり、与えられたアルゴリズムで与えられたラッピング鍵によりラップされた鍵を含みます。
SubtleCrypto.unwrapKey()
引数に与えられたラップされた鍵に対応する CryptoKeyPromise を返します。

仕様

仕様書 策定状況 備考
Web Cryptography API
SubtleCrypto の定義
勧告 初期定義。

ブラウザーの実装状況

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
SubtleCryptoChrome 完全対応 37Edge 部分対応 12Firefox 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE 部分対応 11Opera 完全対応 24Safari 完全対応 10.1
完全対応 10.1
完全対応 7
接頭辞付き
接頭辞付き WebKit のベンダー接頭辞が必要
WebView Android 完全対応 37Chrome Android 完全対応 37Firefox Android 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android 完全対応 24Safari iOS 完全対応 10.1
完全対応 10.1
完全対応 7
接頭辞付き
接頭辞付き WebKit のベンダー接頭辞が必要
Samsung Internet Android 完全対応 6.0
decryptChrome 完全対応 37Edge 部分対応 12
補足
部分対応 12
補足
補足 Not supported: AES-CTR.
Firefox 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE 部分対応 11
補足
部分対応 11
補足
補足 Returns CryptoOperation instead of Promise
Opera 完全対応 24Safari 完全対応 7WebView Android 完全対応 37Chrome Android 完全対応 37Firefox Android 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android 完全対応 24Safari iOS 完全対応 7Samsung Internet Android 完全対応 6.0
deriveBitsChrome 完全対応 37Edge 部分対応 12
補足
部分対応 12
補足
補足 Not supported: ECDH.
補足 Not supported: HKDF, PBKDF2.
Firefox 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE 未対応 なしOpera 完全対応 24Safari 完全対応 7WebView Android 完全対応 37Chrome Android 完全対応 37Firefox Android 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android 完全対応 24Safari iOS 完全対応 7Samsung Internet Android 完全対応 6.0
deriveKeyChrome 完全対応 37Edge 部分対応 12
補足
部分対応 12
補足
補足 Not supported: ECDH.
補足 Not supported: HKDF, PBKDF2.
Firefox 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE 未対応 なしOpera 完全対応 24Safari 完全対応 7WebView Android 完全対応 37Chrome Android 完全対応 37Firefox Android 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android 完全対応 24Safari iOS 完全対応 7Samsung Internet Android 完全対応 6.0
digestChrome 完全対応 37Edge 部分対応 12
補足
部分対応 12
補足
補足 Not supported: SHA-1.
Firefox 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE 部分対応 11
補足
部分対応 11
補足
補足 Returns CryptoOperation instead of Promise
Opera 完全対応 24Safari 完全対応 7WebView Android 完全対応 37Chrome Android 完全対応 37Firefox Android 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android 完全対応 24Safari iOS 完全対応 7Samsung Internet Android 完全対応 6.0
encryptChrome 完全対応 37Edge 部分対応 12
補足
部分対応 12
補足
補足 Not supported: AES-CTR.
Firefox 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE 部分対応 11
補足
部分対応 11
補足
補足 Returns CryptoOperation instead of Promise
Opera 完全対応 24Safari 完全対応 7WebView Android 完全対応 37Chrome Android 完全対応 37Firefox Android 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android 完全対応 24Safari iOS 完全対応 7Samsung Internet Android 完全対応 6.0
exportKeyChrome 完全対応 37Edge 部分対応 12
補足
部分対応 12
補足
補足 Not supported: RSA-PSS, ECDSA, ECDH.
補足 Not supported: AES-CTR.
Firefox 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE 部分対応 11
補足
部分対応 11
補足
補足 Returns KeyOperation instead of Promise
Opera 完全対応 24Safari 完全対応 7WebView Android 完全対応 37Chrome Android 完全対応 37Firefox Android 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android 完全対応 24Safari iOS 完全対応 7Samsung Internet Android 完全対応 6.0
generateKeyChrome 完全対応 37Edge 部分対応 12
補足
部分対応 12
補足
補足 Not supported: RSA-PSS, ECDSA, ECDH.
補足 Not supported: AES-CTR.
Firefox 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE 部分対応 11
補足
部分対応 11
補足
補足 Returns KeyOperation instead of Promise
Opera 完全対応 24Safari 完全対応 7WebView Android 完全対応 37Chrome Android 完全対応 37Firefox Android 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android 完全対応 24Safari iOS 完全対応 7Samsung Internet Android 完全対応 6.0
importKeyChrome 完全対応 37Edge 部分対応 12
補足
部分対応 12
補足
補足 Not supported: RSA-PSS, ECDSA, ECDH.
補足 Not supported: AES-CTR, HKDF, PBKDF2.
Firefox 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE 部分対応 11
補足
部分対応 11
補足
補足 Returns KeyOperation instead of Promise
Opera 完全対応 24Safari 完全対応 7WebView Android 完全対応 37Chrome Android 完全対応 37Firefox Android 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android 完全対応 24Safari iOS 完全対応 7Samsung Internet Android 完全対応 6.0
signChrome 完全対応 37Edge 部分対応 12
補足
部分対応 12
補足
補足 Not supported: RSA-PSS, ECDSA.
Firefox 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE 部分対応 11
補足
部分対応 11
補足
補足 Returns CryptoOperation instead of Promise
Opera 完全対応 24Safari 完全対応 7WebView Android 完全対応 37Chrome Android 完全対応 37Firefox Android 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android 完全対応 24Safari iOS 完全対応 7Samsung Internet Android 完全対応 6.0
unwrapKeyChrome 完全対応 37Edge 部分対応 12
補足
部分対応 12
補足
補足 Not supported: AES-CTR.
Firefox 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE 部分対応 11
補足
部分対応 11
補足
補足 Returns KeyOperation instead of Promise
Opera 完全対応 24Safari 完全対応 7WebView Android ? Chrome Android 完全対応 37Firefox Android 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android 完全対応 24Safari iOS 完全対応 7Samsung Internet Android 完全対応 6.0
verifyChrome 完全対応 37Edge 部分対応 12
補足
部分対応 12
補足
補足 Not supported: RSA-PSS, ECDSA.
Firefox 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE 部分対応 11
補足
部分対応 11
補足
補足 Returns CryptoOperation instead of Promise
Opera 完全対応 24Safari 完全対応 7WebView Android 完全対応 37Chrome Android 完全対応 37Firefox Android 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android 完全対応 24Safari iOS 完全対応 7Samsung Internet Android 完全対応 6.0
Available in workersChrome ? Edge 未対応 なしFirefox 完全対応 48IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?
wrapKeyChrome 完全対応 37Edge 部分対応 12
補足
部分対応 12
補足
補足 Not supported: AES-CTR.
Firefox 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE 部分対応 11
補足
部分対応 11
補足
補足 Returns KeyOperation instead of Promise
Opera 完全対応 24Safari 完全対応 7WebView Android 完全対応 37Chrome Android 完全対応 37Firefox Android 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android 完全対応 24Safari iOS 完全対応 7Samsung Internet Android 完全対応 6.0

凡例

完全対応  
完全対応
部分対応  
部分対応
未対応  
未対応
実装状況不明  
実装状況不明
実装ノートを参照してください。
実装ノートを参照してください。
ユーザーが明示的にこの機能を有効にしなければなりません。
ユーザーが明示的にこの機能を有効にしなければなりません。
使用するには、ベンダー接頭辞または異なる名前が必要です。
使用するには、ベンダー接頭辞または異なる名前が必要です。

関連情報