aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/stream/rc4
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/stream/rc4')
-rw-r--r--src/lib/stream/rc4/rc4.cpp80
-rw-r--r--src/lib/stream/rc4/rc4.h14
2 files changed, 47 insertions, 47 deletions
diff --git a/src/lib/stream/rc4/rc4.cpp b/src/lib/stream/rc4/rc4.cpp
index 9a6268b8c..895f38091 100644
--- a/src/lib/stream/rc4/rc4.cpp
+++ b/src/lib/stream/rc4/rc4.cpp
@@ -23,16 +23,16 @@ RC4* RC4::make(const Spec& spec)
*/
void RC4::cipher(const byte in[], byte out[], size_t length)
{
- while(length >= buffer.size() - position)
+ while(length >= m_buffer.size() - m_position)
{
- xor_buf(out, in, &buffer[position], buffer.size() - position);
- length -= (buffer.size() - position);
- in += (buffer.size() - position);
- out += (buffer.size() - position);
+ xor_buf(out, in, &m_buffer[m_position], m_buffer.size() - m_position);
+ length -= (m_buffer.size() - m_position);
+ in += (m_buffer.size() - m_position);
+ out += (m_buffer.size() - m_position);
generate();
}
- xor_buf(out, in, &buffer[position], length);
- position += length;
+ xor_buf(out, in, &m_buffer[m_position], length);
+ m_position += length;
}
/*
@@ -41,26 +41,26 @@ void RC4::cipher(const byte in[], byte out[], size_t length)
void RC4::generate()
{
byte SX, SY;
- for(size_t i = 0; i != buffer.size(); i += 4)
+ for(size_t i = 0; i != m_buffer.size(); i += 4)
{
- SX = state[X+1]; Y = (Y + SX) % 256; SY = state[Y];
- state[X+1] = SY; state[Y] = SX;
- buffer[i] = state[(SX + SY) % 256];
-
- SX = state[X+2]; Y = (Y + SX) % 256; SY = state[Y];
- state[X+2] = SY; state[Y] = SX;
- buffer[i+1] = state[(SX + SY) % 256];
-
- SX = state[X+3]; Y = (Y + SX) % 256; SY = state[Y];
- state[X+3] = SY; state[Y] = SX;
- buffer[i+2] = state[(SX + SY) % 256];
-
- X = (X + 4) % 256;
- SX = state[X]; Y = (Y + SX) % 256; SY = state[Y];
- state[X] = SY; state[Y] = SX;
- buffer[i+3] = state[(SX + SY) % 256];
+ SX = m_state[m_X+1]; m_Y = (m_Y + SX) % 256; SY = m_state[m_Y];
+ m_state[m_X+1] = SY; m_state[m_Y] = SX;
+ m_buffer[i] = m_state[(SX + SY) % 256];
+
+ SX = m_state[m_X+2]; m_Y = (m_Y + SX) % 256; SY = m_state[m_Y];
+ m_state[m_X+2] = SY; m_state[m_Y] = SX;
+ m_buffer[i+1] = m_state[(SX + SY) % 256];
+
+ SX = m_state[m_X+3]; m_Y = (m_Y + SX) % 256; SY = m_state[m_Y];
+ m_state[m_X+3] = SY; m_state[m_Y] = SX;
+ m_buffer[i+2] = m_state[(SX + SY) % 256];
+
+ m_X = (m_X + 4) % 256;
+ SX = m_state[m_X]; m_Y = (m_Y + SX) % 256; SY = m_state[m_Y];
+ m_state[m_X] = SY; m_state[m_Y] = SX;
+ m_buffer[i+3] = m_state[(SX + SY) % 256];
}
- position = 0;
+ m_position = 0;
}
/*
@@ -68,24 +68,24 @@ void RC4::generate()
*/
void RC4::key_schedule(const byte key[], size_t length)
{
- state.resize(256);
- buffer.resize(256);
+ m_state.resize(256);
+ m_buffer.resize(256);
- position = X = Y = 0;
+ m_position = m_X = m_Y = 0;
for(size_t i = 0; i != 256; ++i)
- state[i] = static_cast<byte>(i);
+ m_state[i] = static_cast<byte>(i);
for(size_t i = 0, state_index = 0; i != 256; ++i)
{
- state_index = (state_index + key[i % length] + state[i]) % 256;
- std::swap(state[i], state[state_index]);
+ state_index = (state_index + key[i % length] + m_state[i]) % 256;
+ std::swap(m_state[i], m_state[state_index]);
}
- for(size_t i = 0; i <= SKIP; i += buffer.size())
+ for(size_t i = 0; i <= m_SKIP; i += m_buffer.size())
generate();
- position += (SKIP % buffer.size());
+ m_position += (m_SKIP % m_buffer.size());
}
/*
@@ -93,9 +93,9 @@ void RC4::key_schedule(const byte key[], size_t length)
*/
std::string RC4::name() const
{
- if(SKIP == 0) return "RC4";
- if(SKIP == 256) return "MARK-4";
- else return "RC4_skip(" + std::to_string(SKIP) + ")";
+ if(m_SKIP == 0) return "RC4";
+ if(m_SKIP == 256) return "MARK-4";
+ else return "RC4_skip(" + std::to_string(m_SKIP) + ")";
}
/*
@@ -103,14 +103,14 @@ std::string RC4::name() const
*/
void RC4::clear()
{
- zap(state);
- zap(buffer);
- position = X = Y = 0;
+ zap(m_state);
+ zap(m_buffer);
+ m_position = m_X = m_Y = 0;
}
/*
* RC4 Constructor
*/
-RC4::RC4(size_t s) : SKIP(s) {}
+RC4::RC4(size_t s) : m_SKIP(s) {}
}
diff --git a/src/lib/stream/rc4/rc4.h b/src/lib/stream/rc4/rc4.h
index 9c4b2717c..c8c81d1a2 100644
--- a/src/lib/stream/rc4/rc4.h
+++ b/src/lib/stream/rc4/rc4.h
@@ -24,7 +24,7 @@ class BOTAN_DLL RC4 : public StreamCipher
void clear() override;
std::string name() const override;
- StreamCipher* clone() const override { return new RC4(SKIP); }
+ StreamCipher* clone() const override { return new RC4(m_SKIP); }
Key_Length_Specification key_spec() const override
{
@@ -43,12 +43,12 @@ class BOTAN_DLL RC4 : public StreamCipher
void key_schedule(const byte[], size_t) override;
void generate();
- const size_t SKIP;
- byte X = 0;
- byte Y = 0;
- secure_vector<byte> state;
- secure_vector<byte> buffer;
- size_t position = 0;
+ const size_t m_SKIP;
+ byte m_X = 0;
+ byte m_Y = 0;
+ secure_vector<byte> m_state;
+ secure_vector<byte> m_buffer;
+ size_t m_position = 0;
};
}