class Nis::Keypair
Attributes
private[R]
public[R]
Public Class Methods
new(private_key, public_key: nil)
click to toggle source
@param [String] Hex Private Key @option options [Strung] :public_key Hex Public Key
# File lib/nis/keypair.rb, line 7 def initialize(private_key, public_key: nil) @private = private_key @public = public_key || calc_public_key end
Public Instance Methods
sign(data)
click to toggle source
@param [String] Hex string @return [String] Signed hex string
# File lib/nis/keypair.rb, line 14 def sign(data) bin_data = Nis::Util::Convert.hex2bin(data) bin_signed = Nis::Util::Ed25519.signature_hash_unsafe(bin_data, bin_secret, bin_public) bin_signed.unpack('H*').first end
Private Instance Methods
bin_public()
click to toggle source
# File lib/nis/keypair.rb, line 34 def bin_public @bin_public ||= Nis::Util::Ed25519.publickey_hash_unsafe(bin_secret) end
bin_secret()
click to toggle source
# File lib/nis/keypair.rb, line 30 def bin_secret @bin_secret ||= Nis::Util::Convert.hex2bin_rev(fix_private_key(@private)) end
calc_public_key()
click to toggle source
# File lib/nis/keypair.rb, line 26 def calc_public_key bin_public.unpack('H*').first end
fix_private_key(key)
click to toggle source
# File lib/nis/keypair.rb, line 22 def fix_private_key(key) "#{'0' * 64}#{key.sub(/^00/i, '')}"[-64, 64] end