bitcoinrb 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c1508c7b3cad66796b7ef2bde7e744e478eb5f6c
4
- data.tar.gz: 11c7f275b40ec3a70f5f55607ec4f8aee4ea0bd4
3
+ metadata.gz: bad0d642595251361c1e4f281ebe2bb7c08093cd
4
+ data.tar.gz: 8a6ce86fdb345abb9fe19b2fb37d80402a92958e
5
5
  SHA512:
6
- metadata.gz: '095ba38bc01e7ef0b83091f63c537f2ce06e0cd91645fcbc7988da05ff54ea25dcf85f9725782d3f5e16057b5c5777275e7ad12c77388e32153f37100c724bbb'
7
- data.tar.gz: 5aa55097029750cf282dc23a1caa5702e1b21a942409adeac25836b083d59fc6994f72300fc76c8415c5d9f21f01b3af0b5d188a9ca035734971cbac0ffd03d3
6
+ metadata.gz: f57859bf2c0080092422681fcc9e7f66c6a4605ae4b00dcef291b4f13126264da9bf6c23424aec2450be5f5819364d74e9765159d77b6d9b74de30ddeeb000fd
7
+ data.tar.gz: e7682dfea261c6456dc5f9e5c969836d338d5045a445b2141a63d97c9117cfea537b62683fe87dd7baae82e94c98dd5109b617db51933aa3656434c264ec1164
data/lib/bitcoin/key.rb CHANGED
@@ -19,6 +19,12 @@ module Bitcoin
19
19
  @compressed = compressed
20
20
  end
21
21
 
22
+ # generate key pair
23
+ def self.generate
24
+ priv_key, pubkey = Bitcoin.secp_impl.generate_key_pair
25
+ new(priv_key: priv_key, pubkey: pubkey)
26
+ end
27
+
22
28
  # import private key from wif format
23
29
  # https://en.bitcoin.it/wiki/Wallet_import_format
24
30
  def self.from_wif(wif)
@@ -146,7 +146,7 @@ module Bitcoin
146
146
  msg32 = FFI::MemoryPointer.new(:uchar, 32).put_bytes(0, data)
147
147
  result = secp256k1_ecdsa_verify(context, internal_signature, msg32, internal_pubkey)
148
148
 
149
- result ? true : false
149
+ result == 1
150
150
  end
151
151
  end
152
152
 
@@ -29,13 +29,13 @@ module Bitcoin
29
29
  # @param [String] privkey a private key using sign
30
30
  # @return [String] signature data with binary format
31
31
  def sign_data(data, privkey)
32
- digest = Digest::SHA2.digest(data)
32
+ # digest = Digest::SHA2.digest(data)
33
33
  private_key = ECDSA::Format::IntegerOctetString.decode(privkey.htb)
34
34
  signature = nil
35
35
  while signature.nil?
36
36
  # TODO support rfc 6979 https://tools.ietf.org/html/rfc6979
37
37
  temp_key = 1 + SecureRandom.random_number(GROUP.order - 1)
38
- signature = ECDSA.sign(GROUP, private_key, digest, temp_key)
38
+ signature = ECDSA.sign(GROUP, private_key, data, temp_key)
39
39
  end
40
40
  ECDSA::Format::SignatureDerString.encode(signature) # signature with DER format
41
41
  end
@@ -1,3 +1,3 @@
1
1
  module Bitcoin
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitcoinrb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - azuchi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-10-02 00:00:00.000000000 Z
11
+ date: 2017-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ecdsa