libkeepass 0.2.0
KeePass key database importer/exporter library
Loading...
Searching...
No Matches
keepass::TwofishCipher Class Referencefinal

Twofish-256 block cipher implementation. More...

#include <cipher.hh>

Inheritance diagram for keepass::TwofishCipher:
keepass::Cipher< 16 >

Public Member Functions

 TwofishCipher (const uint8_t *key)
 Constructs a Twofish cipher with a zero initialization vector.
 
 TwofishCipher (const uint8_t *key, const std::array< uint8_t, 16 > &init_vec)
 Constructs a Twofish cipher with a given initialization vector.
 
 ~TwofishCipher ()
 Zeroizes the expanded key schedule.
 
const std::array< uint8_t, 16 > & InitializationVector () const override
 Returns the initialization vector.
 
void Decrypt (const std::array< uint8_t, 16 > &src, std::array< uint8_t, 16 > &dst) const override
 Decrypts a single 16-byte block using Twofish-256.
 
void Encrypt (const std::array< uint8_t, 16 > &src, std::array< uint8_t, 16 > &dst) const override
 Encrypts a single 16-byte block using Twofish-256.
 
- Public Member Functions inherited from keepass::Cipher< 16 >
virtual void Decrypt (const std::array< uint8_t, N > &src, std::array< uint8_t, N > &dst) const=0
 Decrypts a single block.
 
virtual void Encrypt (const std::array< uint8_t, N > &src, std::array< uint8_t, N > &dst) const=0
 Encrypts a single block.
 

Detailed Description

Twofish-256 block cipher implementation.

Constructor & Destructor Documentation

◆ TwofishCipher() [1/2]

keepass::TwofishCipher::TwofishCipher ( const uint8_t *  key)
inlineexplicit

Constructs a Twofish cipher with a zero initialization vector.

Parameters
keyThe 256-bit (32-byte) encryption key.

◆ TwofishCipher() [2/2]

keepass::TwofishCipher::TwofishCipher ( const uint8_t *  key,
const std::array< uint8_t, 16 > &  init_vec 
)

Constructs a Twofish cipher with a given initialization vector.

Parameters
keyThe 256-bit (32-byte) encryption key.
init_vecThe 16-byte initialization vector.

Member Function Documentation

◆ Decrypt()

void keepass::TwofishCipher::Decrypt ( const std::array< uint8_t, 16 > &  src,
std::array< uint8_t, 16 > &  dst 
) const
override

Decrypts a single 16-byte block using Twofish-256.

Parameters
srcThe ciphertext block to decrypt.
dstThe resulting plaintext block.

◆ Encrypt()

void keepass::TwofishCipher::Encrypt ( const std::array< uint8_t, 16 > &  src,
std::array< uint8_t, 16 > &  dst 
) const
override

Encrypts a single 16-byte block using Twofish-256.

Parameters
srcThe plaintext block to encrypt.
dstThe resulting ciphertext block.

◆ InitializationVector()

const std::array< uint8_t, 16 > & keepass::TwofishCipher::InitializationVector ( ) const
inlineoverridevirtual

Returns the initialization vector.

Implements keepass::Cipher< 16 >.


The documentation for this class was generated from the following file: