Module: SipHash

Defined in:
lib/opendns-dnsdb/dnsdb/siphash.rb

Defined Under Namespace

Classes: State

Class Method Summary collapse

Class Method Details

.digest(key, msg) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/opendns-dnsdb/dnsdb/siphash.rb', line 3

def self.digest(key, msg)
  s = State.new(key)
  len = msg.size
  iter = len / 8

  iter.times do |i|
    m = msg.slice(i * 8, 8).unpack("Q<")[0]
    s.apply_block(m)
  end

  m = last_block(msg, len, iter)

  s.apply_block(m)
  s.finalize
  s.digest
end