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

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
  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