diff options
author | lloyd <[email protected]> | 2010-10-13 01:34:15 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2010-10-13 01:34:15 +0000 |
commit | fe4119c74b5e81a354a5313e4d2efbf9a135aa81 (patch) | |
tree | 5c5254cc3a4e5713169ef1d52a83db19c8c4ed65 /src/block/blowfish | |
parent | 60fb91d8cb1710d07041f76050d24229ce91131b (diff) |
Use size_t rather than u32bit in SymmetricAlgorithm
Diffstat (limited to 'src/block/blowfish')
-rw-r--r-- | src/block/blowfish/blowfish.cpp | 22 | ||||
-rw-r--r-- | src/block/blowfish/blowfish.h | 2 |
2 files changed, 11 insertions, 13 deletions
diff --git a/src/block/blowfish/blowfish.cpp b/src/block/blowfish/blowfish.cpp index e72dbb2ae..ea227e93e 100644 --- a/src/block/blowfish/blowfish.cpp +++ b/src/block/blowfish/blowfish.cpp @@ -83,13 +83,13 @@ void Blowfish::decrypt_n(const byte in[], byte out[], size_t blocks) const /* * Blowfish Key Schedule */ -void Blowfish::key_schedule(const byte key[], u32bit length) +void Blowfish::key_schedule(const byte key[], size_t length) { clear(); - for(size_t j = 0, k = 0; j != 18; ++j, k += 4) - P[j] ^= make_u32bit(key[(k ) % length], key[(k+1) % length], - key[(k+2) % length], key[(k+3) % length]); + for(size_t i = 0, j = 0; i != 18; ++i, j += 4) + P[i] ^= make_u32bit(key[(j ) % length], key[(j+1) % length], + key[(j+2) % length], key[(j+3) % length]); u32bit L = 0, R = 0; generate_sbox(P, L, R); @@ -107,22 +107,22 @@ void Blowfish::generate_sbox(MemoryRegion<u32bit>& box, const u32bit* S3 = &S[512]; const u32bit* S4 = &S[768]; - for(size_t j = 0; j != box.size(); j += 2) + for(size_t i = 0; i != box.size(); i += 2) { - for(size_t k = 0; k != 16; k += 2) + for(size_t j = 0; j != 16; j += 2) { - L ^= P[k]; + L ^= P[j]; R ^= ((S1[get_byte(0, L)] + S2[get_byte(1, L)]) ^ S3[get_byte(2, L)]) + S4[get_byte(3, L)]; - R ^= P[k+1]; + R ^= P[j+1]; L ^= ((S1[get_byte(0, R)] + S2[get_byte(1, R)]) ^ S3[get_byte(2, R)]) + S4[get_byte(3, R)]; } u32bit T = R; R = L ^ P[16]; L = T ^ P[17]; - box[j] = L; - box[j+1] = R; + box[i] = L; + box[i+1] = R; } } @@ -133,8 +133,6 @@ void Blowfish::clear() { std::copy(P_INIT, P_INIT + 18, P.begin()); std::copy(S_INIT, S_INIT + 1024, S.begin()); - //P.copy(P_INIT, 18); - //S.copy(S_INIT, 1024); } } diff --git a/src/block/blowfish/blowfish.h b/src/block/blowfish/blowfish.h index 32fb4cbd4..4d39e9e58 100644 --- a/src/block/blowfish/blowfish.h +++ b/src/block/blowfish/blowfish.h @@ -27,7 +27,7 @@ class BOTAN_DLL Blowfish : public BlockCipher Blowfish() : BlockCipher(8, 1, 56), S(1024), P(18) {} private: - void key_schedule(const byte[], u32bit); + void key_schedule(const byte[], size_t); void generate_sbox(MemoryRegion<u32bit>& box, u32bit& L, u32bit& R) const; |