class ArkEcosystem::Crypto::Utils::Message
The builder to work with signed messages.
Public Class Methods
new(message)
click to toggle source
# File lib/arkecosystem/crypto/utils/message.rb, line 6 def initialize(message) @public_key = message[:publickey] @signature = message[:signature] @message = message[:message] end
sign(message, passphrase)
click to toggle source
# File lib/arkecosystem/crypto/utils/message.rb, line 12 def self.sign(message, passphrase) key = ArkEcosystem::Crypto::Identities::PrivateKey.from_passphrase(passphrase) hash = Digest::SHA256.digest(message) Message.new(publickey: BTC.to_hex(key.public_key), signature: BTC.to_hex(key.ecdsa_signature(hash)), message: message) end
Public Instance Methods
to_json()
click to toggle source
# File lib/arkecosystem/crypto/utils/message.rb, line 36 def to_json to_params.to_json end
to_params()
click to toggle source
# File lib/arkecosystem/crypto/utils/message.rb, line 30 def to_params { publickey: @public_key, signature: @signature, message: @message } end
verify()
click to toggle source
# File lib/arkecosystem/crypto/utils/message.rb, line 22 def verify key = BTC::Key.new(public_key: BTC.from_hex(@public_key)) hash = Digest::SHA256.digest(@message) key.verify_ecdsa_signature(BTC.from_hex(@signature), hash) end