Module: Mnam::Util::Crypto
- Defined in:
- lib/mnam/util/crypto.rb
Class Method Summary collapse
- .get_address(key, network_address = '17') ⇒ Object
- .get_key(secret) ⇒ Object
- .second_verify(transaction, second_public_key_hex) ⇒ Object
- .verify(transaction) ⇒ Object
Class Method Details
.get_address(key, network_address = '17') ⇒ Object
20 21 22 |
# 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) ⇒ Object
6 7 8 |
# 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) ⇒ Object
15 16 17 18 |
# 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) ⇒ Object
10 11 12 13 |
# 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 |