From e6e80f427d0ab3d908749c33e804b4af48d01617 Mon Sep 17 00:00:00 2001 From: nronzel <86695181+nronzel@users.noreply.github.com> Date: Sun, 11 Feb 2024 20:42:42 -0500 Subject: [PATCH 1/6] updated gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 7056f80..9326600 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ .env -xoracle +xoracle* From 9f3c72aca6339c3b6ca29d7e1a20b2c2b0af66f7 Mon Sep 17 00:00:00 2001 From: nronzel <86695181+nronzel@users.noreply.github.com> Date: Sun, 11 Feb 2024 21:09:49 -0500 Subject: [PATCH 2/6] feat: added more tests --- utils/utils_test.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/utils/utils_test.go b/utils/utils_test.go index ff44d3c..11adc31 100644 --- a/utils/utils_test.go +++ b/utils/utils_test.go @@ -11,6 +11,9 @@ func TestScoreText(t *testing.T) { score float64 }{ {name: "Valid score", text: "What Do You Want From Me", score: 158.66299999999998}, + {name: "No text", text: "", score: 0.0}, + {name: "Single letter", text: "a", score: 8.167}, + {name: "Space", text: " ", score: 13.000}, } for _, tt := range tests { From b3954da7be25168a07ffb2ead6f9ad4a596bc295 Mon Sep 17 00:00:00 2001 From: nronzel <86695181+nronzel@users.noreply.github.com> Date: Sun, 11 Feb 2024 21:10:02 -0500 Subject: [PATCH 3/6] updated README --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index 6d07afb..0ff09ac 100644 --- a/README.md +++ b/README.md @@ -180,6 +180,21 @@ see the hosted Docker application. Enter the encoded text in the input box and click the "Process" button. The processed data will show in the output box, or an error will display on the screen. +Feel free to use the small example below, or the text from the included [example.txt](./example.txt) +file in the repository to test it out. + +```sh +// Base64 encoded +MiciMCQ2YTYkOjViJTclJyQ= +``` + +or + +```sh +// Hex encoded +3227223024366136243a35622537252724 +``` + ## About This project was created while going through the [CryptoPals](https://cryptopals.com/) From 132c0c5ad050bc90fcb555b6060aaa9ad5925239 Mon Sep 17 00:00:00 2001 From: nronzel <86695181+nronzel@users.noreply.github.com> Date: Sun, 11 Feb 2024 21:10:12 -0500 Subject: [PATCH 4/6] feat: added test for ProcessKeySizes --- pkg/decryption/decryption_test.go | 49 +++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 pkg/decryption/decryption_test.go diff --git a/pkg/decryption/decryption_test.go b/pkg/decryption/decryption_test.go new file mode 100644 index 0000000..b7a9f47 --- /dev/null +++ b/pkg/decryption/decryption_test.go @@ -0,0 +1,49 @@ +package decryption + +import ( + "reflect" + "testing" + + "github.com/nronzel/xoracle/utils" +) + +func TestProcessKeySizes(t *testing.T) { + decodedBase64, _ := utils.DecodeBase64("MiciMCQ2YTYkOjViJTclJyQ=") + decodedHex, _ := utils.DecodeHex("3227223024366136243a35622537252724") + tests := []struct { + name string + topKeySizes []int + data []byte + expected []DecryptionResult + }{ + {name: "Base64 Decoded - Should Decrypt", + topKeySizes: []int{2}, + data: decodedBase64, + expected: []DecryptionResult{ + {KeySize: 2, + Key: []byte("AB"), + DecryptedData: "secret text dudee", + }, + }, + }, + {name: "Base64 Decoded - Should Decrypt", + topKeySizes: []int{2}, + data: decodedHex, + expected: []DecryptionResult{ + {KeySize: 2, + Key: []byte("AB"), + DecryptedData: "secret text dudee", + }, + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := ProcessKeySizes(tt.topKeySizes, tt.data) + if !reflect.DeepEqual(got[0], tt.expected[0]) { + t.Errorf("did not receive expected result: %v", got[0]) + } + }) + } +} From e0631b024d3d63f6898d12f3a80c972766e72e9a Mon Sep 17 00:00:00 2001 From: nronzel <86695181+nronzel@users.noreply.github.com> Date: Sun, 11 Feb 2024 21:10:23 -0500 Subject: [PATCH 5/6] chore: added example Base64 encoded text --- example.txt | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 example.txt diff --git a/example.txt b/example.txt new file mode 100644 index 0000000..cecdb81 --- /dev/null +++ b/example.txt @@ -0,0 +1,64 @@ +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 From 3addaffb6af17dd1c12341cbd8d3ab938a0a4e6a Mon Sep 17 00:00:00 2001 From: nronzel <86695181+nronzel@users.noreply.github.com> Date: Sun, 11 Feb 2024 21:12:55 -0500 Subject: [PATCH 6/6] chore: formatting --- utils/utils_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/utils_test.go b/utils/utils_test.go index 11adc31..efc2437 100644 --- a/utils/utils_test.go +++ b/utils/utils_test.go @@ -13,7 +13,7 @@ func TestScoreText(t *testing.T) { {name: "Valid score", text: "What Do You Want From Me", score: 158.66299999999998}, {name: "No text", text: "", score: 0.0}, {name: "Single letter", text: "a", score: 8.167}, - {name: "Space", text: " ", score: 13.000}, + {name: "Space", text: " ", score: 13.000}, } for _, tt := range tests {