# encrypt

> **encrypt**(`plaintext`, `options`): [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<[`Uint8Array`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array)\<`ArrayBufferLike`\>\>

Defined in: [packages/filecoin-encryption-envelope/src/aes-gcm.ts:116](https://github.com/FilOzone/synapse-sdk/blob/bc8a4b093324ccef9b407251fcf4e91823c6f599/packages/filecoin-encryption-envelope/src/aes-gcm.ts#L116)

Encrypt a complete plaintext as scheme 1 and return `envelope || ciphertext`.

Caller-owned byte arrays are snapshotted before the first async step to
prevent them from changing during the operation. The IV is always generated
internally and cannot be provided by the caller.

## Parameters

| Parameter | Type |
| ------ | ------ |
| `plaintext` | [`Uint8Array`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) |
| `options` | [`EncryptOptions`](/reference/filoz/filecoin-encryption-envelope/namespaces/aesgcm/interfaces/encryptoptions/) |

## Returns

[`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<[`Uint8Array`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array)\<`ArrayBufferLike`\>\>