diff options
Diffstat (limited to 'include/bit_ops.h')
-rw-r--r-- | include/bit_ops.h | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/include/bit_ops.h b/include/bit_ops.h index 0b2e85db5..41c401028 100644 --- a/include/bit_ops.h +++ b/include/bit_ops.h @@ -11,77 +11,6 @@ namespace Botan { /************************************************* -* Word Rotation Functions * -*************************************************/ -template<typename T> inline T rotate_left(T input, u32bit rot) - { - return static_cast<T>((input << rot) | (input >> (8*sizeof(T)-rot)));; - } - -template<typename T> inline T rotate_right(T input, u32bit rot) - { - return static_cast<T>((input >> rot) | (input << (8*sizeof(T)-rot))); - } - -/************************************************* -* Byte Swapping Functions * -*************************************************/ -inline u16bit reverse_bytes(u16bit input) - { - return rotate_left(input, 8); - } - -inline u32bit reverse_bytes(u32bit input) - { - input = ((input & 0xFF00FF00) >> 8) | ((input & 0x00FF00FF) << 8); - return rotate_left(input, 16); - } - -inline u64bit reverse_bytes(u64bit input) - { - u32bit hi = ((input >> 40) & 0x00FF00FF) | ((input >> 24) & 0xFF00FF00); - u32bit lo = ((input & 0xFF00FF00) >> 8) | ((input & 0x00FF00FF) << 8); - hi = (hi << 16) | (hi >> 16); - lo = (lo << 16) | (lo >> 16); - return (static_cast<u64bit>(lo) << 32) | hi; - } - -/************************************************* -* XOR Arrays * -*************************************************/ -inline void xor_buf(byte data[], const byte mask[], u32bit length) - { - while(length >= 8) - { - data[0] ^= mask[0]; data[1] ^= mask[1]; - data[2] ^= mask[2]; data[3] ^= mask[3]; - data[4] ^= mask[4]; data[5] ^= mask[5]; - data[6] ^= mask[6]; data[7] ^= mask[7]; - data += 8; mask += 8; length -= 8; - } - for(u32bit j = 0; j != length; ++j) - data[j] ^= mask[j]; - } - -/************************************************* -* XOR Arrays * -*************************************************/ -inline void xor_buf(byte out[], const byte in[], - const byte mask[], u32bit length) - { - while(length >= 8) - { - out[0] = in[0] ^ mask[0]; out[1] = in[1] ^ mask[1]; - out[2] = in[2] ^ mask[2]; out[3] = in[3] ^ mask[3]; - out[4] = in[4] ^ mask[4]; out[5] = in[5] ^ mask[5]; - out[6] = in[6] ^ mask[6]; out[7] = in[7] ^ mask[7]; - in += 8; out += 8; mask += 8; length -= 8; - } - for(u32bit j = 0; j != length; ++j) - out[j] = in[j] ^ mask[j]; - } - -/************************************************* * Simple Bit Manipulation * *************************************************/ bool power_of_2(u64bit); |