Add the analyzer options and their actions for the simple substiotution.
continuous-integration/drone/push Build is passing
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
(ns cipher-analytical-machine.cli.actions.cracking
|
(ns cipher-analytical-machine.cli.actions.cracking
|
||||||
(:require
|
(:require
|
||||||
[cipher-analytical-machine.analyzers.caesar :as caesar-analyzers]
|
[cipher-analytical-machine.analyzers.caesar :as caesar-analyzers]
|
||||||
|
[cipher-analytical-machine.analyzers.simple-substitution :as ss-analyzers]
|
||||||
[cipher-analytical-machine.symbols.frequencies :as symbol-frequencies])
|
[cipher-analytical-machine.symbols.frequencies :as symbol-frequencies])
|
||||||
(:gen-class))
|
(:gen-class))
|
||||||
|
|
||||||
@@ -18,10 +19,27 @@
|
|||||||
:else
|
:else
|
||||||
(caesar-analyzers/get-plaintext message symbols frequencies))))
|
(caesar-analyzers/get-plaintext message symbols frequencies))))
|
||||||
|
|
||||||
|
(defn cracking-simple-substitution-with-caesar
|
||||||
|
[options arguments]
|
||||||
|
(let [analyzer (:analyzer options)
|
||||||
|
message (:message options)
|
||||||
|
symbols (:symbols options)
|
||||||
|
frequencies (-> (get options :language "en")
|
||||||
|
(symbol-frequencies/default-frequency-factory))]
|
||||||
|
(cond
|
||||||
|
(= analyzer "Chi^2")
|
||||||
|
(ss-analyzers/get-plaintext-and-key message frequencies)
|
||||||
|
|
||||||
|
:else
|
||||||
|
(ss-analyzers/get-plaintext-and-key message frequencies))))
|
||||||
|
|
||||||
(defn cracking-actions
|
(defn cracking-actions
|
||||||
[options arguments action-type]
|
[options arguments action-type]
|
||||||
(let [cipher (:cipher options)]
|
(let [cipher (:cipher options)]
|
||||||
(cond
|
(cond
|
||||||
(= cipher "Caesar")
|
(= cipher "Caesar")
|
||||||
(cracking-caesar options arguments))))
|
(cracking-caesar options arguments)
|
||||||
|
|
||||||
|
(= cipher "Simple substitution and Caesar")
|
||||||
|
(cracking-simple-substitution-with-caesar options arguments))))
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,8 @@
|
|||||||
(option-values-as-row "Ciphers" cipher-options))
|
(option-values-as-row "Ciphers" cipher-options))
|
||||||
|
|
||||||
(def analyzers-options
|
(def analyzers-options
|
||||||
{"Caesar" #{"Chi^2"}})
|
{"Caesar" #{"Chi^2" "Frequency"}
|
||||||
|
"Simple substitution and Caesar" #{"Chi^2" "Frequency"}})
|
||||||
|
|
||||||
(defn get-available-analyzers-options-as-string
|
(defn get-available-analyzers-options-as-string
|
||||||
"Return the formatted string of analyzers options."
|
"Return the formatted string of analyzers options."
|
||||||
|
|||||||
Reference in New Issue
Block a user