bcrypt 3.1.13 → 3.1.16

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
  SHA256:
3
- metadata.gz: 8d5e2ce3f7df5807725e03678a1d8d60d24d710aefa7a3c2636c4c71d7602911
4
- data.tar.gz: 98bcb12a01f59e508d9d523dd031bab988d453abaddde47847c34e7919b67c23
3
+ metadata.gz: 24a80205a939e463319b4dd986b58cd5a4d43e66e864818e0c7efa7767e25cdc
4
+ data.tar.gz: 964599e45299ac4964773f2ede8e6a20eab2511910fecac3512e284bfff09a1b
5
5
  SHA512:
6
- metadata.gz: 2f3bc43174cdb2f8298c81c7853c973e33f745aa1ea5ddb69121ebd953b086494005dce8a9c1861e818f38a1084c301df302ee8821ae975be2186ddbc7b07c80
7
- data.tar.gz: 9380402fbc0260e1b0590e846795324144c6d8b70c16c8a8ff3edbb93297387ee452bd1cbcd0b66126f48e99d11433ad958c1ddb4b801e586752684ad52d523f
6
+ metadata.gz: 87542a66be75234db706e7f2995d4bee03e0b19611bb9bfa19e21c923656d863dfa5fadee6829e779b726a4370351734f92315f29ef8facbe89b90c930202d19
7
+ data.tar.gz: 6d4cd84d8e2bda4067c3816a339503257662c6f0eafcaffc7ba4aa05dacb76d4cd3d39e6c6f51951caf7f5d2ea325a81dcce374982aa3fdf57624d534b3c2ae5
data/.travis.yml CHANGED
@@ -1,8 +1,6 @@
1
1
  language: ruby
2
2
  before_install:
3
3
  - "echo 'gem: --no-rdoc --no-ri' > ~/.gemrc"
4
- - gem update --system 2.7.8
5
- - gem install bundler -v 1.17.3
6
4
  rvm:
7
5
  - 2.0
8
6
  - 2.1
@@ -11,7 +9,14 @@ rvm:
11
9
  - 2.4
12
10
  - 2.5
13
11
  - 2.6
12
+ - 2.7
14
13
  - ruby-head
15
14
  - jruby-head
16
15
  - rbx-3
16
+ matrix:
17
+ allow_failures:
18
+ - rvm: ruby-head
19
+ - rvm: jruby-head
20
+ - rvm: rbx-3
21
+ fast_finish: true
17
22
  script: bundle exec rake
data/CHANGELOG CHANGED
@@ -1,94 +1,104 @@
1
- 1.0.0 Feb 27 2007
2
- - Initial release.
1
+ 3.1.16 Sep 3 2020
2
+ - Fix compilation on FreeBSD. [GH #234]
3
3
 
4
- 2.0.0 Mar 07 2007
5
- - Removed BCrypt::Password#exactly_equals -- use BCrypt::Password#eql? instead.
6
- - Added BCrypt::Password#is_password?.
7
- - Refactored out BCrypt::Internals into more useful BCrypt::Engine.
8
- - Added validation of secrets -- nil is not healthy.
4
+ 3.1.15 July 21 2020
5
+ - Remove GVL optimization. Apparently it breaks things [GH #230]
9
6
 
10
- 2.0.1 Mar 09 2007
11
- - Fixed load path issues
12
- - Fixed crashes when hashing weird values (e.g., false, etc.)
7
+ 3.1.14 July 21 2020
8
+ - Start calibration from the minimum cost supported by the algorithm [GH #206 by @sergey-alekseev]
13
9
 
14
- 2.0.2 Jun 06 2007
15
- - Fixed example code in the README [Winson]
16
- - Fixed Solaris compatibility [Jeremy LaTrasse, Twitter crew]
10
+ 3.1.13 May 31 2019
11
+ - No longer include compiled binaries for Windows. See GH #173.
12
+ - Update C and Java implementations to latest versions [GH #182 by @fonica]
13
+ - Bump default cost to 12 [GH #181 by @bdewater]
14
+ - Remove explicit support for Rubies 1.8 and 1.9
15
+ - Define SKIP_GNU token when building extension (Fixes FreeBSD >= 12) [GH #189 by @adam12]
17
16
 
18
- 2.0.3 May 07 2008
19
- - Made exception classes descend from StandardError, not Exception [Dan42]
20
- - Changed BCrypt::Engine.hash to BCrypt::Engine.hash_secret to avoid Merb
21
- sorting issues. [Lee Pope]
17
+ 3.1.12 May 16 2018
18
+ - Add support for Ruby 2.3, 2.4, and 2.5 in compiled Windows binaries
19
+ - Fix compatibility with libxcrypt [GH #164 by @besser82]
22
20
 
23
- 2.0.4 Mar 09 2009
24
- - Added Ruby 1.9 compatibility. [Genki Takiuchi]
25
- - Fixed segfaults on some different types of empty strings. [Mike Pomraning]
21
+ 3.1.11 Mar 06 2016
22
+ - Add support for Ruby 2.2 in compiled Windows binaries
26
23
 
27
- 2.0.5 Mar 11 2009
28
- - Fixed Ruby 1.8.5 compatibility. [Mike Pomraning]
24
+ 3.1.10 Jan 28 2015
25
+ - Fix issue with dumping a BCrypt::Password instance to YAML in Ruby 2.2 [GH #107 by @mattwildig]
29
26
 
30
- 2.1.0 Aug 12 2009
31
- - Improved code coverage, unit tests, and build chain. [Hongli Lai]
32
- - Ruby 1.9 compatibility fixes. [Hongli Lai]
33
- - JRuby support, using Damien Miller's jBCrypt. [Hongli Lai]
34
- - Ruby 1.9 GIL releasing for high-cost hashes. [Hongli Lai]
27
+ 3.1.9 Oct 23 2014
28
+ - Rebuild corrupt binaries
35
29
 
36
- 2.1.1 Aug 14 2009
37
- - JVM 1.4/1.5 compatibility [Hongli Lai]
30
+ 3.1.8 Oct 23 2014
31
+ - Add support for Ruby 2.1 in compiled Windows binaries [GH #102]
38
32
 
39
- 2.1.2 Sep 16 2009
40
- - Fixed support for Solaris, OpenSolaris.
33
+ 3.1.7 Feb 24 2014
34
+ - Rebuild corrupt Java binary version of gem [GH #90]
35
+ - The 2.1 support for Windows binaries alleged in 3.1.3 was a lie -- documentation removed
41
36
 
42
- 3.0.0 Aug 24 2011
43
- - Bcrypt C implementation replaced with a public domain implementation.
44
- - License changed to MIT
37
+ 3.1.6 Feb 21 2014
38
+ - Dummy version of "bcrypt-ruby" needed a couple version bumps to fix some
39
+ bugs. It felt wrong to have that at a higher version than the real gem, so
40
+ the real gem is getting bumped to 3.1.6.
45
41
 
46
- 3.0.1 Sep 12 2011
47
- - create raises an exception if the cost is higher than 31. GH #27
42
+ 3.1.3 Feb 21 2014
43
+ - Add support for Ruby 2.1 in compiled Windows binaries
44
+ - Rename gem from "bcrypt-ruby" to just "bcrypt". [GH #86 by @sferik]
45
+
46
+ 3.1.2 Aug 26 2013
47
+ - Add support for Ruby 1.8 and 2.0 (in addition to 1.9) in compiled Windows binaries
48
+ - Add support for 64-bit Windows
49
+
50
+ 3.1.1 Jul 10 2013
51
+ - Remove support for Ruby 1.8 in compiled win32 binaries
48
52
 
49
53
  3.1.0 May 07 2013
50
54
  - Add BCrypt::Password.valid_hash?(str) to check if a string is a valid bcrypt password hash
51
55
  - BCrypt::Password cost should be set to DEFAULT_COST if nil
52
56
  - Add BCrypt::Engine.cost attribute for getting/setting a default cost externally
53
57
 
54
- 3.1.1 Jul 10 2013
55
- - Remove support for Ruby 1.8 in compiled win32 binaries
58
+ 3.0.1 Sep 12 2011
59
+ - create raises an exception if the cost is higher than 31. GH #27
56
60
 
57
- 3.1.2 Aug 26 2013
58
- - Add support for Ruby 1.8 and 2.0 (in addition to 1.9) in compiled Windows binaries
59
- - Add support for 64-bit Windows
61
+ 3.0.0 Aug 24 2011
62
+ - Bcrypt C implementation replaced with a public domain implementation.
63
+ - License changed to MIT
60
64
 
61
- 3.1.3 Feb 21 2014
62
- - Add support for Ruby 2.1 in compiled Windows binaries
63
- - Rename gem from "bcrypt-ruby" to just "bcrypt". [GH #86 by @sferik]
65
+ 2.1.2 Sep 16 2009
66
+ - Fixed support for Solaris, OpenSolaris.
64
67
 
65
- 3.1.6 Feb 21 2014
66
- - Dummy version of "bcrypt-ruby" needed a couple version bumps to fix some
67
- bugs. It felt wrong to have that at a higher version than the real gem, so
68
- the real gem is getting bumped to 3.1.6.
68
+ 2.1.1 Aug 14 2009
69
+ - JVM 1.4/1.5 compatibility [Hongli Lai]
69
70
 
70
- 3.1.7 Feb 24 2014
71
- - Rebuild corrupt Java binary version of gem [GH #90]
72
- - The 2.1 support for Windows binaries alleged in 3.1.3 was a lie -- documentation removed
71
+ 2.1.0 Aug 12 2009
72
+ - Improved code coverage, unit tests, and build chain. [Hongli Lai]
73
+ - Ruby 1.9 compatibility fixes. [Hongli Lai]
74
+ - JRuby support, using Damien Miller's jBCrypt. [Hongli Lai]
75
+ - Ruby 1.9 GIL releasing for high-cost hashes. [Hongli Lai]
73
76
 
74
- 3.1.8 Oct 23 2014
75
- - Add support for Ruby 2.1 in compiled Windows binaries [GH #102]
77
+ 2.0.5 Mar 11 2009
78
+ - Fixed Ruby 1.8.5 compatibility. [Mike Pomraning]
76
79
 
77
- 3.1.9 Oct 23 2014
78
- - Rebuild corrupt binaries
80
+ 2.0.4 Mar 09 2009
81
+ - Added Ruby 1.9 compatibility. [Genki Takiuchi]
82
+ - Fixed segfaults on some different types of empty strings. [Mike Pomraning]
79
83
 
80
- 3.1.10 Jan 28 2015
81
- - Fix issue with dumping a BCrypt::Password instance to YAML in Ruby 2.2 [GH #107 by @mattwildig]
84
+ 2.0.3 May 07 2008
85
+ - Made exception classes descend from StandardError, not Exception [Dan42]
86
+ - Changed BCrypt::Engine.hash to BCrypt::Engine.hash_secret to avoid Merb
87
+ sorting issues. [Lee Pope]
82
88
 
83
- 3.1.11 Mar 06 2016
84
- - Add support for Ruby 2.2 in compiled Windows binaries
89
+ 2.0.2 Jun 06 2007
90
+ - Fixed example code in the README [Winson]
91
+ - Fixed Solaris compatibility [Jeremy LaTrasse, Twitter crew]
85
92
 
86
- 3.1.12 May 16 2018
87
- - Add support for Ruby 2.3, 2.4, and 2.5 in compiled Windows binaries
88
- - Fix compatibility with libxcrypt [GH #164 by @besser82]
93
+ 2.0.1 Mar 09 2007
94
+ - Fixed load path issues
95
+ - Fixed crashes when hashing weird values (e.g., false, etc.)
89
96
 
90
- [DRAFT] 4.0.0 MMM DD YYYY
91
- - No longer include compiled binaries for Windows. See GH #173.
92
- - Update C and Java implementations to latest versions [GH #182 by @fonica]
93
- - Bump default cost to 12 [GH #181 by @bdewater]
94
- - Remove explicit support for Rubies 1.8 and 1.9
97
+ 2.0.0 Mar 07 2007
98
+ - Removed BCrypt::Password#exactly_equals -- use BCrypt::Password#eql? instead.
99
+ - Added BCrypt::Password#is_password?.
100
+ - Refactored out BCrypt::Internals into more useful BCrypt::Engine.
101
+ - Added validation of secrets -- nil is not healthy.
102
+
103
+ 1.0.0 Feb 27 2007
104
+ - Initial release.
data/Rakefile CHANGED
@@ -50,6 +50,8 @@ end
50
50
  if RUBY_PLATFORM =~ /java/
51
51
  Rake::JavaExtensionTask.new('bcrypt_ext', GEMSPEC) do |ext|
52
52
  ext.ext_dir = 'ext/jruby'
53
+ ext.source_version = "1.7"
54
+ ext.target_version = "1.7"
53
55
  end
54
56
  else
55
57
  Rake::ExtensionTask.new("bcrypt_ext", GEMSPEC) do |ext|
data/bcrypt.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'bcrypt'
3
- s.version = '3.1.13'
3
+ s.version = '3.1.16'
4
4
 
5
5
  s.summary = "OpenBSD's bcrypt() password hashing algorithm."
6
6
  s.description = <<-EOF
data/ext/mri/bcrypt_ext.c CHANGED
@@ -19,7 +19,7 @@ static VALUE bc_salt(VALUE self, VALUE prefix, VALUE count, VALUE input) {
19
19
  if(!salt) return Qnil;
20
20
 
21
21
  str_salt = rb_str_new2(salt);
22
- xfree(salt);
22
+ free(salt);
23
23
 
24
24
  return str_salt;
25
25
  }
@@ -43,7 +43,7 @@ static VALUE bc_crypt(VALUE self, VALUE key, VALUE setting) {
43
43
  &data,
44
44
  &size);
45
45
 
46
- if(!value) return Qnil;
46
+ if(!value || !data) return Qnil;
47
47
 
48
48
  out = rb_str_new2(value);
49
49
 
@@ -361,7 +361,7 @@ static BF_ctx BF_init_state = {
361
361
  }
362
362
  };
363
363
 
364
- static unsigned char BF_itoa64[64 + 1] =
364
+ static const unsigned char BF_itoa64[64 + 1] =
365
365
  "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
366
366
 
367
367
  static unsigned char BF_atoi64[0x60] = {
@@ -387,9 +387,8 @@ static int BF_decode(BF_word *dst, const char *src, int size)
387
387
  unsigned char *dptr = (unsigned char *)dst;
388
388
  unsigned char *end = dptr + size;
389
389
  const unsigned char *sptr = (const unsigned char *)src;
390
- unsigned int tmp, c1, c2, c3, c4;
391
-
392
390
  do {
391
+ unsigned int tmp, c1, c2, c3, c4;
393
392
  BF_safe_atoi64(c1, *sptr++);
394
393
  BF_safe_atoi64(c2, *sptr++);
395
394
  *dptr++ = (c1 << 2) | ((c2 & 0x30) >> 4);
@@ -402,7 +401,6 @@ static int BF_decode(BF_word *dst, const char *src, int size)
402
401
  BF_safe_atoi64(c4, *sptr++);
403
402
  *dptr++ = ((c3 & 0x03) << 6) | c4;
404
403
  } while (dptr < end);
405
-
406
404
  return 0;
407
405
  }
408
406
 
@@ -411,9 +409,8 @@ static void BF_encode(char *dst, const BF_word *src, int size)
411
409
  const unsigned char *sptr = (const unsigned char *)src;
412
410
  const unsigned char *end = sptr + size;
413
411
  unsigned char *dptr = (unsigned char *)dst;
414
- unsigned int c1, c2;
415
-
416
412
  do {
413
+ unsigned int c1, c2;
417
414
  c1 = *sptr++;
418
415
  *dptr++ = BF_itoa64[c1 >> 2];
419
416
  c1 = (c1 & 0x03) << 4;
@@ -442,10 +439,9 @@ static void BF_swap(BF_word *x, int count)
442
439
  {
443
440
  static int endianness_check = 1;
444
441
  char *is_little_endian = (char *)&endianness_check;
445
- BF_word tmp;
446
-
447
442
  if (*is_little_endian)
448
443
  do {
444
+ BF_word tmp;
449
445
  tmp = *x;
450
446
  tmp = (tmp << 16) | (tmp >> 16);
451
447
  *x++ = ((tmp & 0x00FF00FF) << 8) | ((tmp >> 8) & 0x00FF00FF);
@@ -517,7 +513,7 @@ static void BF_swap(BF_word *x, int count)
517
513
  R = L; \
518
514
  L = tmp4 ^ data.ctx.P[BF_N + 1];
519
515
 
520
- #if BF_ASM
516
+ #if BF_ASM == 1
521
517
  #define BF_body() \
522
518
  _BF_body_r(&data.ctx);
523
519
  #else
@@ -650,7 +646,7 @@ static char *BF_crypt(const char *key, const char *setting,
650
646
  char *output, int size,
651
647
  BF_word min)
652
648
  {
653
- #if BF_ASM
649
+ #if BF_ASM == 1
654
650
  extern void _BF_body_r(BF_ctx *ctx);
655
651
  #endif
656
652
  struct {
@@ -28,7 +28,7 @@
28
28
  /* Just to make sure the prototypes match the actual definitions */
29
29
  #include "crypt_gensalt.h"
30
30
 
31
- unsigned char _crypt_itoa64[64 + 1] =
31
+ const unsigned char _crypt_itoa64[64 + 1] =
32
32
  "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
33
33
 
34
34
  char *_crypt_gensalt_traditional_rn(const char *prefix, unsigned long count,
@@ -17,7 +17,7 @@
17
17
  #ifndef _CRYPT_GENSALT_H
18
18
  #define _CRYPT_GENSALT_H
19
19
 
20
- extern unsigned char _crypt_itoa64[];
20
+ extern const unsigned char _crypt_itoa64[];
21
21
  extern char *_crypt_gensalt_traditional_rn(const char *prefix,
22
22
  unsigned long count,
23
23
  const char *input, int size, char *output, int output_size);
data/ext/mri/wrapper.c CHANGED
@@ -17,6 +17,9 @@
17
17
  #include <stdlib.h>
18
18
  #include <string.h>
19
19
 
20
+ /* Redefine strdup to ruby_strdup in case string.h doesn't export it. */
21
+ #include <ruby/util.h>
22
+
20
23
  #include <errno.h>
21
24
  #ifndef __set_errno
22
25
  #define __set_errno(val) errno = (val)
@@ -176,7 +179,7 @@ char *crypt_ra(const char *key, const char *setting,
176
179
  return _crypt_blowfish_rn(key, setting, (char *)*data, *size);
177
180
  }
178
181
 
179
- char *crypt_r(const char *key, const char *setting, void *data)
182
+ char *crypt_r(const char *key, const char *setting, struct crypt_data *data)
180
183
  {
181
184
  return _crypt_retval_magic(
182
185
  crypt_rn(key, setting, data, CRYPT_OUTPUT_SIZE),
data/ext/mri/x86.S CHANGED
@@ -199,5 +199,5 @@ BF_die:
199
199
  #endif
200
200
 
201
201
  #if defined(__ELF__) && defined(__linux__)
202
- .section .note.GNU-stack,"",@progbits
202
+ .section .note.GNU-stack,"",%progbits
203
203
  #endif
data/lib/bcrypt/engine.rb CHANGED
@@ -5,6 +5,8 @@ module BCrypt
5
5
  DEFAULT_COST = 12
6
6
  # The minimum cost supported by the algorithm.
7
7
  MIN_COST = 4
8
+ # The maximum cost supported by the algorithm.
9
+ MAX_COST = 31
8
10
  # Maximum possible size of bcrypt() salts.
9
11
  MAX_SALT_LENGTH = 16
10
12
 
@@ -99,7 +101,7 @@ module BCrypt
99
101
  # # should take less than 1000ms
100
102
  # BCrypt::Password.create("woo", :cost => 12)
101
103
  def self.calibrate(upper_time_limit_in_ms)
102
- 40.times do |i|
104
+ (BCrypt::Engine::MIN_COST..BCrypt::Engine::MAX_COST-1).each do |i|
103
105
  start_time = Time.now
104
106
  Password.create("testing testing", :cost => i+1)
105
107
  end_time = Time.now - start_time
@@ -42,12 +42,12 @@ module BCrypt
42
42
  # @password = BCrypt::Password.create("my secret", :cost => 13)
43
43
  def create(secret, options = {})
44
44
  cost = options[:cost] || BCrypt::Engine.cost
45
- raise ArgumentError if cost > 31
45
+ raise ArgumentError if cost > BCrypt::Engine::MAX_COST
46
46
  Password.new(BCrypt::Engine.hash_secret(secret, BCrypt::Engine.generate_salt(cost)))
47
47
  end
48
48
 
49
49
  def valid_hash?(h)
50
- h =~ /^\$[0-9a-z]{2}\$[0-9]{2}\$[A-Za-z0-9\.\/]{53}$/
50
+ /^\$[0-9a-z]{2}\$[0-9]{2}\$[A-Za-z0-9\.\/]{53}$/ === h
51
51
  end
52
52
  end
53
53
 
@@ -1,5 +1,15 @@
1
1
  require File.expand_path(File.join(File.dirname(__FILE__), "..", "spec_helper"))
2
2
 
3
+ describe 'BCrypt::Engine' do
4
+ describe '.calibrate(upper_time_limit_in_ms)' do
5
+ context 'a tiny upper time limit provided' do
6
+ it 'returns a minimum cost supported by the algorithm' do
7
+ expect(BCrypt::Engine.calibrate(0.001)).to eq(4)
8
+ end
9
+ end
10
+ end
11
+ end
12
+
3
13
  describe "The BCrypt engine" do
4
14
  specify "should calculate the optimal cost factor to fit in a specific time" do
5
15
  first = BCrypt::Engine.calibrate(100)
@@ -116,9 +116,9 @@ end
116
116
 
117
117
  describe "Validating a password hash" do
118
118
  specify "should not accept an invalid password" do
119
- expect(BCrypt::Password.valid_hash?("i_am_so_not_valid")).to be_falsey
119
+ expect(BCrypt::Password.valid_hash?("i_am_so_not_valid")).to be(false)
120
120
  end
121
121
  specify "should accept a valid password" do
122
- expect(BCrypt::Password.valid_hash?(BCrypt::Password.create "i_am_so_valid")).to be_truthy
122
+ expect(BCrypt::Password.valid_hash?(BCrypt::Password.create "i_am_so_valid")).to be(true)
123
123
  end
124
124
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bcrypt
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.13
4
+ version: 3.1.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Coda Hale
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-31 00:00:00.000000000 Z
11
+ date: 2020-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -17,8 +17,8 @@ dependencies:
17
17
  - !ruby/object:Gem::Version
18
18
  version: 0.9.2
19
19
  name: rake-compiler
20
- prerelease: false
21
20
  type: :development
21
+ prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
@@ -31,8 +31,8 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: '3'
33
33
  name: rspec
34
- prerelease: false
35
34
  type: :development
35
+ prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
@@ -61,7 +61,6 @@ files:
61
61
  - CHANGELOG
62
62
  - COPYING
63
63
  - Gemfile
64
- - Gemfile.lock
65
64
  - README.md
66
65
  - Rakefile
67
66
  - appveyor.yml
@@ -112,8 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
111
  - !ruby/object:Gem::Version
113
112
  version: '0'
114
113
  requirements: []
115
- rubyforge_project:
116
- rubygems_version: 2.7.6
114
+ rubygems_version: 3.0.6
117
115
  signing_key:
118
116
  specification_version: 4
119
117
  summary: OpenBSD's bcrypt() password hashing algorithm.
data/Gemfile.lock DELETED
@@ -1,37 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- bcrypt (3.1.13)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- diff-lcs (1.3)
10
- rake (12.3.2)
11
- rake-compiler (0.9.9)
12
- rake
13
- rspec (3.8.0)
14
- rspec-core (~> 3.8.0)
15
- rspec-expectations (~> 3.8.0)
16
- rspec-mocks (~> 3.8.0)
17
- rspec-core (3.8.0)
18
- rspec-support (~> 3.8.0)
19
- rspec-expectations (3.8.3)
20
- diff-lcs (>= 1.2.0, < 2.0)
21
- rspec-support (~> 3.8.0)
22
- rspec-mocks (3.8.0)
23
- diff-lcs (>= 1.2.0, < 2.0)
24
- rspec-support (~> 3.8.0)
25
- rspec-support (3.8.0)
26
-
27
- PLATFORMS
28
- java
29
- ruby
30
-
31
- DEPENDENCIES
32
- bcrypt!
33
- rake-compiler (~> 0.9.2)
34
- rspec (>= 3)
35
-
36
- BUNDLED WITH
37
- 1.16.1