---
title: DiffieHellmanKeyAgreement
framework: cryptokit
role: symbol
role_heading: Protocol
path: cryptokit/diffiehellmankeyagreement
---

# DiffieHellmanKeyAgreement

A Diffie-Hellman Key Agreement Key

## Declaration

```swift
@preconcurrency protocol DiffieHellmanKeyAgreement : Sendable
```

## Topics

### Associated Types

- [PublicKey](cryptokit/diffiehellmankeyagreement/publickey-swift.associatedtype.md)

### Instance Properties

- [publicKey](cryptokit/diffiehellmankeyagreement/publickey-swift.property.md)

### Instance Methods

- [sharedSecretFromKeyAgreement(with:)](cryptokit/diffiehellmankeyagreement/sharedsecretfromkeyagreement(with:).md)

## Relationships

### Inherits From

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

### Inherited By

- [HPKEDiffieHellmanPrivateKey](cryptokit/hpkediffiehellmanprivatekey.md)
- [HPKEDiffieHellmanPrivateKeyGeneration](cryptokit/hpkediffiehellmanprivatekeygeneration.md)

### Conforming Types

- [Curve25519.KeyAgreement.PrivateKey](cryptokit/curve25519/keyagreement/privatekey.md)
- [P256.KeyAgreement.PrivateKey](cryptokit/p256/keyagreement/privatekey.md)
- [P384.KeyAgreement.PrivateKey](cryptokit/p384/keyagreement/privatekey.md)
- [P521.KeyAgreement.PrivateKey](cryptokit/p521/keyagreement/privatekey.md)
- [SecureEnclave.P256.KeyAgreement.PrivateKey](cryptokit/secureenclave/p256/keyagreement/privatekey.md)
