From 0af5a2e4ade0b032e1ec6d25c51de2ff95dd2799 Mon Sep 17 00:00:00 2001 From: iximeow Date: Thu, 27 Nov 2014 02:06:03 -0800 Subject: Rough cut of challenge 10 --- src/solvers/Challenge10.scala | 51 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/solvers/Challenge10.scala (limited to 'src/solvers') 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) + } +} -- cgit v1.1