# Interface: CryptoProvider

Defined in: [packages/core/src/types.ts:10](https://github.com/leifriksheim/minca/blob/main/core/src/types.ts#L10)

Crypto provider interface — abstraction over key algorithms for easy swapping

## Properties

| Property | Modifier | Type | Defined in |
| ------ | ------ | ------ | ------ |
| <a id="property-algorithm"></a> `algorithm` | `readonly` | `string` | [packages/core/src/types.ts:11](https://github.com/leifriksheim/minca/blob/main/core/src/types.ts#L11) |

## Methods

### deriveKeyPairFromSeed()

```ts
deriveKeyPairFromSeed(seed): Promise<CryptoKeyPairResult>;
```

Defined in: [packages/core/src/types.ts:17](https://github.com/leifriksheim/minca/blob/main/core/src/types.ts#L17)

Deterministically derives a key pair from seed bytes (same seed → same keys).
Owns the whole KDF: callers pass the raw seed, at least 16 uniform bytes.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `seed` | `Uint8Array` |

#### Returns

`Promise`\<[`CryptoKeyPairResult`](https://minca.dev/api/core/interfaces/CryptoKeyPairResult.md)\>

***

### exportPublicKey()

```ts
exportPublicKey(key): Promise<Uint8Array<ArrayBufferLike>>;
```

Defined in: [packages/core/src/types.ts:20](https://github.com/leifriksheim/minca/blob/main/core/src/types.ts#L20)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `key` | `CryptoKey` |

#### Returns

`Promise`\<`Uint8Array`\<`ArrayBufferLike`\>\>

***

### generateKeyPair()

```ts
generateKeyPair(): Promise<CryptoKeyPairResult>;
```

Defined in: [packages/core/src/types.ts:12](https://github.com/leifriksheim/minca/blob/main/core/src/types.ts#L12)

#### Returns

`Promise`\<[`CryptoKeyPairResult`](https://minca.dev/api/core/interfaces/CryptoKeyPairResult.md)\>

***

### importPrivateKey()

```ts
importPrivateKey(bytes): Promise<CryptoKey>;
```

Defined in: [packages/core/src/types.ts:22](https://github.com/leifriksheim/minca/blob/main/core/src/types.ts#L22)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `bytes` | `Uint8Array` |

#### Returns

`Promise`\<`CryptoKey`\>

***

### importPublicKey()

```ts
importPublicKey(bytes): Promise<CryptoKey>;
```

Defined in: [packages/core/src/types.ts:21](https://github.com/leifriksheim/minca/blob/main/core/src/types.ts#L21)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `bytes` | `Uint8Array` |

#### Returns

`Promise`\<`CryptoKey`\>

***

### sign()

```ts
sign(privateKey, data): Promise<Uint8Array<ArrayBufferLike>>;
```

Defined in: [packages/core/src/types.ts:18](https://github.com/leifriksheim/minca/blob/main/core/src/types.ts#L18)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `privateKey` | `CryptoKey` |
| `data` | `Uint8Array` |

#### Returns

`Promise`\<`Uint8Array`\<`ArrayBufferLike`\>\>

***

### verify()

```ts
verify(
   publicKey, 
   signature, 
   data
): Promise<boolean>;
```

Defined in: [packages/core/src/types.ts:19](https://github.com/leifriksheim/minca/blob/main/core/src/types.ts#L19)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `publicKey` | `CryptoKey` |
| `signature` | `Uint8Array` |
| `data` | `Uint8Array` |

#### Returns

`Promise`\<`boolean`\>
