diff options
author | iximeow <me@iximeow.net> | 2014-11-28 04:22:20 -0800 |
---|---|---|
committer | iximeow <me@iximeow.net> | 2014-11-28 04:22:20 -0800 |
commit | 47888049de29336c3f753d0372b37923d8c71121 (patch) | |
tree | 1cd7d3ee2e2d6f0ed3b1357e285f87120bc50dd8 /src/utils/crypto/CipherGenerator.scala | |
parent | 6268e2c446d6d54b43668d859184d6f3a779fa3a (diff) |
Challenge 11
Diffstat (limited to 'src/utils/crypto/CipherGenerator.scala')
-rw-r--r-- | src/utils/crypto/CipherGenerator.scala | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/utils/crypto/CipherGenerator.scala b/src/utils/crypto/CipherGenerator.scala index e7651cb..391710b 100644 --- a/src/utils/crypto/CipherGenerator.scala +++ b/src/utils/crypto/CipherGenerator.scala @@ -9,8 +9,16 @@ sealed trait CipherGenerator { case class EcbBuilder(primitives: SchemeBuilder) extends CipherGenerator { // lol - def encrypt = ??? - def decrypt = ??? + def encrypt = + setup(Cipher.ENCRYPT_MODE) + def decrypt = + setup(Cipher.DECRYPT_MODE) + + private[this] def setup(cipherMode: Int) = { + val cipher = primitives.cipher + cipher.init(cipherMode, primitives.key) + new EcbCipher(cipher, cipherMode) + } } case class CbcBuilder(primitives: SchemeBuilder, iv: Seq[Byte]) extends CipherGenerator { @@ -22,6 +30,6 @@ case class CbcBuilder(primitives: SchemeBuilder, iv: Seq[Byte]) extends CipherGe private[this] def setup(cipherMode: Int) = { val cipher = primitives.cipher cipher.init(cipherMode, primitives.key) - new CBCCipher(cipher, iv, cipherMode) + new CbcCipher(cipher, iv, cipherMode) } } |