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