Cipher
data class Cipher(val cryptography: Cryptography, val key: CipherKey? = null, val nonce: Nonce = Nonce.zero)(source)
Encompasses all Noise protocol cipher state required to encrypt and decrypt data.
Note that as per Noise revision 34 § 5.1, [key] may be uninitialized. In this case [encrypt] and [decrypt] are identity functions over the plaintext and ciphertext.
Encryption and decryption throw if incrementing [nonce] results in its maximum value: it means too many messages have been exchanged. Too many is a lot indeed: 2^64-1.