---
title: P521.KeyAgreement.PrivateKey
framework: cryptokit
role: symbol
role_heading: Structure
path: cryptokit/p521/keyagreement/privatekey
---

# P521.KeyAgreement.PrivateKey

A P-521 private key used for key agreement.

## Declaration

```swift
struct PrivateKey
```

## Topics

### Creating a private key

- [init(compactRepresentable:)](cryptokit/p521/keyagreement/privatekey/init(compactrepresentable:).md)
- [init(rawRepresentation:)](cryptokit/p521/keyagreement/privatekey/init(rawrepresentation:).md)
- [init(derRepresentation:)](cryptokit/p521/keyagreement/privatekey/init(derrepresentation:).md)
- [init(pemRepresentation:)](cryptokit/p521/keyagreement/privatekey/init(pemrepresentation:).md)
- [init(x963Representation:)](cryptokit/p521/keyagreement/privatekey/init(x963representation:).md)

### Representing the key

- [rawRepresentation](cryptokit/p521/keyagreement/privatekey/rawrepresentation.md)
- [derRepresentation](cryptokit/p521/keyagreement/privatekey/derrepresentation.md)
- [pemRepresentation](cryptokit/p521/keyagreement/privatekey/pemrepresentation.md)
- [x963Representation](cryptokit/p521/keyagreement/privatekey/x963representation.md)

### Finding the public key

- [publicKey](cryptokit/p521/keyagreement/privatekey/publickey.md)

### Creating a shared secret

- [sharedSecretFromKeyAgreement(with:)](cryptokit/p521/keyagreement/privatekey/sharedsecretfromkeyagreement(with:).md)
- [SharedSecret](cryptokit/sharedsecret.md)

### Default Implementations

- [DiffieHellmanKeyAgreement Implementations](cryptokit/p521/keyagreement/privatekey/diffiehellmankeyagreement-implementations.md)
- [HPKEDiffieHellmanPrivateKeyGeneration Implementations](cryptokit/p521/keyagreement/privatekey/hpkediffiehellmanprivatekeygeneration-implementations.md)

## Relationships

### Conforms To

- [Copyable](swift/copyable.md)
- [DiffieHellmanKeyAgreement](cryptokit/diffiehellmankeyagreement.md)
- [Escapable](swift/escapable.md)
- [HPKEDiffieHellmanPrivateKey](cryptokit/hpkediffiehellmanprivatekey.md)
- [HPKEDiffieHellmanPrivateKeyGeneration](cryptokit/hpkediffiehellmanprivatekeygeneration.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Using keys

- [P521.KeyAgreement.PublicKey](cryptokit/p521/keyagreement/publickey.md)
