---
title: ChaChaPoly
framework: cryptokit
role: symbol
role_heading: Enumeration
path: cryptokit/chachapoly
---

# ChaChaPoly

An implementation of the ChaCha20-Poly1305 cipher.

## Declaration

```swift
enum ChaChaPoly
```

## Topics

### Storing the output

- [ChaChaPoly.SealedBox](cryptokit/chachapoly/sealedbox.md)

### Getting a nonce

- [ChaChaPoly.Nonce](cryptokit/chachapoly/nonce.md)

### Securing the plaintext message

- [seal(_:using:nonce:)](cryptokit/chachapoly/seal(_:using:nonce:).md)
- [seal(_:using:nonce:authenticating:)](cryptokit/chachapoly/seal(_:using:nonce:authenticating:).md)

### Decrypting and verifying the message

- [open(_:using:)](cryptokit/chachapoly/open(_:using:).md)
- [open(_:using:authenticating:)](cryptokit/chachapoly/open(_:using:authenticating:).md)

### Type Methods

- [open(inPlace:using:nonce:authenticating:tag:)](cryptokit/chachapoly/open(inplace:using:nonce:authenticating:tag:).md)
- [open(inplace:using:nonce:tag:authenticating:)](cryptokit/chachapoly/open(inplace:using:nonce:tag:authenticating:).md)
- [seal(inPlace:using:nonce:authenticating:tag:)](cryptokit/chachapoly/seal(inplace:using:nonce:authenticating:tag:).md)

## Relationships

### Conforms To

- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Ciphers

- [AES](cryptokit/aes.md)
