bcrypt 3.1.7-x64-mingw32 → 3.1.8-x64-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA512:
3
- metadata.gz: 973d1bd8509b0d42d35977d769bf2522b5e4ec01f45d05e48d842624554941a8cf1a23b56b8baf7a848620ad9cae95d2b702bd70bae10f79f83b8fceb290fd04
4
- data.tar.gz: 241d54653cc5770d02a833b467644a9a40f0f94bc2e8ff4a0b728cda0404754d16beb158a2d3ae4966118e0b5fa626fac6130cc01dc851658536048491825127
3
+ metadata.gz: a358fa7b9694351c998b9ff6b55a121e8bec47bf8b94939a6c588d9ed62fa2dacf632abc8d19573103fd418d7fca284d1071199c60ace8802cf9918e33ce185e
4
+ data.tar.gz: 52a226e5ad26e9fb5b34a49fa9a5bcdc2a2338cd252e2f82dc3311aede4b2d87f23533a244d492e08d0489478fd829404cacd0b571191721b66812615226132b
5
5
  SHA1:
6
- metadata.gz: 96f13c22771da12ea1b60189599305a6e43feba1
7
- data.tar.gz: 495beb691cef42e506a3849699af701c1e7c3f30
6
+ metadata.gz: b4ec10390181d48fc7e70f344ddbcdcd9114a98d
7
+ data.tar.gz: cc1680870b7380d6c0c82d61d0bae05a5eef7a1e
data/.gitignore CHANGED
@@ -1,10 +1,9 @@
1
+ doc
2
+ pkg
3
+ tmp
1
4
  *.o
2
5
  *.bundle
3
6
  *.so
4
7
  *.jar
5
- ext/mri/Makefile
6
- doc
7
- pkg
8
- *.class
9
- tmp/
10
8
  .DS_Store
9
+ .rbenv-gemsets
@@ -10,6 +10,5 @@ rvm:
10
10
  - jruby-19mode
11
11
  - jruby-head
12
12
  - rbx-2
13
- - rbx
14
13
  - ree
15
14
  script: bundle exec rake
data/CHANGELOG CHANGED
@@ -70,3 +70,6 @@
70
70
  3.1.7 Feb 24 2014
