removed trailing spaces ([[:space:]]+$)
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
|
||||
#include "aes_crypter.h"
|
||||
|
||||
/*
|
||||
@@ -36,26 +36,26 @@ typedef struct private_aes_crypter_t private_aes_crypter_t;
|
||||
|
||||
/**
|
||||
* Class implementing the AES symmetric encryption algorithm.
|
||||
*
|
||||
*
|
||||
* @ingroup crypters
|
||||
*/
|
||||
struct private_aes_crypter_t {
|
||||
|
||||
|
||||
/**
|
||||
* Public part of this class.
|
||||
*/
|
||||
aes_crypter_t public;
|
||||
|
||||
|
||||
/**
|
||||
* Number of words in the key input block.
|
||||
*/
|
||||
u_int32_t aes_Nkey;
|
||||
|
||||
|
||||
/**
|
||||
* The number of cipher rounds.
|
||||
*/
|
||||
u_int32_t aes_Nrnd;
|
||||
|
||||
|
||||
/**
|
||||
* The encryption key schedule.
|
||||
*/
|
||||
@@ -65,7 +65,7 @@ struct private_aes_crypter_t {
|
||||
* The decryption key schedule.
|
||||
*/
|
||||
u_int32_t aes_d_key[AES_KS_LENGTH];
|
||||
|
||||
|
||||
/**
|
||||
* Key size of this AES cypher object.
|
||||
*/
|
||||
@@ -84,13 +84,13 @@ struct private_aes_crypter_t {
|
||||
* is not defined, individually declared 32-bit words are used.
|
||||
* 6. Define FAST_VARIABLE if a high speed variable block implementation
|
||||
* is needed (essentially three separate fixed block size code sequences)
|
||||
* 7. Define either ONE_TABLE or FOUR_TABLES for a fast table driven
|
||||
* 7. Define either ONE_TABLE or FOUR_TABLES for a fast table driven
|
||||
* version using 1 table (2 kbytes of table space) or 4 tables (8
|
||||
* kbytes of table space) for higher speed.
|
||||
* 8. Define either ONE_LR_TABLE or FOUR_LR_TABLES for a further speed
|
||||
* 8. Define either ONE_LR_TABLE or FOUR_LR_TABLES for a further speed
|
||||
* increase by using tables for the last rounds but with more table
|
||||
* space (2 or 8 kbytes extra).
|
||||
* 9. If neither ONE_TABLE nor FOUR_TABLES is defined, a compact but
|
||||
* 9. If neither ONE_TABLE nor FOUR_TABLES is defined, a compact but
|
||||
* slower version is provided.
|
||||
* 10. If fast decryption key scheduling is needed define ONE_IM_TABLE
|
||||
* or FOUR_IM_TABLES for higher speed (2 or 8 kbytes extra).
|
||||
@@ -131,17 +131,17 @@ struct private_aes_crypter_t {
|
||||
|
||||
#if defined(AES_BLOCK_SIZE) && AES_BLOCK_SIZE != 16 && AES_BLOCK_SIZE != 24 && AES_BLOCK_SIZE != 32
|
||||
#error an illegal block size has been specified
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Rotates bytes within words by n positions, moving bytes
|
||||
* Rotates bytes within words by n positions, moving bytes
|
||||
* to higher index positions with wrap around into low positions.
|
||||
*/
|
||||
*/
|
||||
#define upr(x,n) (((x) << 8 * (n)) | ((x) >> (32 - 8 * (n))))
|
||||
/**
|
||||
* Moves bytes by n positions to higher index positions in
|
||||
* Moves bytes by n positions to higher index positions in
|
||||
* words but without wrap around.
|
||||
*/
|
||||
*/
|
||||
#define ups(x,n) ((x) << 8 * (n))
|
||||
|
||||
/**
|
||||
@@ -154,7 +154,7 @@ struct private_aes_crypter_t {
|
||||
|
||||
/* little endian processor without data alignment restrictions: AES_LE_OK */
|
||||
/* original code: i386 */
|
||||
#if defined(i386) || defined(_I386) || defined(__i386__) || defined(__i386)
|
||||
#if defined(i386) || defined(_I386) || defined(__i386__) || defined(__i386)
|
||||
#define AES_LE_OK 1
|
||||
/* added (tested): alpha --jjo */
|
||||
#elif defined(__alpha__)|| defined (__alpha)
|
||||
@@ -220,9 +220,9 @@ struct private_aes_crypter_t {
|
||||
// give improved performance if a fast 32-bit multiply is not available. Note
|
||||
// that a temporary variable u needs to be defined where FFmulX is used.
|
||||
|
||||
// #define FFmulX(x) (u = (x) & m1, u |= (u >> 1), ((x) & m2) << 1) ^ ((u >> 3) | (u >> 6))
|
||||
// #define FFmulX(x) (u = (x) & m1, u |= (u >> 1), ((x) & m2) << 1) ^ ((u >> 3) | (u >> 6))
|
||||
// #define m4 0x1b1b1b1b
|
||||
// #define FFmulX(x) (u = (x) & m1, ((x) & m2) << 1) ^ ((u - (u >> 7)) & m4)
|
||||
// #define FFmulX(x) (u = (x) & m1, ((x) & m2) << 1) ^ ((u - (u >> 7)) & m4)
|
||||
|
||||
// perform column mix operation on four bytes in parallel
|
||||
|
||||
@@ -343,7 +343,7 @@ static const u_int32_t rcon_tab[29] =
|
||||
#define w2(p) 0x00##p##0000
|
||||
#define w3(p) 0x##p##000000
|
||||
|
||||
#if defined(FIXED_TABLES) && (defined(ONE_TABLE) || defined(FOUR_TABLES))
|
||||
#if defined(FIXED_TABLES) && (defined(ONE_TABLE) || defined(FOUR_TABLES))
|
||||
|
||||
// data for forward tables (other than last round)
|
||||
|
||||
@@ -526,7 +526,7 @@ static const u_int32_t it_tab[4][256] =
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(FIXED_TABLES) && (defined(ONE_LR_TABLE) || defined(FOUR_LR_TABLES))
|
||||
#if defined(FIXED_TABLES) && (defined(ONE_LR_TABLE) || defined(FOUR_LR_TABLES))
|
||||
|
||||
// data for inverse tables (last round)
|
||||
|
||||
@@ -608,7 +608,7 @@ static const u_int32_t il_tab[4][256] =
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(FIXED_TABLES) && (defined(ONE_IM_TABLE) || defined(FOUR_IM_TABLES))
|
||||
#if defined(FIXED_TABLES) && (defined(ONE_IM_TABLE) || defined(FOUR_IM_TABLES))
|
||||
|
||||
#define m_table \
|
||||
r(00,00,00,00), r(0b,0d,09,0e), r(16,1a,12,1c), r(1d,17,1b,12),\
|
||||
@@ -733,8 +733,8 @@ static u_int32_t im_tab[4][256];
|
||||
|
||||
#if !defined(FF_TABLES)
|
||||
|
||||
// It will generally be sensible to use tables to compute finite
|
||||
// field multiplies and inverses but where memory is scarse this
|
||||
// It will generally be sensible to use tables to compute finite
|
||||
// field multiplies and inverses but where memory is scarse this
|
||||
// code might sometimes be better.
|
||||
|
||||
// return 2 ^ (n - 1) where n is the bit number of the highest bit
|
||||
@@ -743,7 +743,7 @@ static u_int32_t im_tab[4][256];
|
||||
|
||||
static unsigned char hibit(const u_int32_t x)
|
||||
{ unsigned char r = (unsigned char)((x >> 1) | (x >> 2));
|
||||
|
||||
|
||||
r |= (r >> 2);
|
||||
r |= (r >> 4);
|
||||
return (r + 1) >> 1;
|
||||
@@ -761,14 +761,14 @@ static unsigned char FFinv(const unsigned char x)
|
||||
if(!n1) return v1;
|
||||
|
||||
while(n2 >= n1)
|
||||
{
|
||||
{
|
||||
n2 /= n1; p2 ^= p1 * n2; v2 ^= v1 * n2; n2 = hibit(p2);
|
||||
}
|
||||
|
||||
|
||||
if(!n2) return v2;
|
||||
|
||||
while(n1 >= n2)
|
||||
{
|
||||
{
|
||||
n1 /= n2; p1 ^= p2 * n1; v1 ^= v2 * n1; n1 = hibit(p1);
|
||||
}
|
||||
}
|
||||
@@ -815,9 +815,9 @@ static void gen_tabs(void)
|
||||
// 0x011b as modular polynomial - the simplest primitive
|
||||
// root is 0x03, used here to generate the tables
|
||||
|
||||
i = 0; w = 1;
|
||||
i = 0; w = 1;
|
||||
do
|
||||
{
|
||||
{
|
||||
pow[i] = (unsigned char)w;
|
||||
pow[i + 255] = (unsigned char)w;
|
||||
log[w] = (unsigned char)i++;
|
||||
@@ -987,8 +987,8 @@ switch(nc) \
|
||||
// is being computed, return the input state variables which are
|
||||
// needed for each row (r) of the state
|
||||
|
||||
// For the fixed block size options, compilers reduce these two
|
||||
// expressions to fixed variable references. For variable block
|
||||
// For the fixed block size options, compilers reduce these two
|
||||
// expressions to fixed variable references. For variable block
|
||||
// size code conditional clauses will sometimes be returned
|
||||
|
||||
#define unused 77 // Sunset Strip
|
||||
@@ -1226,17 +1226,17 @@ static void encrypt_block(const private_aes_crypter_t *this, const unsigned char
|
||||
|
||||
switch(this->aes_Nrnd)
|
||||
{
|
||||
case 14: round(fwd_rnd, b1, b0, kp );
|
||||
case 14: round(fwd_rnd, b1, b0, kp );
|
||||
round(fwd_rnd, b0, b1, kp + nc ); kp += 2 * nc;
|
||||
case 12: round(fwd_rnd, b1, b0, kp );
|
||||
case 12: round(fwd_rnd, b1, b0, kp );
|
||||
round(fwd_rnd, b0, b1, kp + nc ); kp += 2 * nc;
|
||||
case 10: round(fwd_rnd, b1, b0, kp );
|
||||
case 10: round(fwd_rnd, b1, b0, kp );
|
||||
round(fwd_rnd, b0, b1, kp + nc);
|
||||
round(fwd_rnd, b1, b0, kp + 2 * nc);
|
||||
round(fwd_rnd, b1, b0, kp + 2 * nc);
|
||||
round(fwd_rnd, b0, b1, kp + 3 * nc);
|
||||
round(fwd_rnd, b1, b0, kp + 4 * nc);
|
||||
round(fwd_rnd, b1, b0, kp + 4 * nc);
|
||||
round(fwd_rnd, b0, b1, kp + 5 * nc);
|
||||
round(fwd_rnd, b1, b0, kp + 6 * nc);
|
||||
round(fwd_rnd, b1, b0, kp + 6 * nc);
|
||||
round(fwd_rnd, b0, b1, kp + 7 * nc);
|
||||
round(fwd_rnd, b1, b0, kp + 8 * nc);
|
||||
round(fwd_lrnd, b0, b1, kp + 9 * nc);
|
||||
@@ -1247,7 +1247,7 @@ static void encrypt_block(const private_aes_crypter_t *this, const unsigned char
|
||||
|
||||
for(rnd = 0; rnd < (this->aes_Nrnd >> 1) - 1; ++rnd)
|
||||
{
|
||||
round(fwd_rnd, b1, b0, kp);
|
||||
round(fwd_rnd, b1, b0, kp);
|
||||
round(fwd_rnd, b0, b1, kp + nc); kp += 2 * nc;
|
||||
}
|
||||
|
||||
@@ -1259,7 +1259,7 @@ static void encrypt_block(const private_aes_crypter_t *this, const unsigned char
|
||||
|
||||
for(rnd = 0; rnd < this->aes_Nrnd - 1; ++rnd)
|
||||
{
|
||||
round(fwd_rnd, b1, b0, kp);
|
||||
round(fwd_rnd, b1, b0, kp);
|
||||
l_copy(b0, b1); kp += nc;
|
||||
}
|
||||
|
||||
@@ -1278,7 +1278,7 @@ static void decrypt_block(const private_aes_crypter_t *this, const unsigned char
|
||||
const u_int32_t *kp = this->aes_d_key;
|
||||
|
||||
#if !defined(ONE_TABLE) && !defined(FOUR_TABLES)
|
||||
u_int32_t f2, f4, f8, f9;
|
||||
u_int32_t f2, f4, f8, f9;
|
||||
#endif
|
||||
|
||||
state_in(b0, in_blk, kp); kp += nc;
|
||||
@@ -1291,13 +1291,13 @@ static void decrypt_block(const private_aes_crypter_t *this, const unsigned char
|
||||
round(inv_rnd, b0, b1, kp + nc ); kp += 2 * nc;
|
||||
case 12: round(inv_rnd, b1, b0, kp );
|
||||
round(inv_rnd, b0, b1, kp + nc ); kp += 2 * nc;
|
||||
case 10: round(inv_rnd, b1, b0, kp );
|
||||
case 10: round(inv_rnd, b1, b0, kp );
|
||||
round(inv_rnd, b0, b1, kp + nc);
|
||||
round(inv_rnd, b1, b0, kp + 2 * nc);
|
||||
round(inv_rnd, b1, b0, kp + 2 * nc);
|
||||
round(inv_rnd, b0, b1, kp + 3 * nc);
|
||||
round(inv_rnd, b1, b0, kp + 4 * nc);
|
||||
round(inv_rnd, b1, b0, kp + 4 * nc);
|
||||
round(inv_rnd, b0, b1, kp + 5 * nc);
|
||||
round(inv_rnd, b1, b0, kp + 6 * nc);
|
||||
round(inv_rnd, b1, b0, kp + 6 * nc);
|
||||
round(inv_rnd, b0, b1, kp + 7 * nc);
|
||||
round(inv_rnd, b1, b0, kp + 8 * nc);
|
||||
round(inv_lrnd, b0, b1, kp + 9 * nc);
|
||||
@@ -1308,7 +1308,7 @@ static void decrypt_block(const private_aes_crypter_t *this, const unsigned char
|
||||
|
||||
for(rnd = 0; rnd < (this->aes_Nrnd >> 1) - 1; ++rnd)
|
||||
{
|
||||
round(inv_rnd, b1, b0, kp);
|
||||
round(inv_rnd, b1, b0, kp);
|
||||
round(inv_rnd, b0, b1, kp + nc); kp += 2 * nc;
|
||||
}
|
||||
|
||||
@@ -1320,7 +1320,7 @@ static void decrypt_block(const private_aes_crypter_t *this, const unsigned char
|
||||
|
||||
for(rnd = 0; rnd < this->aes_Nrnd - 1; ++rnd)
|
||||
{
|
||||
round(inv_rnd, b1, b0, kp);
|
||||
round(inv_rnd, b1, b0, kp);
|
||||
l_copy(b0, b1); kp += nc;
|
||||
}
|
||||
|
||||
@@ -1340,7 +1340,7 @@ static void decrypt(private_aes_crypter_t *this, chunk_t data, chunk_t iv,
|
||||
int pos;
|
||||
const u_int32_t *iv_i;
|
||||
u_int8_t *in, *out;
|
||||
|
||||
|
||||
if (decrypted)
|
||||
{
|
||||
*decrypted = chunk_alloc(data.len);
|
||||
@@ -1351,7 +1351,7 @@ static void decrypt(private_aes_crypter_t *this, chunk_t data, chunk_t iv,
|
||||
out = data.ptr;
|
||||
}
|
||||
in = data.ptr;
|
||||
|
||||
|
||||
pos = data.len-16;
|
||||
in += pos;
|
||||
out += pos;
|
||||
@@ -1386,7 +1386,7 @@ static void encrypt (private_aes_crypter_t *this, chunk_t data, chunk_t iv,
|
||||
int pos;
|
||||
const u_int32_t *iv_i;
|
||||
u_int8_t *in, *out;
|
||||
|
||||
|
||||
in = data.ptr;
|
||||
out = data.ptr;
|
||||
if (encrypted)
|
||||
@@ -1394,7 +1394,7 @@ static void encrypt (private_aes_crypter_t *this, chunk_t data, chunk_t iv,
|
||||
*encrypted = chunk_alloc(data.len);
|
||||
out = encrypted->ptr;
|
||||
}
|
||||
|
||||
|
||||
pos=0;
|
||||
while(pos<data.len)
|
||||
{
|
||||
@@ -1440,18 +1440,18 @@ static void set_key (private_aes_crypter_t *this, chunk_t key)
|
||||
{
|
||||
u_int32_t *kf, *kt, rci, f = 0;
|
||||
u_int8_t *in_key = key.ptr;
|
||||
|
||||
this->aes_Nrnd = (this->aes_Nkey > (nc) ? this->aes_Nkey : (nc)) + 6;
|
||||
|
||||
|
||||
this->aes_Nrnd = (this->aes_Nkey > (nc) ? this->aes_Nkey : (nc)) + 6;
|
||||
|
||||
this->aes_e_key[0] = const_word_in(in_key );
|
||||
this->aes_e_key[1] = const_word_in(in_key + 4);
|
||||
this->aes_e_key[2] = const_word_in(in_key + 8);
|
||||
this->aes_e_key[3] = const_word_in(in_key + 12);
|
||||
|
||||
kf = this->aes_e_key;
|
||||
kt = kf + nc * (this->aes_Nrnd + 1) - this->aes_Nkey;
|
||||
|
||||
kf = this->aes_e_key;
|
||||
kt = kf + nc * (this->aes_Nrnd + 1) - this->aes_Nkey;
|
||||
rci = 0;
|
||||
|
||||
|
||||
switch(this->aes_Nkey)
|
||||
{
|
||||
case 4: do
|
||||
@@ -1463,7 +1463,7 @@ static void set_key (private_aes_crypter_t *this, chunk_t key)
|
||||
}
|
||||
while(kf < kt);
|
||||
break;
|
||||
|
||||
|
||||
case 6: this->aes_e_key[4] = const_word_in(in_key + 16);
|
||||
this->aes_e_key[5] = const_word_in(in_key + 20);
|
||||
do
|
||||
@@ -1496,18 +1496,18 @@ static void set_key (private_aes_crypter_t *this, chunk_t key)
|
||||
while (kf < kt);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if(!f)
|
||||
{
|
||||
u_int32_t i;
|
||||
|
||||
kt = this->aes_d_key + nc * this->aes_Nrnd;
|
||||
kf = this->aes_e_key;
|
||||
|
||||
|
||||
cpy(kt, kf); kt -= 2 * nc;
|
||||
|
||||
|
||||
for(i = 1; i < this->aes_Nrnd; ++i)
|
||||
{
|
||||
{
|
||||
#if defined(ONE_TABLE) || defined(FOUR_TABLES)
|
||||
#if !defined(ONE_IM_TABLE) && !defined(FOUR_IM_TABLES)
|
||||
u_int32_t f2, f4, f8, f9;
|
||||
@@ -1536,18 +1536,18 @@ static void destroy (private_aes_crypter_t *this)
|
||||
aes_crypter_t *aes_crypter_create(encryption_algorithm_t algo, size_t key_size)
|
||||
{
|
||||
private_aes_crypter_t *this;
|
||||
|
||||
|
||||
if (algo != ENCR_AES_CBC)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
this = malloc_thing(private_aes_crypter_t);
|
||||
|
||||
|
||||
#if !defined(FIXED_TABLES)
|
||||
if(!tab_gen) { gen_tabs(); tab_gen = 1; }
|
||||
#endif
|
||||
|
||||
|
||||
this->key_size = key_size;
|
||||
switch(key_size)
|
||||
{
|
||||
@@ -1564,13 +1564,13 @@ aes_crypter_t *aes_crypter_create(encryption_algorithm_t algo, size_t key_size)
|
||||
free(this);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
this->public.crypter_interface.encrypt = (void (*) (crypter_t *, chunk_t,chunk_t, chunk_t *)) encrypt;
|
||||
this->public.crypter_interface.decrypt = (void (*) (crypter_t *, chunk_t , chunk_t, chunk_t *)) decrypt;
|
||||
this->public.crypter_interface.get_block_size = (size_t (*) (crypter_t *)) get_block_size;
|
||||
this->public.crypter_interface.get_key_size = (size_t (*) (crypter_t *)) get_key_size;
|
||||
this->public.crypter_interface.set_key = (void (*) (crypter_t *,chunk_t)) set_key;
|
||||
this->public.crypter_interface.destroy = (void (*) (crypter_t *)) destroy;
|
||||
|
||||
|
||||
return &(this->public);
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ typedef struct aes_crypter_t aes_crypter_t;
|
||||
* Class implementing the AES encryption algorithm.
|
||||
*/
|
||||
struct aes_crypter_t {
|
||||
|
||||
|
||||
/**
|
||||
* The crypter_t interface.
|
||||
*/
|
||||
@@ -39,7 +39,7 @@ struct aes_crypter_t {
|
||||
|
||||
/**
|
||||
* Constructor to create aes_crypter_t objects.
|
||||
*
|
||||
*
|
||||
* @param key_size key size in bytes
|
||||
* @param algo algorithm to implement
|
||||
* @return aes_crypter_t object, NULL if not supported
|
||||
|
||||
@@ -47,12 +47,12 @@ static void destroy(private_aes_plugin_t *this)
|
||||
plugin_t *plugin_create()
|
||||
{
|
||||
private_aes_plugin_t *this = malloc_thing(private_aes_plugin_t);
|
||||
|
||||
|
||||
this->public.plugin.destroy = (void(*)(plugin_t*))destroy;
|
||||
|
||||
|
||||
lib->crypto->add_crypter(lib->crypto, ENCR_AES_CBC,
|
||||
(crypter_constructor_t)aes_crypter_create);
|
||||
|
||||
|
||||
return &this->public.plugin;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user