aboutsummaryrefslogtreecommitdiffstats
path: root/src/block/blowfish/blowfish.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/block/blowfish/blowfish.cpp')
-rw-r--r--src/block/blowfish/blowfish.cpp22
1 files changed, 10 insertions, 12 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);
}
}