Add the analyzer options and their actions for the simple substiotution.
continuous-integration/drone/push Build is passing Details

dev 0.9.14
KKlochko 1 year ago
parent a5e148f0b7
commit 2616b14ef4

@ -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."

Loading…
Cancel
Save