Method: Klay::Signature#dissect

Defined in:
lib/klay/signature.rb

#dissect(signature) ⇒ String

Dissects a signature blob of 65+ bytes into its r, s, and v values.

Parameters:

  • signature (String)

    a concatenated Secp256k1 signature string.

Returns:

  • (String, String, String)

    the r, s, and v values.

Raises:



50
51
52
53
54
55
56
57
58
59
60
# File 'lib/klay/signature.rb', line 50

def dissect(signature)
  signature = Util.bin_to_hex signature unless Util.is_hex? signature
  signature = Util.remove_hex_prefix signature
  if signature.size != 130
    raise SignatureError, "Unknown signature length #{signature.size}!"
  end
  r = signature[0...64]
  s = signature[64...128]
  v = signature[128..]
  return r, s, v
end