diff options
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) } } |