class Sha256Seal::Builder

Main class for the Sha256Seal library.

Attributes

field[R]
secret[R]
value[R]

Public Class Methods

new(value, secret, field) click to toggle source
# File lib/sha256_seal.rb, line 11
def initialize(value, secret, field)
  @value  = value.to_s
  @secret = secret.to_s
  @field  = field.to_s

  i = @value.scan(@field).length

  return if i.equal?(1)

  raise ::ArgumentError, "#{i} #{@field.inspect} occurrences instead of 1."
end

Public Instance Methods

signed_value() click to toggle source
# File lib/sha256_seal.rb, line 23
def signed_value
  value.gsub(field, signature)
end
signed_value?() click to toggle source
# File lib/sha256_seal.rb, line 27
def signed_value?
  signature.eql?(field)
end

Private Instance Methods

salt_value() click to toggle source
# File lib/sha256_seal.rb, line 37
def salt_value
  value.gsub(field, secret)
end
signature() click to toggle source
# File lib/sha256_seal.rb, line 33
def signature
  ::Digest::SHA256.hexdigest(salt_value)
end