# Decrypt File

> `UiPath.Cryptography.Activities.DecryptFile`

`UiPath.Cryptography.Activities.DecryptFile`

## Description

Decrypts a file based on a specified key encoding and algorithm.

## Project compatibility

**Windows - Legacy** | **Windows** | **Cross-platform**

## Windows, Cross-platform configuration

* **File** - The file to be decrypted, stored as an `IResource` variable. Select the **Plus** ![docs image](https://dev-assets.cms.uipath.com/assets/images/activities/developer-docs-image-plus_menu-bbe6ef0b-8a20ac7d.png) menu to switch to the **Input Path** input.
* **Algorithm** - A drop-down menu which enables you to select the decryption algorithm you want to use. The following options are available: **AES (Deprecated)**, **AES GCM**, **DES (Deprecated)**, **RC2 (Non-FIPS) (Deprecated)**, **Rijndael (Non-FIPS) (Deprecated)**, and **TripleDES**.
* **Key** - The key that you want to use to decrypt the specified file. This field supports only strings and `String` variables.

### Advanced options

#### Options
* **Key Encoding** - The encoding used to interpret the key specified in the **Key** property. This field supports only `Encoding` variables. The following options are available: **System default**, **Unicode**, **Unicode (Big-Endian)**, **Unicode (UTF-32)**, **Unicode (UTF-32 Big-Endian)**, **US-ASCII**, **Western European (ISO)**, and **Unicode (UTF-8)**.
* **Output file name and location** - The path where you want to save the decrypted file. This field supports only strings and `String` variables.
  :::note
  Relative folder paths are recommended to account for the different file structure between Windows and Linux machines when executing a project. A relative path follows the format `newFolder/newFileName.enc`. The activity creates the target folder if it does not already exist.
  :::
* **Overwrite** - If a file already exists, selecting `On` overwrites it. If the toggle is set to `Off`, a new file is created. The default value is `Off`.
* **Continue On Error** - Specifies if the automation should continue even when the activity throws an error. This field only supports Boolean values (`True`, `False`). The default value is `False`. As a result, if the field is blank and an error is thrown, the execution of the project stops. If the value is set to `True`, the execution of the project continues regardless of any error.

Depending on the output path and if the file already exists, the following results can occur:

| Output file name and location | Overwrite | Output result |
| --- | --- | --- |
| Unset | Off | A file with the original file name + the suffix "_Decrypted". If the file already exists, an error is thrown. |
| Unset | On | A file with the original file name + the suffix "_Decrypted". If the file already exists, the file will be overwritten. |
| Set | Off | A file as per user preference. If the file already exists, an error is thrown. |
| Set | On | A file as per user preference. If the file already exists, the file will be overwritten. |

#### Output
* **Decrypted File** - Reference to the decrypted file retrieved by the activity for use in other activities.

## Windows - Legacy configuration

### Properties panel

#### Common
* **Continue On Error** - Specifies if the automation should continue even when the activity throws an error. This field only supports Boolean values (`True`, `False`). The default value is `False`. As a result, if the field is blank and an error is thrown, the execution of the project stops. If the value is set to `True`, the execution of the project continues regardless of any error.
  :::note
  If this activity is included in **Try Catch** and the value of the **Continue On Error** property is `True`, no error is caught when the project is executed.
  :::
* **DisplayName** - The display name of the activity.

#### Input
* **Algorithm** - A drop-down menu which enables you to select the decryption algorithm you want to use. The following options are available: **AES (Deprecated)**, **AES GCM**, **DES (Deprecated)**, **RC2 (Non-FIPS) (Deprecated)**, **Rijndael (Non-FIPS) (Deprecated)**, and **TripleDES**.
  :::note
  When using the **AES GCM** algorithm, the decryption input must be provided in the format of (concatenated bytes): `Salt (8bytes) + IV (12 bytes) + encryptedData (variable bytes) + Tag (16 bytes)`. The activity also uses the following parameters:
  * PBKDF2 iterations count is 10000
  * The generated key is 256-bit (32 bytes)
  
  Note that the 256-bit generated key is not the same as the **Key** input option.
  :::
* **Decrypted Filename** - The file name you want to use to save the decrypted file.
* **InputPath** - The path to the file that you want to decrypt. This field supports only strings and `String` variables.
* **Key** - The key that you want to use to decrypt the specified file. This field supports only strings and `String` variables.
* **Key Encoding** - The encoding used to interpret the key specified in the **Key** property. This field supports only `Encoding` variables.
* **Key Secure String** - The secure string used to decrypt the input file.
* **Output file name and location** - The path where you want to save the decrypted file. This field supports only strings and `String` variables.
* **Overwrite** - If a file already exists at the path specified in the **OutputPath** field, selecting this check box overwrites it. If unchecked, a new file is created. By default, this check box is cleared.

#### Misc
* **Private** - If selected, the values of variables and arguments are no longer logged at Verbose level.
