class BitJWT::Crypto
Public Class Methods
new(private_key)
click to toggle source
# File lib/bitjwt/crypto.rb, line 5 def initialize(private_key) @key = Bitcoin::Key.from_base58(private_key) end
verify(data, signature_base64, pub_address)
click to toggle source
# File lib/bitjwt/crypto.rb, line 19 def self.verify(data, signature_base64, pub_address) pubkey = Bitcoin::Key.recover_compact_signature_to_key(data, signature_base64) pubkey.addr == pub_address end
Public Instance Methods
bitcoin_address()
click to toggle source
# File lib/bitjwt/crypto.rb, line 9 def bitcoin_address @key.addr end
sign(data)
click to toggle source
# File lib/bitjwt/crypto.rb, line 13 def sign(data) bsm = Bitcoin.bitcoin_signed_message_hash(data) signature = Bitcoin::Secp256k1.sign_compact(bsm, Util.hex_to_bin(@key.priv)) Base64.strict_encode64(signature) end