# KeyResolver

> **KeyResolver** = (`info`) => [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<[`Uint8Array`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array)\> \| [`Uint8Array`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array)

Defined in: [packages/filecoin-encryption-envelope/src/aes-gcm-stream.ts:457](https://github.com/FilOzone/synapse-sdk/blob/628d3a8812e8612a183a3abe3328169fb741260b/packages/filecoin-encryption-envelope/src/aes-gcm-stream.ts#L457)

Derives or fetches the CEK for a chunked object, given its `EnvelopeInfo`. Called once, after the envelope decodes.

## Parameters

| Parameter | Type |
| ------ | ------ |
| `info` | [`EnvelopeInfo`](/reference/filecoin-encryption-envelope/type-aliases/envelopeinfo/) |

## 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)\> \| [`Uint8Array`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array)