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 +4 -4
- data/.travis.yml +7 -2
- data/CHANGELOG +77 -67
- data/Rakefile +2 -0
- data/bcrypt.gemspec +1 -1
- data/ext/mri/bcrypt_ext.c +2 -2
- data/ext/mri/crypt_blowfish.c +6 -10
- data/ext/mri/crypt_gensalt.c +1 -1
- data/ext/mri/crypt_gensalt.h +1 -1
- data/ext/mri/wrapper.c +4 -1
- data/ext/mri/x86.S +1 -1
- data/lib/bcrypt/engine.rb +3 -1
- data/lib/bcrypt/password.rb +2 -2
- data/spec/bcrypt/engine_spec.rb +10 -0
- data/spec/bcrypt/password_spec.rb +2 -2
- metadata +5 -7
- data/Gemfile.lock +0 -37
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 24a80205a939e463319b4dd986b58cd5a4d43e66e864818e0c7efa7767e25cdc
|
|
4
|
+
data.tar.gz: 964599e45299ac4964773f2ede8e6a20eab2511910fecac3512e284bfff09a1b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
2
|
-
|
|
1
|
+
3.1.16 Sep 3 2020
|
|
2
|
+
- Fix compilation on FreeBSD. [GH #234]
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
11
|
-
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
24
|
-
-
|
|
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
|
-
|
|
28
|
-
-
|
|
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
|
-
|
|
31
|
-
-
|
|
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
|
-
|
|
37
|
-
-
|
|
30
|
+
3.1.8 Oct 23 2014
|
|
31
|
+
- Add support for Ruby 2.1 in compiled Windows binaries [GH #102]
|
|
38
32
|
|
|
39
|
-
|
|
40
|
-
-
|
|
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.
|
|
43
|
-
-
|
|
44
|
-
|
|
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.
|
|
47
|
-
-
|
|
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.
|
|
55
|
-
-
|
|
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.
|
|
58
|
-
-
|
|
59
|
-
-
|
|
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
|
-
|
|
62
|
-
-
|
|
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
|
-
|
|
66
|
-
-
|
|
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
|
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
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
|
-
|
|
75
|
-
-
|
|
77
|
+
2.0.5 Mar 11 2009
|
|
78
|
+
- Fixed Ruby 1.8.5 compatibility. [Mike Pomraning]
|
|
76
79
|
|
|
77
|
-
|
|
78
|
-
-
|
|
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
|
-
|
|
81
|
-
|
|
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
|
-
|
|
84
|
-
|
|
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
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
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
data/bcrypt.gemspec
CHANGED
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
|
-
|
|
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
|
|
data/ext/mri/crypt_blowfish.c
CHANGED
|
@@ -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 {
|
data/ext/mri/crypt_gensalt.c
CHANGED
|
@@ -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,
|
data/ext/mri/crypt_gensalt.h
CHANGED
|
@@ -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,
|
|
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
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
|
-
|
|
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
|
data/lib/bcrypt/password.rb
CHANGED
|
@@ -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 >
|
|
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
|
-
|
|
50
|
+
/^\$[0-9a-z]{2}\$[0-9]{2}\$[A-Za-z0-9\.\/]{53}$/ === h
|
|
51
51
|
end
|
|
52
52
|
end
|
|
53
53
|
|
data/spec/bcrypt/engine_spec.rb
CHANGED
|
@@ -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
|
|
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
|
|
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.
|
|
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:
|
|
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
|
-
|
|
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
|