summaryrefslogtreecommitdiff
path: root/src/solvers
diff options
context:
space:
mode:
Diffstat (limited to 'src/solvers')
-rw-r--r--src/solvers/Challenge10.scala51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/solvers/Challenge10.scala b/src/solvers/Challenge10.scala
new file mode 100644
index 0000000..a130106
--- /dev/null
+++ b/src/solvers/Challenge10.scala
@@ -0,0 +1,51 @@
+package ixee.cryptopals.solvers
+
+import scala.io.Source
+import ixee.cryptopals.utils.ByteUtils._
+import ixee.cryptopals.utils.StreamUtils._
+import ixee.cryptopals.utils.ConversionUtils._
+import ixee.cryptopals.utils.FunctionUtils._
+import ixee.cryptopals.utils._
+import io.github.marklister.base64.Base64._
+import javax.crypto.Cipher
+import javax.crypto.spec.SecretKeySpec
+
+object Challenge10 {
+ val path = "./data/10.txt"
+
+ lazy val ciphertext =
+ Source
+ .fromFile(path)
+ .getLines()
+ .toSeq
+ .mkString
+ .toByteArray
+
+ def run = {
+ val encInstance = CryptoUtils.cbcEncryptInstance(
+ "AES",
+ "YELLOW SUBMARINE".asBytes.toArray,
+ Stream.continually(0.toByte).take(16)
+ )
+
+ val decInstance = CryptoUtils.cbcDecryptInstance(
+ "AES",
+ "YELLOW SUBMARINE".asBytes.toArray,
+ Stream.continually(0.toByte).take(16)
+ )
+
+ val s = "foo bar frobnicator the quick brown fox jumps over the lazy dog".asBytes
+
+ val enc = encInstance.enc(s) ++ encInstance.end()
+ val dec = decInstance.dec(enc)
+ println(dec.startsWith(enc))
+
+ val decInstance2 = CryptoUtils.cbcDecryptInstance(
+ "AES",
+ "YELLOW SUBMARINE".asBytes.toArray,
+ Stream.continually(0.toByte).take(16)
+ )
+
+ decInstance2.dec(ciphertext)
+ }
+}