Module: Murky

Defined in:
lib/murky.rb,
lib/murky/dict.rb,
lib/murky/proof.rb,
lib/murky/version.rb

Defined Under Namespace

Classes: Dict, Proof

Constant Summary collapse

VERSION =
"0.1.2"

Class Method Summary collapse

Class Method Details

.Dict(*args) ⇒ Object



105
106
107
# File 'lib/murky/dict.rb', line 105

def Dict(*args)
  Dict.new(*args)
end

.verify(root, siblings, value, digest: Digest::SHA256.new) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/murky.rb', line 9

def verify(root, siblings, value, digest: Digest::SHA256.new)
  Proof.new(
    root: root,
    siblings: siblings,
    signature: digest.digest(value.to_s),
    digest: digest
  ).valid?
end

.xor(s1, s2) ⇒ Object



18
19
20
21
22
23
# File 'lib/murky.rb', line 18

def xor(s1, s2)
  s2, s1 = [s1, s2].sort_by(&:bytesize)
  s1.bytes.zip(s2.bytes).map do |x,y|
    ((x || 0) ^ (y || 0)).chr
  end.join
end