> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arc.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# cryptoEncrypt

> CData Arc のVault に保存されたキーと初期化ベクトルを使用して、AES アルゴリズムでデータまたはファイルを暗号化します。

指定されたデータまたはファイルを`AES` アルゴリズムを使用して暗号化します。

## 必要なパラメータ

* **keyVaultEntry**: キーに使用する暗号化されたVault アイテムの名前。このVault アイテムに保存される値は、keyVaultEntryFormat で設定されたエンコードに一致し、選択したアルゴリズムの長さ要件を満たす必要があります。
* **ivVaultEntry**: 初期化ベクトル（IV）に使用する暗号化されたVault アイテムの名前。このVault アイテムに保存される値は、ivVaultEntryFormat で設定されたエンコードに一致し、選択したアルゴリズムの長さ要件を満たす必要があります。

## オプションのパラメータ

* **algorithm**: 暗号化に使用するアルゴリズムの名前。現在、AES のみがサポートされる値です。128、192、256ビットのキー長に対応しています。
* **cipherMode**: データを処理して暗号化するために使用する方式。使用可能な値は`CBC`、`ECB`、`OFB`、`CFB`、`CTS`、`8OFB`、`8CFB`、`GCM`、`CTR`、`XTS` です。デフォルトは`CBC` です。
* **paddingMode**: メッセージを暗号化する際に余分なデータや欠落したデータを処理し、平文が正しく構築されるようにするために使用する方式。使用可能な値は`PKCS7`、`Zeros`、`None`、`ANSIX923`、`ISO10126` です。デフォルトは`PKCS7` です。
* **keyVaultEntryFormat**: keyVaultEntry アイテムに保存される値のエンコード。使用可能な値は`HEX`、`BASE64`、`8BIT`、`RAW` です。デフォルトは`HEX` です。
* **ivVaultEntryFormat**: ivVaultEntry アイテムに保存される値のエンコード。使用可能な値は`HEX`、`BASE64`、`8BIT`、`RAW` です。デフォルトは`HEX` です。
* **data**: 暗号化するデータ。
* **file**: 暗号化するファイル。
* **outFile**: 暗号化したデータを保存するファイル。
* **inFormat**: 暗号化された入力データに使用するフォーマット。使用可能な値は`HEX`、`BASE64`、`8BIT`、`RAW` です。デフォルトは`HEX` です。
* **outFormat**: 暗号化された出力データに使用するフォーマット。使用可能な値は`HEX`、`BASE64`、`8BIT`、`RAW` です。デフォルトは`HEX` です。

## アウトプット属性

* **data**: outFile が指定されていない場合の、暗号化されたデータ。
* **outFile**: outFile が指定された場合の、暗号化されたデータを含むファイル。

## 例

次の例では、cryptoEncrypt オペレーションを使用して特定の値を暗号化します。デフォルトのAES アルゴリズムと、keyVaultEntryFormat およびivVaultEntryFormat パラメータのデフォルトのHEX エンコードを使用します。デフォルトを使用するため、これらのパラメータを明示的に設定する必要はありません。これは、keyVaultEntry およびivVaultEntry の「key」と「iv」のVault アイテムに保存される値が、ちょうど128ビットのHEX エンコードの値でなければならないことを意味します。例：

* 「key」Vault アイテムに保存される値：7A3F9D5C1E8B6A407D2E4C9F5B1A6D3E
* 「iv」Vault アイテムに保存される値：C1D4A7F82E395B6C4D7A1E3F9B02586D

正しい長さまたはエンコードの値を使用しないと、暗号化処理中にエラーが発生します。

```xml theme={null}
<!-- For the sake of this example, let's say this value comes from an API response. -->
<arc:set attr="secret.value" value="FooBar" />

<!-- Set both the Key and IV values. These are the names of the encrypted vault items. -->
<!-- If using the default AES algorithm, the values stored in each vault item need to be 128-bit HEX values. -->
<arc:set attr="input.keyVaultEntry" value="key"/>
<arc:set attr="input.ivVaultEntry" value="iv"/>

<!-- Default algorithm is AES -->
<arc:set attr="input.algorithm" value="AES" />

<!-- Pass in the input item and call cryptoEncrypt -->
<arc:set attr="input.data" value="[secret.value]"/>  
<arc:call op="cryptoEncrypt" in="input" out="result" >
  <!-- Here is where you can use the newly encrypted value/data. A message header is used here. -->
  <arc:set attr="output.Header:MyEncryptedValue" value="[result.data]" />
</arc:call>

<!-- Push the input message, with the new header, as output. -->
<arc:set attr="output.filepath" value="[Filepath]" />
<arc:push item="output" />
```
