# AesGcm.decrypt

Decrypts encrypted data using AES-GCM.

## Imports

:::code-group
```ts [Named]
import { AesGcm } from 'ox'
```

```ts [Entrypoint]
import * as AesGcm from 'ox/AesGcm'
```
:::

## Examples

```ts twoslash
import { AesGcm, Hex } from 'ox'

const key = await AesGcm.getKey({ password: 'qwerty' })
const secret = Hex.fromString('i am a secret message')

const encrypted = await AesGcm.encrypt(secret, key)

const decrypted = await AesGcm.decrypt(encrypted, key) // [!code focus]
// @log: Hex.fromString('i am a secret message')
```

## Definition

```ts
function decrypt<value, as>(
  value: value | Bytes.Bytes | Hex.Hex,
  key: CryptoKey,
  options?: decrypt.Options<as>,
): Promise<decrypt.ReturnType<as>>
```

**Source:** [src/core/AesGcm.ts](https://github.com/wevm/ox/blob/main/src/core/AesGcm.ts#L209)

## Parameters

### value

* **Type:** `value | Bytes.Bytes | Hex.Hex`

The data to encrypt.

### key

* **Type:** `CryptoKey`

The `CryptoKey` to use for encryption.

### options

* **Type:** `decrypt.Options<as>`
* **Optional**

Decryption options.

#### options.as

* **Type:** `as | "Bytes" | "Hex"`
* **Optional**

The output format.

## Return Type

The decrypted data.

`Promise<decrypt.ReturnType<as>>`
