Class: BitJWT::Crypto

Inherits:
Object
  • Object
show all
Defined in:
lib/bitjwt/crypto.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(private_key) ⇒ Crypto



5
6
7
# File 'lib/bitjwt/crypto.rb', line 5

def initialize(private_key)
  @key = Bitcoin::Key.from_base58(private_key)
end

Class Method Details

.verify(data, signature_base64, pub_address) ⇒ Object



19
20
21
22
# 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

Instance Method Details

#bitcoin_addressObject



9
10
11
# File 'lib/bitjwt/crypto.rb', line 9

def bitcoin_address
  @key.addr
end

#sign(data) ⇒ Object



13
14
15
16
17
# 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