class Nexaas::Cipher::Salt
Salt: represents the disturber salt for ciphering :reek: BooleanParameter :reek: ControlParameter
Public Class Methods
new(salt, base64: false)
click to toggle source
# File lib/nexaas/cipher/salt.rb, line 9 def initialize(salt, base64: false) @salt = base64 ? Base64.decode64(salt) : salt end
Public Instance Methods
salt(code = nil, base64: false, truncate: false)
click to toggle source
# File lib/nexaas/cipher/salt.rb, line 13 def salt(code = nil, base64: false, truncate: false) return Base64.encode64(salt(code, truncate: truncate)).rstrip if base64 return @salt unless code return "\0" * code.length if @salt.empty? dup_salt(code, @salt, truncate) end
salt?()
click to toggle source
# File lib/nexaas/cipher/salt.rb, line 20 def salt? !@salt.empty? end
Private Instance Methods
dup_salt(code, current, truncate)
click to toggle source
current :reek:FeatureEnvy current.length :reek:DuplicateMethodCall
# File lib/nexaas/cipher/salt.rb, line 28 def dup_salt(code, current, truncate) expected_length = code.length expected_length = [current.length, expected_length].max unless truncate current <<= @salt while current.length < expected_length current[0, expected_length] end