---
title: HPKE.KEM
framework: cryptokit
role: symbol
role_heading: Enumeration
path: cryptokit/hpke/kem
---

# HPKE.KEM

The key encapsulation mechanisms to use in HPKE.

## Declaration

```swift
enum KEM
```

## Overview

Overview The module-lattice key encapsulation mechanism (ML-KEM) is designed to offer increased security in situations where an adversary uses a quantum computer.

## Topics

### Elliptic curve key encapsulation mechanisms

- [HPKE.KEM.Curve25519_HKDF_SHA256](cryptokit/hpke/kem/curve25519_hkdf_sha256.md)
- [HPKE.KEM.P256_HKDF_SHA256](cryptokit/hpke/kem/p256_hkdf_sha256.md)
- [HPKE.KEM.P384_HKDF_SHA384](cryptokit/hpke/kem/p384_hkdf_sha384.md)
- [HPKE.KEM.P521_HKDF_SHA512](cryptokit/hpke/kem/p521_hkdf_sha512.md)

### Enumeration Cases

- [HPKE.KEM.XWingMLKEM768X25519](cryptokit/hpke/kem/xwingmlkem768x25519.md)

## Relationships

### Conforms To

- [CaseIterable](swift/caseiterable.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Choosing cryptographic algorithms

- [HPKE.Ciphersuite](cryptokit/hpke/ciphersuite.md)
- [HPKE.AEAD](cryptokit/hpke/aead.md)
- [HPKE.KDF](cryptokit/hpke/kdf.md)
- [HPKE.DHKEM](cryptokit/hpke/dhkem.md)
