bcrypt 3.1.13 → 3.1.16

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