# 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/5e9df029417d95928e523b01a29bf523e42db418/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/filoz/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)