---
title: Curve25519.KeyAgreement
framework: cryptokit
role: symbol
role_heading: Enumeration
path: cryptokit/curve25519/keyagreement
---

# Curve25519.KeyAgreement

A mechanism used to create a shared secret between two users by performing X25519 key agreement.

## Declaration

```swift
enum KeyAgreement
```

## Topics

### Using keys

- [Curve25519.KeyAgreement.PrivateKey](cryptokit/curve25519/keyagreement/privatekey.md)
- [Curve25519.KeyAgreement.PublicKey](cryptokit/curve25519/keyagreement/publickey.md)

## Relationships

### Conforms To

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

## See Also

### Performing operations

- [Curve25519.Signing](cryptokit/curve25519/signing.md)
