block_io 1.0.3 → 1.0.4

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: 4d6707d92cd82ae2d2ac1fa8fac10003e2428c38
4
- data.tar.gz: f039eddd8e676ecd72483c0b6009eca69adf1d3a
3
+ metadata.gz: a4070e3d1b972162366367a130966c3eb5c22e51
4
+ data.tar.gz: ba5d436f001c72a584ecb63e74e66edfc2817896
5
5
  SHA512:
6
- metadata.gz: 1c86cf460f1e41c8f54dbfa4112229c35236286eb68110357e8e755c4e2b88792349ae2efc924c59fd98328ac28f5493303b3250676d8c49f89adcfee6a4ae0d
7
- data.tar.gz: 7ecb21200297d0719e76238ce6e45294689f4576769786917999cc51531a1be536f780c4bd1db9510f5e1bcfe86076bed7c38372d00a808a6f2908a44562c26c
6
+ metadata.gz: 63988cad8c218661843facfe58065e1f3eb0ec260ddea3cc4b07295012e8a3a2924e34a0b8e2662464895f20021dcdcf89d688281845be99944f3a7846bfa38c
7
+ data.tar.gz: e4434f2ccc1158b618dd19ea00df54a1da2e3da73f8ab8f0e4e7c660341b2c2fb3f07e366ba3173f4b3cc76843a3151c981b0cb2644d4ed98e8ef57f11430897
data/README.md CHANGED
@@ -14,10 +14,11 @@ And then execute:
14
14
 
15
15
  Or install it yourself as:
16
16
 
17
- $ gem install block_io -v=1.0.2
17
+ $ gem install block_io -v=1.0.4
18
18
 
19
19
  ## Changelog
20
20
 
21
+ *11/03/14*: Reduce dependence on OpenSSL. PBKDF2 function is now Ruby-based. Should work well with Heroku's libraries.
21
22
  *10/18/14*: Now using deterministic signatures (RFC6979), and BIP62 to hinder transaction malleability.
22
23
 
23
24
 
@@ -24,4 +24,5 @@ Gem::Specification.new do |spec|
24
24
  spec.add_runtime_dependency "httpclient", "~> 2.4", '>= 2.4.0'
25
25
  spec.add_runtime_dependency "json", "~> 1.8", '>= 1.8.1'
26
26
  spec.add_runtime_dependency "connection_pool", "~> 2.0", '>= 2.0.0'
27
+ spec.add_runtime_dependency "pbkdf2-ruby", '~> 0.2', '>= 0.2.1'
27
28
  end
@@ -5,6 +5,7 @@ require 'connection_pool'
5
5
  require 'ecdsa'
6
6
  require 'openssl'
7
7
  require 'digest'
8
+ require 'pbkdf2'
8
9
  require 'securerandom'
9
10
  require 'base64'
10
11
 
@@ -267,9 +268,11 @@ module BlockIo
267
268
  # converts the pincode string to PBKDF2
268
269
  # returns a base64 version of PBKDF2 pincode
269
270
  salt = ""
270
- aes_key_bin = OpenSSL::PKCS5.pbkdf2_hmac(secret_pin, salt, iterations/2, 16, OpenSSL::Digest::SHA256.new)
271
- aes_key_bin = OpenSSL::PKCS5.pbkdf2_hmac(aes_key_bin.unpack("H*")[0], salt, iterations/2, 32, OpenSSL::Digest::SHA256.new)
272
-
271
+
272
+ # pbkdf2-ruby gem uses SHA256 as the default hash function
273
+ aes_key_bin = PBKDF2.new(:password => secret_pin, :salt => salt, :iterations => iterations/2, :key_length => 128/8).value
274
+ aes_key_bin = PBKDF2.new(:password => aes_key_bin.unpack("H*")[0], :salt => salt, :iterations => iterations/2, :key_length => 256/8).value
275
+
273
276
  return Base64.strict_encode64(aes_key_bin) # the base64 encryption key
274
277
  end
275
278
 
@@ -1,3 +1,3 @@
1
1
  module BlockIo
2
- VERSION = "1.0.3"
2
+ VERSION = "1.0.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: block_io
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Atif Nazir
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-18 00:00:00.000000000 Z
11
+ date: 2014-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -118,6 +118,26 @@ dependencies:
118
118
  - - ">="
119
119
  - !ruby/object:Gem::Version
120
120
  version: 2.0.0
121
+ - !ruby/object:Gem::Dependency
122
+ name: pbkdf2-ruby
123
+ requirement: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: '0.2'
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: 0.2.1
131
+ type: :runtime
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '0.2'
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ version: 0.2.1
121
141
  description: This Ruby Gem is the official reference client for the Block.io payments
122
142
  API. To use this, you will need the Dogecoin, Bitcoin, or Litecoin API key(s) from
123
143
  Block.io. Go ahead, sign up :)