71
71
  - Rebuild corrupt Java binary version of gem [GH #90]
72
72
  - The 2.1 support for Windows binaries alleged in 3.1.3 was a lie -- documentation removed
73
+
74
+ 3.1.8 Oct 23 2014
75
+ - Add support for Ruby 2.1 in compiled Windows binaries [GH #102]
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bcrypt (3.1.7)
4
+ bcrypt (3.1.8)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -14,14 +14,18 @@ GEM
14
14
  rake
15
15
  rdoc (3.12.2)
16
16
  json (~> 1.4)
17
- rspec (2.14.1)
18
- rspec-core (~> 2.14.0)
19
- rspec-expectations (~> 2.14.0)
20
- rspec-mocks (~> 2.14.0)
21
- rspec-core (2.14.7)
22
- rspec-expectations (2.14.4)
23
- diff-lcs (>= 1.1.3, < 2.0)
24
- rspec-mocks (2.14.4)
17
+ rspec (3.0.0)
18
+ rspec-core (~> 3.0.0)
19
+ rspec-expectations (~> 3.0.0)
20
+ rspec-mocks (~> 3.0.0)
21
+ rspec-core (3.0.2)
22
+ rspec-support (~> 3.0.0)
23
+ rspec-expectations (3.0.2)
24
+ diff-lcs (>= 1.2.0, < 2.0)
25
+ rspec-support (~> 3.0.0)
26
+ rspec-mocks (3.0.2)
27
+ rspec-support (~> 3.0.0)
28
+ rspec-support (3.0.2)
25
29
 
26
30
  PLATFORMS
27
31
  java
@@ -33,4 +37,4 @@ DEPENDENCIES
33
37
  bcrypt!
34
38
  rake-compiler (~> 0.9.2)
35
39
  rdoc (~> 3.12)
36
- rspec
40
+ rspec (>= 3)
data/README.md CHANGED
@@ -30,7 +30,7 @@ re-hash those passwords. This vulnerability only affected the JRuby gem.
30
30
  The bcrypt gem is available on the following ruby platforms:
31
31
 
32
32
  * JRuby
33
- * RubyInstaller 1.8, 1.9, and 2.0 builds on win32
33
+ * RubyInstaller 1.8, 1.9, 2.0, and 2.1 builds on win32
34
34
  * Any 1.8, 1.9, 2.0, or 2.1 ruby on a BSD/OSX/Linux system with a compiler
35
35
 
36
36
  ## How to use `bcrypt()` in your Rails application
data/Rakefile CHANGED
@@ -7,16 +7,19 @@ require 'rdoc/task'
7
7
  require 'benchmark'
8
8
 
9
9
  CLEAN.include(
10
- "ext/mri/*.o",
11
- "ext/mri/*.bundle",
12
- "ext/mri/*.so",
13
- "ext/jruby/bcrypt_jruby/*.class"
10
+ "tmp",
11
+ "lib/1.8",
12
+ "lib/1.9",
13
+ "lib/2.0",
14
+ "lib/2.1",
15
+ "lib/bcrypt_ext.jar",
16
+ "lib/bcrypt_ext.so"
14
17
  )
15
18
  CLOBBER.include(
16
- "ext/mri/Makefile",
17
- "doc/coverage",
19
+ "doc",
18
20
  "pkg"
19
21
  )
22
+
20
23
  GEMSPEC = Gem::Specification.load("bcrypt.gemspec")
21
24
 
22
25
  task :default => [:compile, :spec]
@@ -58,6 +61,23 @@ else
58
61
  ext.cross_compile = true
59
62
  ext.cross_platform = ['x86-mingw32', 'x64-mingw32']
60
63
  end
64
+
65
+ ENV['RUBY_CC_VERSION'].to_s.split(':').each do |ruby_version|
66
+ platforms = {
67
+ "x86-mingw32" => "i686-w64-mingw32",
68
+ "x64-mingw32" => "x86_64-w64-mingw32"
69
+ }
70
+ platforms.each do |platform, prefix|
71
+ task "copy:bcrypt_ext:#{platform}:#{ruby_version}" do |t|
72
+ %w[lib tmp/#{platform}/stage/lib].each do |dir|
73
+ so_file = "#{dir}/#{ruby_version[/^\d+\.\d+/]}/bcrypt_ext.so"
74
+ if File.exists?(so_file)
75
+ sh "#{prefix}-strip -S #{so_file}"
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
61
81
  end
62
82
 
63
83
  desc "Run a set of benchmarks on the compiled extension."
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'bcrypt'
3
- s.version = '3.1.7'
3
+ s.version = '3.1.8'
4
4
 
5
5
  s.summary = "OpenBSD's bcrypt() password hashing algorithm."
6
6
  s.description = <<-EOF
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
13
13
  s.require_path = 'lib'
14
14
 
15
15
  s.add_development_dependency 'rake-compiler', '~> 0.9.2'
16
- s.add_development_dependency 'rspec'
16
+ s.add_development_dependency 'rspec', '>= 3'
17
17
  s.add_development_dependency 'rdoc', '~> 3.12'
18
18
 
19
19
  s.has_rdoc = true
@@ -11,7 +11,6 @@ if RUBY_PLATFORM == "java"
11
11
  exit 0
12
12
  else
13
13
  require "mkmf"
14
- have_header('ruby/util.h')
15
14
  dir_config("bcrypt_ext")
16
15
  create_makefile("bcrypt_ext")
17
16
  end
@@ -9,12 +9,7 @@ else
9
9
  require "openssl"
10
10
  end
11
11
 
12
- begin
13
- RUBY_VERSION =~ /(\d+.\d+)/
14
- require "#{$1}/bcrypt_ext"
15
- rescue LoadError
16
- require "bcrypt_ext"
17
- end
12
+ require 'bcrypt_ext'
18
13
 
19
14
  require 'bcrypt/error'
20
15
  require 'bcrypt/engine'
@@ -4,35 +4,35 @@ describe "The BCrypt engine" do
4
4
  specify "should calculate the optimal cost factor to fit in a specific time" do
5
5
  first = BCrypt::Engine.calibrate(100)
6
6
  second = BCrypt::Engine.calibrate(400)
7
- second.should > first
7
+ expect(second).to be > first
8
8
  end
9
9
  end
10
10
 
11
11
  describe "Generating BCrypt salts" do
12
12
 
13
13
  specify "should produce strings" do
14
- BCrypt::Engine.generate_salt.should be_an_instance_of(String)
14
+ expect(BCrypt::Engine.generate_salt).to be_an_instance_of(String)
15
15
  end
16
16
 
17
17
  specify "should produce random data" do
18
- BCrypt::Engine.generate_salt.should_not equal(BCrypt::Engine.generate_salt)
18
+ expect(BCrypt::Engine.generate_salt).to_not equal(BCrypt::Engine.generate_salt)
19
19
  end
20
20
 
21
21
  specify "should raise a InvalidCostError if the cost parameter isn't numeric" do
22
- lambda { BCrypt::Engine.generate_salt('woo') }.should raise_error(BCrypt::Errors::InvalidCost)
22
+ expect { BCrypt::Engine.generate_salt('woo') }.to raise_error(BCrypt::Errors::InvalidCost)
23
23
  end
24
24
 
25
25
  specify "should raise a InvalidCostError if the cost parameter isn't greater than 0" do
26
- lambda { BCrypt::Engine.generate_salt(-1) }.should raise_error(BCrypt::Errors::InvalidCost)
26
+ expect { BCrypt::Engine.generate_salt(-1) }.to raise_error(BCrypt::Errors::InvalidCost)
27
27
  end
28
28
  end
29
29
 
30
30
  describe "Autodetecting of salt cost" do
31
31
 
32
32
  specify "should work" do
33
- BCrypt::Engine.autodetect_cost("$2a$08$hRx2IVeHNsTSYYtUWn61Ou").should eq 8
34
- BCrypt::Engine.autodetect_cost("$2a$05$XKd1bMnLgUnc87qvbAaCUu").should eq 5
35
- BCrypt::Engine.autodetect_cost("$2a$13$Lni.CZ6z5A7344POTFBBV.").should eq 13
33
+ expect(BCrypt::Engine.autodetect_cost("$2a$08$hRx2IVeHNsTSYYtUWn61Ou")).to eq 8
34
+ expect(BCrypt::Engine.autodetect_cost("$2a$05$XKd1bMnLgUnc87qvbAaCUu")).to eq 5
35
+ expect(BCrypt::Engine.autodetect_cost("$2a$13$Lni.CZ6z5A7344POTFBBV.")).to eq 13
36
36
  end
37
37
 
38
38
  end
@@ -49,21 +49,21 @@ describe "Generating BCrypt hashes" do
49
49
  end
50
50
 
51
51
  specify "should produce a string" do
52
- BCrypt::Engine.hash_secret(@password, @salt).should be_an_instance_of(String)
52
+ expect(BCrypt::Engine.hash_secret(@password, @salt)).to be_an_instance_of(String)
53
53
  end
54
54
 
55
55
  specify "should raise an InvalidSalt error if the salt is invalid" do
56
- lambda { BCrypt::Engine.hash_secret(@password, 'nino') }.should raise_error(BCrypt::Errors::InvalidSalt)
56
+ expect { BCrypt::Engine.hash_secret(@password, 'nino') }.to raise_error(BCrypt::Errors::InvalidSalt)
57
57
  end
58
58
 
59
59
  specify "should raise an InvalidSecret error if the secret is invalid" do
60
- lambda { BCrypt::Engine.hash_secret(MyInvalidSecret.new, @salt) }.should raise_error(BCrypt::Errors::InvalidSecret)
61
- lambda { BCrypt::Engine.hash_secret(nil, @salt) }.should_not raise_error(BCrypt::Errors::InvalidSecret)
62
- lambda { BCrypt::Engine.hash_secret(false, @salt) }.should_not raise_error(BCrypt::Errors::InvalidSecret)
60
+ expect { BCrypt::Engine.hash_secret(MyInvalidSecret.new, @salt) }.to raise_error(BCrypt::Errors::InvalidSecret)
61
+ expect { BCrypt::Engine.hash_secret(nil, @salt) }.not_to raise_error
62
+ expect { BCrypt::Engine.hash_secret(false, @salt) }.not_to raise_error
63
63
  end
64
64
 
65
65
  specify "should call #to_s on the secret and use the return value as the actual secret data" do
66
- BCrypt::Engine.hash_secret(false, @salt).should == BCrypt::Engine.hash_secret("false", @salt)
66
+ expect(BCrypt::Engine.hash_secret(false, @salt)).to eq BCrypt::Engine.hash_secret("false", @salt)
67
67
  end
68
68
 
69
69
  specify "should be interoperable with other implementations" do
@@ -76,7 +76,7 @@ describe "Generating BCrypt hashes" do
76
76
  ["0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", "$2a$05$abcdefghijklmnopqrstuu", "$2a$05$abcdefghijklmnopqrstuu5s2v8.iXieOjg/.AySBTTZIIVFJeBui"]
77
77
  ]
78
78
  for secret, salt, test_vector in test_vectors
79
- BCrypt::Engine.hash_secret(secret, salt).should eql(test_vector)
79
+ expect(BCrypt::Engine.hash_secret(secret, salt)).to eql(test_vector)
80
80
  end
81
81
  end
82
82
  end
@@ -4,13 +4,13 @@ describe "Errors" do
4
4
 
5
5
  shared_examples "descends from StandardError" do
6
6
  it "can be rescued as a StandardError" do
7
- described_class.should < StandardError
7
+ expect(described_class).to be < StandardError
8
8
  end
9
9
  end
10
10
 
11
11
  shared_examples "descends from BCrypt::Error" do
12
12
  it "can be rescued as a BCrypt::Error" do
13
- described_class.should < BCrypt::Error
13
+ expect(described_class).to be < BCrypt::Error
14
14
  end
15
15
  end
16
16
 
@@ -8,23 +8,23 @@ describe "Creating a hashed password" do
8
8
  end
9
9
 
10
10
  specify "should return a BCrypt::Password" do
11
- @password.should be_an_instance_of(BCrypt::Password)
11
+ expect(@password).to be_an_instance_of(BCrypt::Password)
12
12
  end
13
13
 
14
14
  specify "should return a valid bcrypt password" do
15
- lambda { BCrypt::Password.new(@password) }.should_not raise_error
15
+ expect { BCrypt::Password.new(@password) }.not_to raise_error
16
16
  end
17
17
 
18
18
  specify "should behave normally if the secret is not a string" do
19
- lambda { BCrypt::Password.create(nil) }.should_not raise_error(BCrypt::Errors::InvalidSecret)
20
- lambda { BCrypt::Password.create({:woo => "yeah"}) }.should_not raise_error(BCrypt::Errors::InvalidSecret)
21
- lambda { BCrypt::Password.create(false) }.should_not raise_error(BCrypt::Errors::InvalidSecret)
19
+ expect { BCrypt::Password.create(nil) }.not_to raise_error
20
+ expect { BCrypt::Password.create({:woo => "yeah"}) }.not_to raise_error
21
+ expect { BCrypt::Password.create(false) }.not_to raise_error
22
22
  end
23
23
 
24
24
  specify "should tolerate empty string secrets" do
25
- lambda { BCrypt::Password.create( "\n".chop ) }.should_not raise_error
26
- lambda { BCrypt::Password.create( "" ) }.should_not raise_error
27
- lambda { BCrypt::Password.create( String.new ) }.should_not raise_error
25
+ expect { BCrypt::Password.create( "\n".chop ) }.not_to raise_error
26
+ expect { BCrypt::Password.create( "" ) }.not_to raise_error
27
+ expect { BCrypt::Password.create( String.new ) }.not_to raise_error
28
28
  end
29
29
  end
30
30
 
@@ -35,26 +35,26 @@ describe "Reading a hashed password" do
35
35
  end
36
36
 
37
37
  specify "the cost is too damn high" do
38
- lambda {
38
+ expect {
39
39
  BCrypt::Password.create("hello", :cost => 32)
40
- }.should raise_error(ArgumentError)
40
+ }.to raise_error(ArgumentError)
41
41
  end
42
42
 
43
43
  specify "the cost should be set to the default if nil" do
44
- BCrypt::Password.create("hello", :cost => nil).cost.should equal(BCrypt::Engine::DEFAULT_COST)
44
+ expect(BCrypt::Password.create("hello", :cost => nil).cost).to equal(BCrypt::Engine::DEFAULT_COST)
45
45
  end
46
46
 
47
47
  specify "the cost should be set to the default if empty hash" do
48
- BCrypt::Password.create("hello", {}).cost.should equal(BCrypt::Engine::DEFAULT_COST)
48
+ expect(BCrypt::Password.create("hello", {}).cost).to equal(BCrypt::Engine::DEFAULT_COST)
49
49
  end
50
50
 
51
51
  specify "the cost should be set to the passed value if provided" do
52
- BCrypt::Password.create("hello", :cost => 5).cost.should equal(5)
52
+ expect(BCrypt::Password.create("hello", :cost => 5).cost).to equal(5)
53
53
  end
54
54
 
55
55
  specify "the cost should be set to the global value if set" do
56
56
  BCrypt::Engine.cost = 5
57
- BCrypt::Password.create("hello").cost.should equal(5)
57
+ expect(BCrypt::Password.create("hello").cost).to equal(5)
58
58
  # unset the global value to not affect other tests
59
59
  BCrypt::Engine.cost = nil
60
60
  end
@@ -65,7 +65,7 @@ describe "Reading a hashed password" do
65
65
  old_default_cost = BCrypt::Engine::DEFAULT_COST
66
66
 
67
67
  BCrypt::Engine::DEFAULT_COST = 5
68
- BCrypt::Password.create("hello").cost.should equal(5)
68
+ expect(BCrypt::Password.create("hello").cost).to equal(5)
69
69
 
70
70
  # reset default to not affect other tests
71
71
  BCrypt::Engine::DEFAULT_COST = old_default_cost
@@ -74,17 +74,17 @@ describe "Reading a hashed password" do
74
74
 
75
75
  specify "should read the version, cost, salt, and hash" do
76
76
  password = BCrypt::Password.new(@hash)
77
- password.version.should eql("2a")
78
- password.cost.should equal(5)
79
- password.salt.should eql("$2a$05$CCCCCCCCCCCCCCCCCCCCC.")
80
- password.salt.class.should eq String
81
- password.checksum.should eq("E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW")
82
- password.checksum.class.should eq String
83
- password.to_s.should eql(@hash)
77
+ expect(password.version).to eql("2a")
78
+ expect(password.cost).to equal(5)
79
+ expect(password.salt).to eql("$2a$05$CCCCCCCCCCCCCCCCCCCCC.")
80
+ expect(password.salt.class).to eq String
81
+ expect(password.checksum).to eq("E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW")
82
+ expect(password.checksum.class).to eq String
83
+ expect(password.to_s).to eql(@hash)
84
84
  end
85
85
 
86
86
  specify "should raise an InvalidHashError when given an invalid hash" do
87
- lambda { BCrypt::Password.new('weedle') }.should raise_error(BCrypt::Errors::InvalidHash)
87
+ expect { BCrypt::Password.new('weedle') }.to raise_error(BCrypt::Errors::InvalidHash)
88
88
  end
89
89
  end
90
90
 
@@ -96,28 +96,28 @@ describe "Comparing a hashed password with a secret" do
96
96
  end
97
97
 
98
98
  specify "should compare successfully to the original secret" do
99
- (@password == @secret).should be(true)
99
+ expect((@password == @secret)).to be(true)
100
100
  end
101
101
 
102
102
  specify "should compare unsuccessfully to anything besides original secret" do
103
- (@password == "@secret").should be(false)
103
+ expect((@password == "@secret")).to be(false)
104
104
  end
105
105
  end
106
106
 
107
107
  describe "Validating a generated salt" do
108
108
  specify "should not accept an invalid salt" do
109
- BCrypt::Engine.valid_salt?("invalid").should eq(false)
109
+ expect(BCrypt::Engine.valid_salt?("invalid")).to eq(false)
110
110
  end
111
111
  specify "should accept a valid salt" do
112
- BCrypt::Engine.valid_salt?(BCrypt::Engine.generate_salt).should eq(true)
112
+ expect(BCrypt::Engine.valid_salt?(BCrypt::Engine.generate_salt)).to eq(true)
113
113
  end
114
114
  end
115
115
 
116
116
  describe "Validating a password hash" do
117
117
  specify "should not accept an invalid password" do
118
- BCrypt::Password.valid_hash?("i_am_so_not_valid").should be_false
118
+ expect(BCrypt::Password.valid_hash?("i_am_so_not_valid")).to be_falsey
119
119
  end
120
120
  specify "should accept a valid password" do
121
- BCrypt::Password.valid_hash?(BCrypt::Password.create "i_am_so_valid").should be_true
121
+ expect(BCrypt::Password.valid_hash?(BCrypt::Password.create "i_am_so_valid")).to be_truthy
122
122
  end
123
123
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bcrypt
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.7
4
+ version: 3.1.8
5
5
  platform: x64-mingw32
6
6
  authors:
7
7
  - Coda Hale
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2014-02-25 00:00:00 Z
12
+ date: 2014-10-23 00:00:00 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake-compiler
@@ -19,19 +19,18 @@ dependencies:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
21
  version: 0.9.2
22
- type: :development
23
22
  version_requirements: *id001
23
+ type: :development
24
24
  - !ruby/object:Gem::Dependency
25
25
  name: rspec
26
26
  prerelease: false
27
27
  requirement: &id002 !ruby/object:Gem::Requirement
28
28
  requirements:
29
- - &id004
30
- - ">="
29
+ - - ">="
31
30
  - !ruby/object:Gem::Version
32
- version: "0"
33
- type: :development
31
+ version: "3"
34
32
  version_requirements: *id002
33
+ type: :development
35
34
  - !ruby/object:Gem::Dependency
36
35
  name: rdoc
37
36
  prerelease: false
@@ -40,8 +39,8 @@ dependencies:
40
39
  - - ~>
41
40
  - !ruby/object:Gem::Version
42
41
  version: "3.12"
43
- type: :development
44
42
  version_requirements: *id003
43
+ type: :development
45
44
  description: " bcrypt() is a sophisticated and secure hash algorithm designed by The OpenBSD project\n for hashing passwords. The bcrypt Ruby gem provides a simple wrapper for safely handling\n passwords.\n"
46
45
  email: coda.hale@gmail.com
47
46
  executables: []
@@ -86,6 +85,7 @@ files:
86
85
  - spec/bcrypt/password_spec.rb
87
86
  - spec/spec_helper.rb
88
87
  - lib/2.0/bcrypt_ext.so
88
+ - lib/2.1/bcrypt_ext.so
89
89
  homepage: https://github.com/codahale/bcrypt-ruby
90
90
  licenses:
91
91
  - MIT
@@ -103,7 +103,10 @@ require_paths:
103
103
  - lib
104
104
  required_ruby_version: !ruby/object:Gem::Requirement
105
105
  requirements:
106
- - *id004
106
+ - &id004
107
+ - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: "0"
107
110
  required_rubygems_version: !ruby/object:Gem::Requirement
108
111
  requirements:
109
112
  - *id004