Disk ARchive  2.4.2
Public Member Functions | Protected Member Functions
libdar::crypto_sym Class Reference

implementation of encryption using symetrical cryptography used in libgcrypt (among which is blowfish) More...

#include <crypto.hpp>

Inherits libdar::tronconneuse.

Inherited by libdar_4_4::blowfish.

List of all members.

Public Member Functions

 crypto_sym (U_32 block_size, const secu_string &password, generic_file &encrypted_side, bool no_initial_shift, const archive_version &reading_ver, crypto_algo algo)

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 decyphers data

Detailed Description

implementation of encryption using symetrical cryptography used in libgcrypt (among which is blowfish)

inherited class from tronconneuse class

Definition at line 77 of file crypto.hpp.


Member Function Documentation

U_32 libdar::crypto_sym::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::crypto_sym::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 decyphers 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::crypto_sym::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: clear_block_allocated_size_for(clear_size)
[in,out]crypt_bufis the area where to put corresponding encrypted data.
[in]crypt_sizeis the allocated memory size for crypt_buf: encrypted_block_size_for(clear_size)
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::crypto_sym::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 Typedefs Enumerations Enumerator Defines