# libdar::blowfish Class Reference
[Private]

blowfish implementation of encryption More...

`#include <crypto.hpp>`

Inherits libdar::tronconneuse.

List of all members.

## 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_size | is 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_num | block number of the data to decrypt.
  `[in]` | crypt_buf | pointer to the first byte of encrypted data.
  `[in]` | crypt_size | size of encrypted data to decrypt.
  `[in,out]` | clear_buf | pointer where to put clear data.
  `[in]` | clear_size | allocated 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_num | is the number of the block to which correspond the given data, This is an informational field for inherited classes.
  `[in]` | clear_buf | points to the first byte of clear data to encrypt.
  `[in]` | clear_size | is the length in byte of data to encrypt.
  `[in]` | clear_allocated | is the size of the allocated memory (modifiable bytes) in clear_buf.
  `[in,out]` | crypt_buf | is the area where to put corresponding encrypted data.
  `[in]` | crypt_size | is 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_size | is 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:

- crypto.hpp