module Mnam::Util::Crypto

Public Class Methods

get_address(key, network_address = '17') click to toggle source
# File lib/mnam/util/crypto.rb, line 20
def self.get_address(key, network_address = '17')
  BTC::Base58.base58check_from_data([network_address.to_i(16)].pack('c') + Digest::RMD160.digest(key.public_key))
end
get_key(secret) click to toggle source
# File lib/mnam/util/crypto.rb, line 6
def self.get_key(secret)
  BTC::Key.new(:private_key => Digest::SHA256.digest(secret), :public_key_compressed => true)
end
second_verify(transaction, second_public_key_hex) click to toggle source
# File lib/mnam/util/crypto.rb, line 15
def self.second_verify(transaction, second_public_key_hex)
  public_only_key = BTC::Key.new(:public_key => [second_public_key_hex].pack('H*'))
  public_only_key.verify_ecdsa_signature([transaction.sign_signature].pack('H*'), Digest::SHA256.digest(transaction.to_bytes(false)))
end
verify(transaction) click to toggle source
# File lib/mnam/util/crypto.rb, line 10
def self.verify(transaction)
  public_only_key = BTC::Key.new(:public_key => [transaction.sender_public_key].pack('H*'))
  public_only_key.verify_ecdsa_signature([transaction.signature].pack('H*'), Digest::SHA256.digest(transaction.to_bytes))
end