summaryrefslogtreecommitdiff
path: root/src/utils/crypto/CipherGenerator.scala
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2014-11-28 04:22:20 -0800
committeriximeow <me@iximeow.net>2014-11-28 04:22:20 -0800
commit47888049de29336c3f753d0372b37923d8c71121 (patch)
tree1cd7d3ee2e2d6f0ed3b1357e285f87120bc50dd8 /src/utils/crypto/CipherGenerator.scala
parent6268e2c446d6d54b43668d859184d6f3a779fa3a (diff)
Challenge 11
Diffstat (limited to 'src/utils/crypto/CipherGenerator.scala')
-rw-r--r--src/utils/crypto/CipherGenerator.scala14
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)
}
}