From 582cea881345811217110dc551c459b9b0187b4b Mon Sep 17 00:00:00 2001 From: Aishwarya0601 <69068161+Aishwarya0601@users.noreply.github.com> Date: Tue, 16 Nov 2021 00:45:12 +0530 Subject: [PATCH 1/4] Add implementation of Vigenere Cipher Encryption --- src/main/kotlin/VigenereEncryption.kt | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/main/kotlin/VigenereEncryption.kt diff --git a/src/main/kotlin/VigenereEncryption.kt b/src/main/kotlin/VigenereEncryption.kt new file mode 100644 index 0000000..25409c5 --- /dev/null +++ b/src/main/kotlin/VigenereEncryption.kt @@ -0,0 +1,24 @@ +fun vigenere(text: String, key: String, encrypt: Boolean = true): String { + val t = if (encrypt) text.toUpperCase() else text + val sb = StringBuilder() + var ki = 0 + for (c in t) { + if (c !in 'A'..'Z') continue + val ci = if (encrypt) + (c.toInt() + key[ki].toInt() - 130) % 26 + else + (c.toInt() - key[ki].toInt() + 26) % 26 + sb.append((ci + 65).toChar()) + ki = (ki + 1) % key.length + } + return sb.toString() +} + +fun main(args: Array) { + val key = "LEMON" + val text = "ATTACKATDAWN" + val encoded = vigenere(text, key) + println(encoded) + val decoded = vigenere(encoded, key, false) + println(decoded) +} \ No newline at end of file From 1cf70a630b3dccdcf886e81ba9869a7def576774 Mon Sep 17 00:00:00 2001 From: Aishwarya0601 <69068161+Aishwarya0601@users.noreply.github.com> Date: Tue, 16 Nov 2021 00:46:15 +0530 Subject: [PATCH 2/4] Add folder for encyrption algorithms --- src/main/kotlin/{ => Encryption}/VigenereEncryption.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/main/kotlin/{ => Encryption}/VigenereEncryption.kt (96%) diff --git a/src/main/kotlin/VigenereEncryption.kt b/src/main/kotlin/Encryption/VigenereEncryption.kt similarity index 96% rename from src/main/kotlin/VigenereEncryption.kt rename to src/main/kotlin/Encryption/VigenereEncryption.kt index 25409c5..5768646 100644 --- a/src/main/kotlin/VigenereEncryption.kt +++ b/src/main/kotlin/Encryption/VigenereEncryption.kt @@ -21,4 +21,4 @@ fun main(args: Array) { println(encoded) val decoded = vigenere(encoded, key, false) println(decoded) -} \ No newline at end of file +} From 18ff7d44dc7940a548d01c62ba5c81f844858f0f Mon Sep 17 00:00:00 2001 From: Aishwarya0601 <69068161+Aishwarya0601@users.noreply.github.com> Date: Tue, 16 Nov 2021 00:47:22 +0530 Subject: [PATCH 3/4] Add test cases for Vigenere Encryption --- src/test/kotlin/VigEncTest.kt | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/test/kotlin/VigEncTest.kt diff --git a/src/test/kotlin/VigEncTest.kt b/src/test/kotlin/VigEncTest.kt new file mode 100644 index 0000000..c6fab80 --- /dev/null +++ b/src/test/kotlin/VigEncTest.kt @@ -0,0 +1,29 @@ +import org.junit.Test +import java.util.* + +class VigEncTest { + @Test + fun testWithAttackAtDawnString() { + val secretText = "ATTACKATDAWN" + val key = "LEMON" + val encoded = vigenere(secretText, key) + assert(vigenere(encoded, key, false)==secretText) + + } + @Test + fun testWithIntellIjString() { + val secretText = "INTELLIJJIDEA" + val key = "CIPHER" + val encoded = vigenere(secretText, key) + assert(vigenere(encoded, key, false)==secretText) + + } + @Test + fun testWithAlgorithmjString() { + val secretText = "ALGORITHMREPO" + val key = "LEMON" + val encoded = vigenere(secretText, key) + assert(vigenere(encoded, key, false)==secretText) + + } +} \ No newline at end of file From 572d2ff5ce7c7b1528a1850c449ecb7df689ab13 Mon Sep 17 00:00:00 2001 From: Aishwarya0601 <69068161+Aishwarya0601@users.noreply.github.com> Date: Tue, 16 Nov 2021 00:49:14 +0530 Subject: [PATCH 4/4] Add folder for test cases of Encryption algorithms --- src/test/kotlin/{ => Encryption}/VigEncTest.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/test/kotlin/{ => Encryption}/VigEncTest.kt (95%) diff --git a/src/test/kotlin/VigEncTest.kt b/src/test/kotlin/Encryption/VigEncTest.kt similarity index 95% rename from src/test/kotlin/VigEncTest.kt rename to src/test/kotlin/Encryption/VigEncTest.kt index c6fab80..8ef5b04 100644 --- a/src/test/kotlin/VigEncTest.kt +++ b/src/test/kotlin/Encryption/VigEncTest.kt @@ -26,4 +26,4 @@ class VigEncTest { assert(vigenere(encoded, key, false)==secretText) } -} \ No newline at end of file +}