Embedded systems coursework 2.
Fork of Crypto_light by
Diff: cipher/BlockCipher.cpp
- Revision:
- 8:a090264e9b2d
- Child:
- 14:f04410cef037
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cipher/BlockCipher.cpp Sat Sep 14 20:54:59 2013 +0000 @@ -0,0 +1,50 @@ +#include "BlockCipher.h" +#include <string.h> + +BlockCipher::BlockCipher(uint32_t bs, BLOCK_CIPHER_MODE m, uint8_t *iv): +Cipher(), +blockSize(bs), +mode(m), +IV(0) +{ + if(mode == CBC_MODE) + { + IV = new uint8_t[blockSize]; + memcpy(IV, iv, blockSize); + } +} + +BlockCipher::~BlockCipher() +{ + if(IV != 0) + delete[] IV; +} + +CIPHER_TYPE BlockCipher::getType() const +{ + return BLOCK_CIPHER; +} + +uint32_t BlockCipher::getBlockSize() const +{ + return blockSize; +} + +void BlockCipher::encrypt(uint8_t *out, uint8_t *in, uint32_t length) +{ + for(uint32_t i = 0; i < length; i += getBlockSize()) + { + encryptBlock(&out[i], &in[i]); + + } +} + +void BlockCipher::decrypt(uint8_t *out, uint8_t *in, uint32_t length) +{ + for(uint32_t i = 0; i < length; i += getBlockSize()) + { + decryptBlock(&out[i], &in[i]); + + } +} +