---
title: SubtleCrypto
slug: Web/API/SubtleCrypto
tags:
  - API
  - Interface
  - Reference
  - Web Crypto API
translation_of: Web/API/SubtleCrypto
---
<p>{{APIRef("Web Crypto API")}}</p>

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

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

<h2 id="Properties" name="Properties">プロパティ</h2>

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

<h2 id="Methods" name="Methods">メソッド</h2>

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

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

<h2 id="Specifications" name="Specifications">仕様</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">仕様書</th>
   <th scope="col">策定状況</th>
   <th scope="col">備考</th>
  </tr>
  <tr>
   <td>{{ SpecName('Web Crypto API', '#subtlecrypto-interface', 'SubtleCrypto') }}</td>
   <td>{{ Spec2('Web Crypto API') }}</td>
   <td>初期定義。</td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの実装状況</h2>



<p>{{Compat("api.SubtleCrypto")}}</p>

<h2 id="See_Also" name="See_Also">関連情報</h2>

<ul>
 <li>{{domxref("Crypto")}} および {{domxref("Crypto.subtle")}}。</li>
</ul>