Reference
Here is a list of all modules:
[detail level 12]
▼Block Ciphers | Block 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 |
Algorithms | Algorithms are meant to provide encryption interface similar to STL algorithms' one |
Exploder functions | |
Imploder functions | |
Pack functions | |
Reverser functions | |
▼Codecs | |
Algorithms | Encoding algorithms are meant to provide encoding interface similar to STL algorithms' one |
▼Hash Functions & Checksums | Hash 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 |
Algorithms | Algorithms are meant to provide hashing interface similar to STL algorithms' one |
▼Key Derivation Functions | Key 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 |
Algorithms | Algorithms are meant to provide key derivation interface similar to STL algorithms' one |
▼Message Authentication Codes | A message authentication code (MAC) can be used to verify the integrity of data and the authenticity of a message |
Algorithms | Algorithms are meant to provide message authentication codes computation interface similar to STL algorithms' one |
Mac Modes | |
▼Cipher Modes | |
Block Cipher Modes | |
Stream Cipher Modes | |
▼Password Hashing Functions | Storing 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 |
Algorithms | Algorithms are meant to provide password hashing |
▼Password Based Key Derivation Functions | There 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) |
Algorithms | Algorithms are meant to provide key derivation interface similar to STL algorithms' one |
▼Asymmetric cryptography | Pubkey is responsible for asymmetric cryptography. It implements public key signature and encryption schemes and secret sharing schemes |
Asymmetric algorithms | Algorithms are meant to provide interface to asymmetric operations similar to STL algorithms' one |
▼Scheme Modes | |
Public Key Cryptography Schemes Modes | |
▼Stream Ciphers | In 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) |
Algorithms | Algorithms are meant to provide decryption interface similar to STL algorithms' one |
Matrix | |
Scalar | |
Vector |