Disk ARchive  2.5.11
Full featured and portable backup and archiving tool
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
libdar::crypto_sym Class Reference

#include <crypto_sym.hpp>

Inherits libdar::tronconneuse.

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, bool use_pkcs5)
 
- Public Member Functions inherited from libdar::tronconneuse
 tronconneuse (U_32 block_size, generic_file &encrypted_side, bool no_initial_shift, const archive_version &reading_ver)
 This is the constructor. More...
 
 tronconneuse (const tronconneuse &ref)
 copy constructor
 
const tronconneuseoperator= (const tronconneuse &ref)
 assignment operator
 
virtual ~tronconneuse ()
 destructor
 
bool skippable (skippability direction, const infinint &amount)
 inherited from generic_file
 
bool skip (const infinint &pos)
 inherited from generic_file
 
bool skip_to_eof ()
 inherited from generic_file
 
bool skip_relative (S_I x)
 inherited from generic_file
 
infinint get_position () const
 inherited from generic_file
 
void write_end_of_file ()
 in write_only mode indicate that end of file is reached More...
 
void set_initial_shift (const infinint &x)
 this method to modify the initial shift. This overrides the constructor "no_initial_shift" of the constructor
 
void set_callback_trailing_clear_data (infinint(*call_back)(generic_file &below, const archive_version &reading_ver))
 
U_32 get_clear_block_size () const
 returns the block size give to constructor
 
- Public Member Functions inherited from libdar::generic_file
 generic_file (gf_mode m)
 main constructor
 
 generic_file (const generic_file &ref)
 copy constructor
 
virtual ~generic_file () throw (Ebug)
 virtual destructor, this let inherited destructor to be called even from a generic_file pointer to an inherited class
 
void terminate () const
 destructor-like call, except that it is allowed to throw exceptions
 
const generic_fileoperator= (const generic_file &ref)
 assignment operator
 
gf_mode get_mode () const
 retreive the openning mode for this object
 
virtual void read_ahead (const infinint &amount)
 
void ignore_read_ahead (bool mode)
 
U_I read (char *a, U_I size)
 read data from the generic_file More...
 
void write (const char *a, U_I size)
 write data to the generic_file More...
 
void write (const std::string &arg)
 write a string to the generic_file More...
 
S_I read_back (char &a)
 skip back one char, read on char and skip back one char
 
S_I read_forward (char &a)
 read one char
 
virtual void copy_to (generic_file &ref)
 copy all data from current position to the object in argument
 
virtual void copy_to (generic_file &ref, const infinint &crc_size, crc *&value)
 copy all data from the current position to the object in argument and computes a CRC value of the transmitted data More...
 
U_32 copy_to (generic_file &ref, U_32 size)
 small copy (up to 4GB) with CRC calculation
 
infinint copy_to (generic_file &ref, infinint size)
 copy the given amount to the object in argument
 
bool diff (generic_file &f, const infinint &me_read_ahead, const infinint &you_read_ahead, const infinint &crc_size, crc *&value)
 compares the contents with the object in argument More...
 
bool diff (generic_file &f, const infinint &me_read_ahead, const infinint &you_read_ahead, const infinint &crc_size, crc *&value, infinint &err_offset)
 
void reset_crc (const infinint &width)
 reset CRC on read or writen data More...
 
bool crc_status () const
 to known whether CRC calculation is activated or not
 
crc * get_crc ()
 get CRC of the transfered date since last reset More...
 
void sync_write ()
 write any pending data
 
void flush_read ()
 be ready to read at current position, reseting all pending data for reading, cached and in compression engine for example
 
- Public Member Functions inherited from libdar::on_pool
void * operator new (size_t n_byte)
 
void * operator new (size_t n_byte, const std::nothrow_t &nothrow_value)
 
void * operator new[] (size_t n_byte)
 
void * operator new[] (size_t n_byte, const std::nothrow_t &nothrow_value)
 
void * operator new (size_t n_byte, memory_pool *p)
 
void * operator new[] (size_t n_byte, memory_pool *p)
 
void operator delete (void *ptr, memory_pool *p)
 this operator is called by the compiler if an exception is throw from the constructor of the allocated object
 
void operator delete[] (void *ptr, memory_pool *p)
 this operator is called by the compiler if an exception is throw from the constructor of the allocated objects
 
void operator delete (void *ptr)
 this is the usual delete operator, modified to handle allocated objects allocated on a memory pool or not
 
void operator delete[] (void *ptr)
 this is the usual delete[] operator, modified to handle allocated objects allocated on a memory pool or not
 

Static Public Member Functions

static size_t max_key_len (crypto_algo algo)
 returns the max key length in octets for the given algorithm
 
static size_t max_key_len_libdar (crypto_algo algo)
 returns the max key length in octets to use to compute a key from a user provided password
 
static bool is_a_strong_password (crypto_algo algo, const secu_string &password)
 check whether the given password is reported as strong in regard to the given cipher
 

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 More...
 
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 More...
 
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 More...
 
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 More...
 
- Protected Member Functions inherited from libdar::tronconneuse
const archive_versionget_reading_version () const
 
- Protected Member Functions inherited from libdar::generic_file
void set_mode (gf_mode x)
 
bool is_terminated () const
 
- Protected Member Functions inherited from libdar::on_pool
memory_pool * get_pool () const
 
template<class T >
void meta_new (T *&ptr, size_t num)
 
template<class T >
void meta_delete (T *ptr)
 

Additional Inherited Members

- Public Types inherited from libdar::generic_file
enum  skippability { skip_backward, skip_forward }
 

Detailed Description

inherited class from tronconneuse class

Definition at line 63 of file crypto_sym.hpp.

Member Function Documentation

U_32 libdar::crypto_sym::clear_block_allocated_size_for ( U_32  clear_block_size)
protectedvirtual

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 
)
protectedvirtual

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 
)
protectedvirtual

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)
protectedvirtual

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: