bcrypt 3.1.7 → 3.1.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
- ---
2
- SHA512:
3
- metadata.gz: e9a27bd4544153b3e73771ddc6ee262227c7c666df2001028f0860b335810b3f01862d30c86c24d893fda4690298016c60f76accd467e95c9c9048945802d7b6
4
- data.tar.gz: 1798cf7b86267393f52b54b31356aa6c54b9ad524d86b97354322b4ae9a032e472cd98fb4cd209ecf2372a7e55556b42173a0c2d16a7467d7cc4b2ef98343636
5
- SHA1:
6
- metadata.gz: d58ac651be05f4747ff8d8258d2fe0920e26f375
7
- data.tar.gz: 8f7b7aad5c4c3f572dd172fac39fcd0de31012c5
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YmUwZGI3ZWM4NDc1NWZlZmVmMjY3MDJkYjQ1NDQ3NmY0OTI5NDI2Yw==
5
+ data.tar.gz: !binary |-
6
+ ZDBlODEzOTk1N2I5MDhlMjcwZGQ0NzcxZGJjNDI4ODQxMWM4MWE3MQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ YzA0MmQyOTNkMjIzNjhjMzQxMTI3ODAxZGVmYzhmMzQ5YjY1N2Q0NmNhODJk
10
+ NTliYzI3NDk0YWRjZGMzYWY3ZmUxMzk5YzRkOGI4ZTdhZjQ5OWZmM2Y4MDlj
11
+ OGI1MDE2YmVhM2FhYThkM2M1MWI5MDBmYWVkOTJiMTE4ZjY1NWU=
12
+ data.tar.gz: !binary |-
13
+ MjY5Zjc5MjU2ZjkzYzhkYTk4ZWE1NTAyODZmMTljM2YxNzM3NGQxZmY1ZDcz
14
+ NWI4MjU2NzI4Y2MzYjI1YWZiY2EzMTcyYzk2NGMzYjNiNjA2M2JiMmJlMWYw
15
+ NDU3YjJlMTJmYTJlMDdjZDYzZTcwMmVhOWU2MDQ4MDZhYTg2NmI=
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,54 +1,65 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: bcrypt
3
- version: !ruby/object:Gem::Version
4
- version: 3.1.7
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.1.8
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - Coda Hale
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
-
12
- date: 2014-02-25 00:00:00 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
11
+ date: 2014-10-23 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
15
14
  name: rake-compiler
16
- prerelease: false
17
- requirement: &id001 !ruby/object:Gem::Requirement
18
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
19
17
  - - ~>
20
- - !ruby/object:Gem::Version
18
+ - !ruby/object:Gem::Version
21
19
  version: 0.9.2
22
20
  type: :development
23
- version_requirements: *id001
24
- - !ruby/object:Gem::Dependency
25
- name: rspec
26
21
  prerelease: false
27
- requirement: &id002 !ruby/object:Gem::Requirement
28
- requirements:
29
- - &id004
30
- - ">="
31
- - !ruby/object:Gem::Version
32
- version: "0"
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 0.9.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '3'
33
34
  type: :development
34
- version_requirements: *id002
35
- - !ruby/object:Gem::Dependency
36
- name: rdoc
37
35
  prerelease: false
38
- requirement: &id003 !ruby/object:Gem::Requirement
39
- requirements:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rdoc
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
40
45
  - - ~>
41
- - !ruby/object:Gem::Version
42
- version: "3.12"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.12'
43
48
  type: :development
44
- version_requirements: *id003
45
- 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"
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '3.12'
55
+ description: ! " bcrypt() is a sophisticated and secure hash algorithm designed
56
+ by The OpenBSD project\n for hashing passwords. The bcrypt Ruby gem provides
57
+ a simple wrapper for safely handling\n passwords.\n"
46
58
  email: coda.hale@gmail.com
47
59
  executables: []
48
-
49
- extensions:
60
+ extensions:
50
61
  - ext/mri/extconf.rb
51
- extra_rdoc_files:
62
+ extra_rdoc_files:
52
63
  - README.md
53
64
  - COPYING
54
65
  - CHANGELOG
@@ -56,7 +67,7 @@ extra_rdoc_files:
56
67
  - lib/bcrypt/error.rb
57
68
  - lib/bcrypt/password.rb
58
69
  - lib/bcrypt.rb
59
- files:
70
+ files:
60
71
  - .gitignore
61
72
  - .rspec
62
73
  - .travis.yml
@@ -86,32 +97,33 @@ files:
86
97
  - spec/bcrypt/password_spec.rb
87
98
  - spec/spec_helper.rb
88
99
  homepage: https://github.com/codahale/bcrypt-ruby
89
- licenses:
100
+ licenses:
90
101
  - MIT
91
102
  metadata: {}
92
-
93
103
  post_install_message:
94
- rdoc_options:
104
+ rdoc_options:
95
105
  - --title
96
106
  - bcrypt-ruby
97
107
  - --line-numbers
98
108
  - --inline-source
99
109
  - --main
100
110
  - README.md
101
- require_paths:
111
+ require_paths:
102
112
  - lib
103
- required_ruby_version: !ruby/object:Gem::Requirement
104
- requirements:
105
- - *id004
106
- required_rubygems_version: !ruby/object:Gem::Requirement
107
- requirements:
108
- - *id004
113
+ required_ruby_version: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ required_rubygems_version: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ! '>='
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
109
123
  requirements: []
110
-
111
124
  rubyforge_project:
112
- rubygems_version: 2.0.14
125
+ rubygems_version: 2.2.2
113
126
  signing_key:
114
127
  specification_version: 4
115
128
  summary: OpenBSD's bcrypt() password hashing algorithm.
116
129
  test_files: []
117
-