# ChunkedEncryptOptions

Defined in: [packages/filecoin-encryption-envelope/src/aes-gcm-stream.ts:25](https://github.com/FilOzone/synapse-sdk/blob/e853a1d93da8c983371ffce4424cdb8996cc06ff/packages/filecoin-encryption-envelope/src/aes-gcm-stream.ts#L25)

Options for one chunked AES-256-GCM STREAM encryption using a direct CEK.

## Properties

### appMetadata?

> `optional` **appMetadata?**: [`AppMetadata`](/reference/filoz/filecoin-encryption-envelope/type-aliases/appmetadata/)

Defined in: [packages/filecoin-encryption-envelope/src/aes-gcm-stream.ts:35](https://github.com/FilOzone/synapse-sdk/blob/e853a1d93da8c983371ffce4424cdb8996cc06ff/packages/filecoin-encryption-envelope/src/aes-gcm-stream.ts#L35)

Authenticated application metadata carried without interpretation.

***

### cek

> **cek**: [`Uint8Array`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array)

Defined in: [packages/filecoin-encryption-envelope/src/aes-gcm-stream.ts:27](https://github.com/FilOzone/synapse-sdk/blob/e853a1d93da8c983371ffce4424cdb8996cc06ff/packages/filecoin-encryption-envelope/src/aes-gcm-stream.ts#L27)

Exactly 32 bytes and not all-zero. The caller owns its lifecycle and reuse policy.

***

### chunkSize?

> `optional` **chunkSize?**: `number`

Defined in: [packages/filecoin-encryption-envelope/src/aes-gcm-stream.ts:30](https://github.com/FilOzone/synapse-sdk/blob/e853a1d93da8c983371ffce4424cdb8996cc06ff/packages/filecoin-encryption-envelope/src/aes-gcm-stream.ts#L30)

Plaintext bytes per chunk. Defaults to `DEFAULT_CHUNK_SIZE`.

***

### contentLength?

> `optional` **contentLength?**: `number`

Defined in: [packages/filecoin-encryption-envelope/src/aes-gcm-stream.ts:43](https://github.com/FilOzone/synapse-sdk/blob/e853a1d93da8c983371ffce4424cdb8996cc06ff/packages/filecoin-encryption-envelope/src/aes-gcm-stream.ts#L43)

Exact plaintext length, if known up front. Stored in the authenticated
`plaintext_length` header. Exceeding it fails the write; closing before
reaching it fails the close. In either case, no final chunk is emitted
and earlier output must be discarded. Omit if the length is not guaranteed.

***

### contentType?

> `optional` **contentType?**: `string` \| `number`

Defined in: [packages/filecoin-encryption-envelope/src/aes-gcm-stream.ts:32](https://github.com/FilOzone/synapse-sdk/blob/e853a1d93da8c983371ffce4424cdb8996cc06ff/packages/filecoin-encryption-envelope/src/aes-gcm-stream.ts#L32)

***

### recipients?

> `optional` **recipients?**: readonly [`A256KWRecipient`](/reference/filoz/filecoin-encryption-envelope/namespaces/recipients/interfaces/a256kwrecipient/)[]

Defined in: [packages/filecoin-encryption-envelope/src/aes-gcm-stream.ts:49](https://github.com/FilOzone/synapse-sdk/blob/e853a1d93da8c983371ffce4424cdb8996cc06ff/packages/filecoin-encryption-envelope/src/aes-gcm-stream.ts#L49)

Wrap the CEK for each recipient and write `COSE_Encrypt` (tag 96).
Omit for `COSE_Encrypt0` (tag 16); an empty array is rejected.