-- | The Record Protocol takes messages to be transmitted, fragments -- the data into manageable blocks, optionally compresses the data, -- applies a MAC, encrypts, and transmits the result. Received data -- is decrypted, verified, decompressed, reassembled, and then -- delivered to higher-level clients. module Network.TLS.Record ( Record (..), -- * Fragment manipulation types Fragment, fragmentGetBytes, fragmentPlaintext, fragmentCiphertext, recordToRaw, rawToRecord, recordToHeader, Plaintext, Ciphertext, -- * Encrypt and decrypt from the record layer encryptRecord, decryptRecord, -- * State tracking RecordM, runRecordM, RecordState (..), newRecordState, getRecordVersion, setRecordIV, ) where import Network.TLS.Record.Decrypt import Network.TLS.Record.Encrypt import Network.TLS.Record.State import Network.TLS.Record.Types