Botan 3.8.1
Crypto and TLS for C&
|
#include <threefish_512.h>
Public Types | |
enum | |
Public Member Functions | |
size_t | block_size () const final |
void | clear () override |
BlockCipher * | clone () const |
void | decrypt (const uint8_t in[], uint8_t out[]) const |
void | decrypt (std::span< const uint8_t > in, std::span< uint8_t > out) const |
void | decrypt (std::span< uint8_t > block) const |
void | decrypt (uint8_t block[]) const |
void | decrypt_n (const uint8_t in[], uint8_t out[], size_t blocks) const override |
void | decrypt_n_xex (uint8_t data[], const uint8_t mask[], size_t blocks) const |
void | encrypt (const uint8_t in[], uint8_t out[]) const |
void | encrypt (std::span< const uint8_t > in, std::span< uint8_t > out) const |
void | encrypt (std::span< uint8_t > block) const |
void | encrypt (uint8_t block[]) const |
void | encrypt_n (const uint8_t in[], uint8_t out[], size_t blocks) const override |
void | encrypt_n_xex (uint8_t data[], const uint8_t mask[], size_t blocks) const |
bool | has_keying_material () const override |
Key_Length_Specification | key_spec () const final |
size_t | maximum_keylength () const |
size_t | minimum_keylength () const |
std::string | name () const override |
std::unique_ptr< BlockCipher > | new_object () const override |
size_t | parallel_bytes () const |
virtual size_t | parallelism () const |
virtual std::string | provider () const |
void | set_key (const OctetString &key) |
void | set_key (const uint8_t key[], size_t length) |
void | set_key (std::span< const uint8_t > key) |
void | set_tweak (const uint8_t tweak[], size_t len) override |
bool | valid_keylength (size_t length) const |
Static Public Member Functions | |
static std::unique_ptr< BlockCipher > | create (std::string_view algo_spec, std::string_view provider="") |
static std::unique_ptr< BlockCipher > | create_or_throw (std::string_view algo_spec, std::string_view provider="") |
static std::vector< std::string > | providers (std::string_view algo_spec) |
Static Public Attributes | |
static constexpr size_t | ParallelismMult |
Protected Member Functions | |
void | assert_key_material_set () const |
void | assert_key_material_set (bool predicate) const |
Friends | |
class | Skein_512 |
Threefish-512
Definition at line 19 of file threefish_512.h.
|
inherited |
Definition at line 214 of file block_cipher.h.
|
inlineprotectedinherited |
Definition at line 141 of file sym_algo.h.
Referenced by Botan::Threefish_512::decrypt_n(), and Botan::Threefish_512::encrypt_n().
|
inlineprotectedinherited |
Definition at line 143 of file sym_algo.h.
|
inlinefinalvirtualinherited |
Implements Botan::BlockCipher.
Definition at line 216 of file block_cipher.h.
|
overridevirtual |
Reset the internal state. This includes not just the key, but any partial message that may have been in process.
Implements Botan::SymmetricAlgorithm.
Definition at line 277 of file threefish_512.cpp.
References Botan::zap().
|
inlineinherited |
Definition at line 188 of file block_cipher.h.
|
staticinherited |
Create an instance based on a name If provider is empty then best available is chosen.
algo_spec | algorithm name |
provider | provider implementation to choose |
Definition at line 31 of file block_cipher.cpp.
|
staticinherited |
Create an instance based on a name, or throw if the algo/provider combination cannot be found. If provider is empty then best available is chosen.
Definition at line 38 of file block_cipher.cpp.
|
inlineinherited |
Decrypt a block.
in | The ciphertext block to be decypted as a byte array. Must be of length block_size(). |
out | The byte array designated to hold the decrypted block. Must be of length block_size(). |
Definition at line 91 of file block_cipher.h.
|
inlineinherited |
Decrypt one or more blocks
in | the input buffer (multiple of block_size()) |
out | the output buffer (same size as in) |
Definition at line 139 of file block_cipher.h.
|
inlineinherited |
Decrypt one or more blocks
block | the input/output buffer (multiple of block_size()) |
Definition at line 121 of file block_cipher.h.
|
inlineinherited |
Decrypt a block.
block | the ciphertext block to be decrypted Must be of length block_size(). Will hold the result when the function has finished. |
Definition at line 107 of file block_cipher.h.
|
overridevirtual |
Decrypt one or more blocks
in | the input buffer (multiple of block_size()) |
out | the output buffer (same size as in) |
blocks | the number of blocks to process |
Implements Botan::BlockCipher.
Definition at line 222 of file threefish_512.cpp.
References Botan::Block_Cipher_Fixed_Params< 64, 64, 0, 1, Tweakable_Block_Cipher >::assert_key_material_set(), Botan::Block_Cipher_Fixed_Params< 64, 64, 0, 1, Tweakable_Block_Cipher >::BLOCK_SIZE, Botan::load_le(), and Botan::store_le().
|
inlineinherited |
Definition at line 172 of file block_cipher.h.
|
inlineinherited |
Encrypt a block.
in | The plaintext block to be encrypted as a byte array. Must be of length block_size(). |
out | The byte array designated to hold the encrypted block. Must be of length block_size(). |
Definition at line 82 of file block_cipher.h.
|
inlineinherited |
Encrypt one or more blocks
in | the input buffer (multiple of block_size()) |
out | the output buffer (same size as in) |
Definition at line 130 of file block_cipher.h.
|
inlineinherited |
Encrypt one or more blocks
block | the input/output buffer (multiple of block_size()) |
Definition at line 113 of file block_cipher.h.
|
inlineinherited |
Encrypt a block.
block | the plaintext block to be encrypted Must be of length block_size(). Will hold the result when the function has finished. |
Definition at line 99 of file block_cipher.h.
|
overridevirtual |
Encrypt one or more blocks
in | the input buffer (multiple of block_size()) |
out | the output buffer (same size as in) |
blocks | the number of blocks to process |
Implements Botan::BlockCipher.
Definition at line 195 of file threefish_512.cpp.
References Botan::Block_Cipher_Fixed_Params< 64, 64, 0, 1, Tweakable_Block_Cipher >::assert_key_material_set(), Botan::Block_Cipher_Fixed_Params< 64, 64, 0, 1, Tweakable_Block_Cipher >::BLOCK_SIZE, Botan::load_le(), and Botan::store_le().
|
inlineinherited |
|
overridevirtual |
Implements Botan::SymmetricAlgorithm.
Definition at line 258 of file threefish_512.cpp.
|
inlinefinalvirtualinherited |
Implements Botan::SymmetricAlgorithm.
Definition at line 218 of file block_cipher.h.
|
inlineinherited |
Definition at line 97 of file sym_algo.h.
|
inlineinherited |
Definition at line 102 of file sym_algo.h.
|
inlineoverridevirtual |
Implements Botan::SymmetricAlgorithm.
Definition at line 28 of file threefish_512.h.
|
inlineoverridevirtual |
Implements Botan::BlockCipher.
Definition at line 30 of file threefish_512.h.
|
inlineinherited |
Definition at line 67 of file block_cipher.h.
|
inlinevirtualinherited |
Definition at line 62 of file block_cipher.h.
|
inlinevirtualinherited |
Definition at line 73 of file block_cipher.h.
|
staticinherited |
algo_spec | algorithm name |
Definition at line 44 of file block_cipher.cpp.
|
inherited |
Set the symmetric key of this object.
key | the SymmetricKey to be set. |
Definition at line 115 of file sym_algo.cpp.
|
inlineinherited |
|
inherited |
Set the symmetric key of this object.
key | the contiguous byte range to be set. |
Definition at line 121 of file sym_algo.cpp.
|
overridevirtual |
Set the tweak value. This must be called after setting a key. The value persists until either set_tweak, set_key, or clear is called. Different algorithms support different tweak length(s). If called with an unsupported length, Invalid_Argument will be thrown.
Implements Botan::Tweakable_Block_Cipher.
Definition at line 249 of file threefish_512.cpp.
References BOTAN_ARG_CHECK, and Botan::load_le().
|
inlineinherited |
Check whether a given key length is valid for this algorithm.
length | the key length to be checked. |
Definition at line 109 of file sym_algo.h.
|
friend |
|
staticconstexprinherited |
Multiplier on a block cipher's native parallelism
Usually notable performance gains come from further loop blocking, at least for 2 or 4x
Definition at line 52 of file block_cipher.h.