Disk ARchive 2.3.10
Public Member Functions | Protected Member Functions
libdar::blowfish Class Reference

blowfish implementation of encryption More...

#include <crypto.hpp>

Inherits libdar::tronconneuse.

List of all members.

Public Member Functions

 blowfish (user_interaction &dialog, U_32 block_size, const std::string &password, generic_file &encrypted_side, const dar_version &reading_ver, bool weak_mode)

Protected Member Functions

U_32 encrypted_block_size_for (U_32 clear_block_size)
 defines the size necessary to encrypt a given amount of clear data
U_32 clear_block_allocated_size_for (U_32 clear_block_size)
 it may be necessary by the inherited class have few more bytes allocated after the clear data given for encryption
U_32 encrypt_data (const infinint &block_num, const char *clear_buf, const U_32 clear_size, const U_32 clear_allocated, char *crypt_buf, U_32 crypt_size)
 this method encrypts the clear data given
U_32 decrypt_data (const infinint &block_num, const char *crypt_buf, const U_32 crypt_size, char *clear_buf, U_32 clear_size)
 this method is for decrypts data

Detailed Description

blowfish implementation of encryption

inherited class from tronconneuse class

Definition at line 66 of file crypto.hpp.


Member Function Documentation

U_32 libdar::blowfish::clear_block_allocated_size_for ( U_32  clear_block_size) [protected, virtual]

it may be necessary by the inherited class have few more bytes allocated after the clear data given for encryption

Parameters:
[in]clear_block_sizeis the size in byte of the clear data that will be asked to encrypt.
Returns:
the requested allocated buffer size (at least the size of the clear data).
Note:
when giving clear buffer of data of size "clear_block_size" some inherited class may requested that a bit more of data must be allocated. this is to avoid copying data when the algorithm needs to add some data after the clear data before encryption.

Implements libdar::tronconneuse.

U_32 libdar::blowfish::decrypt_data ( const infinint block_num,
const char *  crypt_buf,
const U_32  crypt_size,
char *  clear_buf,
U_32  clear_size 
) [protected, virtual]

this method is for decrypts data

Parameters:
[in]block_numblock number of the data to decrypt.
[in]crypt_bufpointer to the first byte of encrypted data.
[in]crypt_sizesize of encrypted data to decrypt.
[in,out]clear_bufpointer where to put clear data.
[in]clear_sizeallocated size of clear_buf.
Returns:
is the amount of data put in clear_buf (<= clear_size)

Implements libdar::tronconneuse.

U_32 libdar::blowfish::encrypt_data ( const infinint block_num,
const char *  clear_buf,
const U_32  clear_size,
const U_32  clear_allocated,
char *  crypt_buf,
U_32  crypt_size 
) [protected, virtual]

this method encrypts the clear data given

Parameters:
block_numis the number of the block to which correspond the given data, This is an informational field for inherited classes.
[in]clear_bufpoints to the first byte of clear data to encrypt.
[in]clear_sizeis the length in byte of data to encrypt.
[in]clear_allocatedis the size of the allocated memory (modifiable bytes) in clear_buf.
[in,out]crypt_bufis the area where to put corresponding encrypted data.
[in]crypt_sizeis the allocated memory size for crypt_buf.
Returns:
is the amount of data put in crypt_buf (<= crypt_size).
Note:
it must respect that : returned value = encrypted_block_size_for(clear_size argument)

Implements libdar::tronconneuse.

U_32 libdar::blowfish::encrypted_block_size_for ( U_32  clear_block_size) [protected, virtual]

defines the size necessary to encrypt a given amount of clear data

Parameters:
[in]clear_block_sizeis the size of the clear block to encrypt.
Returns:
the size of the memory to allocate to receive corresponding encrypted data.
Note:
this implies that encryption algorithm must always generate a fixed size encrypted block of data for a given fixed size block of data. However, the size of the encrypted block of data may differ from the size of the clear block of data

Implements libdar::tronconneuse.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Defines