<!--
{
  "availability" : [
    "iOS: 17.0.0 -",
    "iPadOS: 17.0.0 -",
    "macCatalyst: 17.0.0 -",
    "macOS: 14.0.0 -",
    "tvOS: 17.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 10.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CryptoKit",
  "identifier" : "/documentation/CryptoKit/HPKE/Sender/init(recipientKey:ciphersuite:info:authenticatedBy:presharedKey:presharedKeyIdentifier:)",
  "metadataVersion" : "0.1.0",
  "role" : "Initializer",
  "symbol" : {
    "kind" : "Initializer",
    "modules" : [
      "Apple CryptoKit"
    ],
    "preciseIdentifier" : "s:9CryptoKit4HPKEO6SenderV12recipientKey11ciphersuite4info15authenticatedBy09presharedF00kF10IdentifierAE06PublicF0Qz_AC11CiphersuiteV10Foundation4DataVxAA09SymmetricF0VARtKcAA024HPKEDiffieHellmanPrivateF0Rzlufc"
  },
  "title" : "init(recipientKey:ciphersuite:info:authenticatedBy:presharedKey:presharedKeyIdentifier:)"
}
-->

# init(recipientKey:ciphersuite:info:authenticatedBy:presharedKey:presharedKeyIdentifier:)

Creates a sender in authentication and preshared key mode.

```
init<SK>(recipientKey: SK.PublicKey, ciphersuite: HPKE.Ciphersuite, info: Data, authenticatedBy authenticationKey: SK, presharedKey psk: SymmetricKey, presharedKeyIdentifier pskID: Data) throws where SK : HPKEDiffieHellmanPrivateKey
```

## Parameters

`recipientKey`

The recipient’s public key for encrypting the messages.

`ciphersuite`

The cipher suite that defines the cryptographic algorithms to use.

`info`

Data that the key derivation function uses to compute the symmetric key material. The sender and the recipient need to use the same `info` data.

`authenticationKey`

The sender’s private key for generating the HMAC.

`psk`

A preshared key (PSK) that the sender and the recipient both hold.

`pskID`

An identifier for the PSK.

## Discussion

The `Sender` encrypts messages in authentication and preshared key (`auth_psk`) mode using
a symmetric encryption key that the sender and recipient both know in advance, in combination with a key it derives using a key derivation function (KDF) and
the key schedule data in `info`.
Messages also include authentication data so that the recipient can verify the authenticity of the sender’s private key.

> Note: The system throws errors from ``doc://com.apple.CryptoKit/documentation/CryptoKit/HPKE/Errors`` when it encounters them.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)