summaryrefslogtreecommitdiff
path: root/src/utils/crypto/CipherGenerator.scala
diff options
context:
space:
mode:
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)
}
}