Reference
Here is a list of all modules:
[detail level 12]
 Block CiphersBlock ciphers are a n-bit permutation for some small n, typically 64 or 128 bits. It is a cryptographic primitive used to generate higher level operations such as authenticated encryption
 AlgorithmsAlgorithms are meant to provide encryption interface similar to STL algorithms' one
 Exploder functions
 Imploder functions
 Pack functions
 Reverser functions
 Codecs
 AlgorithmsEncoding algorithms are meant to provide encoding interface similar to STL algorithms' one
 Hash Functions & ChecksumsHash functions are one-way functions, which map data of arbitrary size to a fixed output length. Most of the hashes functions in crypto3 are designed to be cryptographically secure, which means that it is computationally infeasible to create a collision (finding two inputs with the same hashes) or preimages (given a hashes output, generating an arbitrary input with the same hashes). But note that not all such hashes functions meet their goals, in particular MD4 and MD5 are trivially broken. However they are still included due to their wide adoption in various protocols
 AlgorithmsAlgorithms are meant to provide hashing interface similar to STL algorithms' one
 Key Derivation FunctionsKey derivation function (KDF) derives one or more secret keys from a secret value such as a master key, a password, or a passphrase using a pseudorandom function. KDFs can be used to stretch keys into longer keys or to obtain keys of a required format, such as converting a group element that is the result of a Diffie–Hellman key exchange into a symmetric key for use with AES. Keyed cryptographic hash functions are popular examples of pseudorandom functions used for key derivation
 AlgorithmsAlgorithms are meant to provide key derivation interface similar to STL algorithms' one
 Message Authentication CodesA message authentication code (MAC) can be used to verify the integrity of data and the authenticity of a message
 AlgorithmsAlgorithms are meant to provide message authentication codes computation interface similar to STL algorithms' one
 Cipher Modes
 Block Cipher Modes
 Stream Cipher Modes
 Password Hashing FunctionsStoring passwords for user authentication purposes in plaintext is the simplest but least secure method; when an attacker compromises the database in which the passwords are stored, they immediately gain access to all of them. Often passwords are reused among multiple services or machines, meaning once a password to a single service is known an attacker has a substantial head start on attacking other machines
 AlgorithmsAlgorithms are meant to provide password hashing
 Password Based Key Derivation FunctionsThere are various procedures for turning a passphrase into a arbitrary length key for use with a symmetric cipher. A general interface for such algorithms is presented in pbkdf.h. The main function is derive_key, which takes a passphrase, a salt, an iteration count, and the desired length of the output key, and returns a key of that length, deterministically produced from the passphrase and salt. If an algorithm can't produce a key of that size, it will throw an exception (most notably, PKCS #5's PBKDF1 can only produce strings between 1 and $n$ bytes, where $n$ is the output size of the underlying hash function)
 AlgorithmsAlgorithms are meant to provide key derivation interface similar to STL algorithms' one
 Public Key Schemes
 AlgorithmsAlgorithms are meant to provide scheme operations interfaces similar to STL algorithms' one
 Scheme Modes
 Public Key Cryptography Schemes Modes
 Stream CiphersIn contrast to block ciphers, stream ciphers operate on a plaintext stream instead of blocks. Thus encrypting data results in changing the internal state of the cipher and encryption of plaintext with arbitrary length is possible in one go (in byte amounts)
 AlgorithmsAlgorithms are meant to provide decryption interface similar to STL algorithms' one
 Matrix
 Scalar
 Vector