# Interface: Signer

Defined in: [packages/core/src/schema/signer.ts:6](https://github.com/leifriksheim/minca/blob/main/core/src/schema/signer.ts#L6)

JWS-style signing and verification for versions.

## Methods

### sign()

```ts
sign<T>(payload, privateKey): Promise<Version<T> & object>;
```

Defined in: [packages/core/src/schema/signer.ts:8](https://github.com/leifriksheim/minca/blob/main/core/src/schema/signer.ts#L8)

Signs an unsigned payload, returning a complete Version.

#### Type Parameters

| Type Parameter |
| ------ |
| <a id="type-parameter-t"></a> `T` |

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `payload` | [`UnsignedVersion`](https://minca.dev/api/core/interfaces/UnsignedVersion.md)\<`T`\> |
| `privateKey` | `CryptoKey` |

#### Returns

`Promise`\<[`Version`](https://minca.dev/api/core/interfaces/Version.md)\<`T`\> & `object`\>

***

### verify()

```ts
verify<T>(version, publicKey): Promise<boolean>;
```

Defined in: [packages/core/src/schema/signer.ts:11](https://github.com/leifriksheim/minca/blob/main/core/src/schema/signer.ts#L11)

Verifies the signature and ID of a Version.

#### Type Parameters

| Type Parameter |
| ------ |
| <a id="type-parameter-t-1"></a> `T` |

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `version` | [`Version`](https://minca.dev/api/core/interfaces/Version.md)\<`T`\> |
| `publicKey` | `CryptoKey` |

#### Returns

`Promise`\<`boolean`\>
