From 5b76e04f9b579ee219989d4f5bb44d34e88b0faf Mon Sep 17 00:00:00 2001 From: thomashaw Date: Fri, 3 Mar 2017 14:09:00 +0000 Subject: [PATCH] Encoder: Morse Code. 'parentheses' mapped to [], { }, <> and () to cover as many varieties as we can. Any other character not represented in Morse Code is dropped. --- .../morse_code}/manifests/.no_puppet | 0 .../morse_code/morse_code.pp} | 0 .../cipher/morse_code/secgen_local/local.rb | 80 +++++++++++++++++++ .../cipher/morse_code/secgen_metadata.xml | 26 ++++++ .../encoder_examples/morse_code.xml | 27 +++++++ 5 files changed, 133 insertions(+) rename modules/encoders/{number/random_from_range => cipher/morse_code}/manifests/.no_puppet (100%) rename modules/encoders/{number/random_from_range/random_from_range.pp => cipher/morse_code/morse_code.pp} (100%) create mode 100644 modules/encoders/cipher/morse_code/secgen_local/local.rb create mode 100644 modules/encoders/cipher/morse_code/secgen_metadata.xml create mode 100644 scenarios/examples/parameterised_examples/encoder_examples/morse_code.xml diff --git a/modules/encoders/number/random_from_range/manifests/.no_puppet b/modules/encoders/cipher/morse_code/manifests/.no_puppet similarity index 100% rename from modules/encoders/number/random_from_range/manifests/.no_puppet rename to modules/encoders/cipher/morse_code/manifests/.no_puppet diff --git a/modules/encoders/number/random_from_range/random_from_range.pp b/modules/encoders/cipher/morse_code/morse_code.pp similarity index 100% rename from modules/encoders/number/random_from_range/random_from_range.pp rename to modules/encoders/cipher/morse_code/morse_code.pp diff --git a/modules/encoders/cipher/morse_code/secgen_local/local.rb b/modules/encoders/cipher/morse_code/secgen_local/local.rb new file mode 100644 index 000000000..9b7472eb3 --- /dev/null +++ b/modules/encoders/cipher/morse_code/secgen_local/local.rb @@ -0,0 +1,80 @@ +#!/usr/bin/ruby +require_relative '../../../../../lib/objects/local_string_encoder.rb' +class MorseCodeEncoder < StringEncoder + attr_accessor :morse_code_hash + + def initialize + super + self.module_name = 'Morse Code Encoder' + self.strings_to_encode = [] + + self.morse_code_hash = {'a' => '.-', + 'b' => '-...', + 'c' => '-.-.', + 'd' => '-..', + 'e' => '.', + 'f' => '..-.', + 'g' => '--.', + 'h' => '....', + 'i' => '..', + 'j' => '.---', + 'k' => '-.-', + 'l' => '.-..', + 'm' => '--', + 'n' => '-.', + 'o' => '---', + 'p' => '.--.', + 'q' => '--.-', + 'r' => '.-.', + 's' => '...', + 't' => '-', + 'u' => '..-', + 'v' => '...-', + 'w' => '.--', + 'x' => '-..-', + 'y' => '-.--', + 'z' => '--..', + ' ' => '/', + '1' => '.----', + '2' => '..---', + '3' => '...--', + '4' => '....-', + '5' => '.....', + '6' => '-....', + '7' => '--...', + '8' => '---..', + '9' => '----.', + '0' => '-----', + '.' => '.-.-.-', + ',' => '--..--', + ':' => '---...', + '?' => '..--..', + '\'' => '.----.', + '-' => '-....-', + '/' => '-..-.', + '(' => '-.--.-', + ')' => '-.--.-', + '[' => '-.--.-', + ']' => '-.--.-', + '<' => '-.--.-', + '>' => '-.--.-', + '{' => '-.--.-', + '}' => '-.--.-', + '"' => '.-..-.', + '@' => '.--.-.', + '=' => '-...-', + } + end + + def encode(str) + morse_string = '' + str.each_char { |char| + # if the character is in the hash convert it. if not, drop the character. + if morse_code_hash.key? char.downcase + morse_string << morse_code_hash[char.downcase] + ' ' + end + } + morse_string + end +end +MorseCodeEncoder.new.run diff --git a/modules/encoders/cipher/morse_code/secgen_metadata.xml b/modules/encoders/cipher/morse_code/secgen_metadata.xml new file mode 100644 index 000000000..41d2b82b4 --- /dev/null +++ b/modules/encoders/cipher/morse_code/secgen_metadata.xml @@ -0,0 +1,26 @@ + + + + Morse Code Encoder + Thomas Shaw + MIT + Encodes a string into Morse code. + + morse_code_encoder + ascii_reversable + string_encoder + linux + windows + + https://gist.github.com/mikedamage/105081 + + strings_to_encode + + + + + + encoded_strings + diff --git a/scenarios/examples/parameterised_examples/encoder_examples/morse_code.xml b/scenarios/examples/parameterised_examples/encoder_examples/morse_code.xml new file mode 100644 index 000000000..61734c618 --- /dev/null +++ b/scenarios/examples/parameterised_examples/encoder_examples/morse_code.xml @@ -0,0 +1,27 @@ + + + + + + example_server + + + + + + + + + + + + + + + + + + +