---
title: "init(recipientKey:ciphersuite:info:authenticatedBy:)"
framework: cryptokit
role: symbol
role_heading: Initializer
path: "cryptokit/hpke/sender/init(recipientkey:ciphersuite:info:authenticatedby:)"
---

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

Creates a sender in authentication mode.

## Declaration

```swift
init<SK>(recipientKey: SK.PublicKey, ciphersuite: HPKE.Ciphersuite, info: Data, authenticatedBy authenticationKey: SK) 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.

## Discussion

Discussion The Sender encrypts messages in authentication mode with a symmetric encryption key. 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 HPKE.Errors when it encounters them.
