Module: WOTS::Util

Included in:
Param, PrivateKey, PrivateKey, PublicKey, PublicKey, Signature
Defined in:
lib/wots/util.rb

Instance Method Summary collapse

Instance Method Details

#bin_to_hex(data) ⇒ String

Convert binary string data to hex string.

Parameters:

  • data (String)

    Binary string.

Returns:

  • (String)

    Hex string.

Raises:

  • (ArgumentError)


28
29
30
31
# File 'lib/wots/util.rb', line 28

def bin_to_hex(data)
  raise ArgumentError, 'data must be string' unless data.is_a?(String)
  data.unpack1('H*')
end

#hex_string?(data) ⇒ Boolean

Check whether data is hex string or not. An odd-length string is NOT a valid hex string, since Array#pack would silently zero-pad it and make two distinct inputs collide.

Parameters:

  • data (String)

Returns:

  • (Boolean)

Raises:

  • (ArgumentError)


10
11
12
13
# File 'lib/wots/util.rb', line 10

def hex_string?(data)
  raise ArgumentError, 'data must be string' unless data.is_a?(String)
  data.length.even? && data.match?(/\A[0-9a-fA-F]+\z/)
end

#hex_to_bin(data) ⇒ String

Convert hex string data to binary.

Parameters:

  • data (String)

    Hex string.

Returns:

  • (String)

    Binary string.

Raises:

  • (ArgumentError)

    If data is not a hex string.



19
20
21
22
# File 'lib/wots/util.rb', line 19

def hex_to_bin(data)
  raise ArgumentError, 'data must be hex string' unless hex_string?(data)
  [data].pack('H*')
end