Method: BlindIndex.decode_key

Defined in:
lib/blind_index.rb

.decode_key(key, name: "Key") ⇒ Object

Raises:



122
123
124
125
126
127
128
129
130
131
132
# File 'lib/blind_index.rb', line 122

def self.decode_key(key, name: "Key")
  # decode hex key
  if key.encoding != Encoding::BINARY && key =~ /\A[0-9a-f]{64}\z/i
    key = [key].pack("H*")
  end

  raise BlindIndex::Error, "#{name} must be 32 bytes (64 hex digits)" if key.bytesize != 32
  raise BlindIndex::Error, "#{name} must use binary encoding" if key.encoding != Encoding::BINARY

  key
end