Module Crypto.Ciphers

type keyed =
  1. | K_CBC : 'k State.cbc_cipher * (string -> 'k) -> keyed
val get_block : Ciphersuite.block_cipher -> keyed
type aead_keyed =
  1. | K_AEAD : 'k State.aead_cipher * (string -> 'k) * bool -> aead_keyed
val get_aead_cipher : secret:string -> nonce:State.nonce -> Ciphersuite.aead_cipher -> State.cipher_st
val get_cipher : secret:string -> hmac_secret:State.hmac_key -> iv_mode:State.iv_mode -> nonce:State.nonce -> [< `AEAD of Ciphersuite.aead_cipher | `Block of Ciphersuite.block_cipher * Digestif.hash' ] -> State.cipher_st