Class: Ratsel::Helpers
- Inherits:
-
Object
- Object
- Ratsel::Helpers
- Defined in:
- lib/ratsel/helpers/helpers.rb
Class Method Summary collapse
- .get_differences(encrypted_message, end_char, offsets) ⇒ Object
-
.get_key(differences) ⇒ Object
Get encryption key.
-
.offsets_array(date) ⇒ Object
Get offsets array from the date of message transmission.
-
.rotation_array(key) ⇒ Object
Get offsets from generated key.
-
.sum_rotation_offset(offsets, rotation_array) ⇒ Object
Sum of A - n rotation and A - n offsets.
Class Method Details
.get_differences(encrypted_message, end_char, offsets) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/ratsel/helpers/helpers.rb', line 36 def self.get_differences(, end_char, offsets) @character_map = Ratsel::Cipher.character_map differences = [] 4.times do |i| diff = (@character_map.index([i]) - @character_map.index(end_char[i])) diff -= offsets[i].to_i differences[i] = diff.to_s.rjust(2, '0') end differences end |
.get_key(differences) ⇒ Object
Get encryption key
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/ratsel/helpers/helpers.rb', line 52 def self.get_key(differences) key_array = [] differences.each_with_index do |value, index| break if index == differences.size - 1 first_value = value second_value = differences[index + 1] compare(index, first_value, second_value, key_array, differences) end "%d%d%d%d" % [ differences[0], differences[1][-1], differences[2][-1], differences[3][-1] ] end |
.offsets_array(date) ⇒ Object
Get offsets array from the date of message transmission
4 5 6 7 8 9 10 11 12 13 |
# File 'lib/ratsel/helpers/helpers.rb', line 4 def self.offsets_array(date) offsets_array = [] date_square = date.to_i ** 2 new_str = date_square.to_s.reverse new_str = new_str.slice!(0..3).reverse.split('') new_str.each { |str| offsets_array << str.to_i } offsets_array end |
.rotation_array(key) ⇒ Object
Get offsets from generated key
16 17 18 19 20 21 22 23 |
# File 'lib/ratsel/helpers/helpers.rb', line 16 def self.rotation_array(key) key_rotor_array = [] key_array = key.split('') 4.times { key_rotor_array << (key_array.shift + key_array[0]).to_i } key_rotor_array end |
.sum_rotation_offset(offsets, rotation_array) ⇒ Object
Sum of A - n rotation and A - n offsets
26 27 28 29 30 31 32 33 34 |
# File 'lib/ratsel/helpers/helpers.rb', line 26 def self.sum_rotation_offset(offsets, rotation_array) sum_array = [] @offsets_array = offsets @rotation_array = rotation_array 4.times { sum_array << @offsets_array.shift + @rotation_array.shift } sum_array end |