scrypt 1.2.1 → 2.0.0

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
  SHA1:
3
- metadata.gz: 0e8e6a6a6d27c3c9176ac068244a4521b64dd52b
4
- data.tar.gz: d8eb3e2bbd53abb27b8bfc869cbbc89257336070
3
+ metadata.gz: 47be4799daf5f3fd84b4d621688dea4c39ccde5b
4
+ data.tar.gz: 5bf369b0264bf440229eee7fa05e65227357da68
5
5
  SHA512:
6
- metadata.gz: 7d1a849cd7013f36c8fe2e37fa7dca5921103682c62ff7e0853536ce61d04fe78db8067ab29143f647af8c9e5299c87f75675a91708c51975ef30b63788394c5
7
- data.tar.gz: 2b5c05343e7ca5e18ea3ac826709c33eb6876957928274ebfa46d7a1e278aab7bdef373b5b37a2b87ec4fccc7715f02a6d011a61a023a6a544f072550e7c9dbd
6
+ metadata.gz: c17413705aeef9517208e2bf83545fa488aa6b8fade35728cbcdf1e4b3f91a513d756db9ae81b4041e69c30c6c21b22484dff1c2530167f0de4e382612986bde
7
+ data.tar.gz: 2ccfe62cebda01b2d23a91af9e65cc9b2f64b755c6e602b7612fa43a5448959db9a2ae5b6b2d4529e6e5e5c8a7132830e850c47d85d694d41a24f8d91d73ff93
data/README.md CHANGED
@@ -26,12 +26,12 @@ It works pretty similarly to ruby-bcrypt with a few minor differences, especiall
26
26
  require "scrypt"
27
27
 
28
28
  # hash a user's password
29
- @password = SCrypt::Password.create("my grand secret")
29
+ password = SCrypt::Password.create("my grand secret")
30
30
  # => "400$8$36$78f4ae6983f76119$37ec6ce55a2b928dc56ff9a7d0cdafbd7dbde49d9282c38a40b1434e88f24cf5"
31
31
 
32
32
  # compare to strings
33
- @password == "my grand secret" # => true
34
- @password == "a paltry guess" # => false
33
+ password == "my grand secret" # => true
34
+ password == "a paltry guess" # => false
35
35
  ```
36
36
 
37
37
  Password.create takes five options which will determine the key length and salt size, as well as the cost limits of the computation:
@@ -63,10 +63,10 @@ SCrypt::Engine.hash_secret "my grand secret", salt
63
63
 
64
64
  ```ruby
65
65
  # store it safely in the user model
66
- @user.update_attribute(:password, @password)
66
+ user.update_attribute(:password, @password)
67
67
 
68
68
  # read it back later
69
- @user.reload!
70
- @password = SCrypt::Password.new(@user.password)
71
- @password == "my grand secret" # => true
72
- ```
69
+ user.reload!
70
+ password = SCrypt::Password.new(user.password)
71
+ password == "my grand secret" # => true
72
+ ```
@@ -150,7 +150,7 @@ module SCrypt
150
150
 
151
151
  FFI::MemoryPointer.new(:char, key_len) do |buffer|
152
152
  retval = SCrypt::Ext.crypto_scrypt(
153
- secret, secret.length, salt, salt.length,
153
+ secret, secret.bytesize, salt, salt.bytesize,
154
154
  n, r, p,
155
155
  buffer, key_len
156
156
  )
@@ -188,7 +188,7 @@ module SCrypt
188
188
  #
189
189
  class Password < String
190
190
  # The hash portion of the stored password hash.
191
- attr_reader :hash
191
+ attr_reader :digest
192
192
  # The salt of the store password hash
193
193
  attr_reader :salt
194
194
  # The cost factor used to create the hash.
@@ -227,7 +227,7 @@ module SCrypt
227
227
  def initialize(raw_hash)
228
228
  if valid_hash?(raw_hash)
229
229
  self.replace(raw_hash)
230
- @cost, @salt, @hash = split_hash(self.to_s)
230
+ @cost, @salt, @digest = split_hash(self.to_s)
231
231
  else
232
232
  raise Errors::InvalidHash.new("invalid hash")
233
233
  end
@@ -235,7 +235,7 @@ module SCrypt
235
235
 
236
236
  # Compares a potential secret against the hash. Returns true if the secret is the original secret, false otherwise.
237
237
  def ==(secret)
238
- super(SCrypt::Engine.hash_secret(secret, @cost + @salt, self.hash.length / 2))
238
+ super(SCrypt::Engine.hash_secret(secret, @cost + @salt, self.digest.length / 2))
239
239
  end
240
240
  alias_method :is_password?, :==
241
241
 
@@ -1,3 +1,3 @@
1
1
  module SCrypt
2
- VERSION = "1.2.1"
2
+ VERSION = "2.0.0"
3
3
  end
@@ -100,17 +100,17 @@ describe "non-default key lengths" do
100
100
 
101
101
  it "should enforce a minimum keylength of 16 bytes" do
102
102
  @password = SCrypt::Password.create(@secret, :key_len => 15)
103
- @password.hash.length.should eq(16 * 2)
103
+ @password.digest.length.should eq(16 * 2)
104
104
  end
105
105
 
106
106
  it "should allow a keylength of 512 bytes" do
107
107
  @password = SCrypt::Password.create(@secret, :key_len => 512)
108
- @password.hash.length.should eq(512 * 2)
108
+ @password.digest.length.should eq(512 * 2)
109
109
  end
110
110
 
111
111
  it "should enforce a maximum keylength of 512 bytes" do
112
112
  @password = SCrypt::Password.create(@secret, :key_len => 513)
113
- @password.hash.length.should eq(512 * 2)
113
+ @password.digest.length.should eq(512 * 2)
114
114
  end
115
115
 
116
116
  it "should properly compare a non-standard hash" do
@@ -130,3 +130,10 @@ describe "Old-style hashes" do
130
130
  (SCrypt::Password.new(@hash) == @secret).should be(true)
131
131
  end
132
132
  end
133
+
134
+ describe "Respecting standard ruby behaviors" do
135
+ it 'should hash as a fixnum' do
136
+ password = SCrypt::Password.create('')
137
+ password.hash.should be_kind_of(Fixnum)
138
+ end
139
+ end
metadata CHANGED
@@ -1,83 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scrypt
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patrick Hogan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-09 00:00:00.000000000 Z
11
+ date: 2014-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi-compiler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.0.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.0.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rdoc
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: awesome_print
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  description: |2
@@ -91,16 +91,9 @@ extensions:
91
91
  - ext/scrypt/Rakefile
92
92
  extra_rdoc_files: []
93
93
  files:
94
- - Rakefile
95
- - scrypt.gemspec
96
- - README.md
97
94
  - COPYING
98
- - lib/scrypt/scrypt_ext.rb
99
- - lib/scrypt/version.rb
100
- - lib/scrypt.rb
101
- - spec/scrypt/engine_spec.rb
102
- - spec/scrypt/password_spec.rb
103
- - spec/spec_helper.rb
95
+ - README.md
96
+ - Rakefile
104
97
  - autotest/discover.rb
105
98
  - ext/scrypt/Rakefile
106
99
  - ext/scrypt/crypto_scrypt-sse.c
@@ -117,6 +110,13 @@ files:
117
110
  - ext/scrypt/sha256.c
118
111
  - ext/scrypt/sha256.h
119
112
  - ext/scrypt/sysendian.h
113
+ - lib/scrypt.rb
114
+ - lib/scrypt/scrypt_ext.rb
115
+ - lib/scrypt/version.rb
116
+ - scrypt.gemspec
117
+ - spec/scrypt/engine_spec.rb
118
+ - spec/scrypt/password_spec.rb
119
+ - spec/spec_helper.rb
120
120
  homepage: https://github.com/pbhogan/scrypt
121
121
  licenses: []
122
122
  metadata: {}
@@ -126,17 +126,17 @@ require_paths:
126
126
  - lib
127
127
  required_ruby_version: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - '>='
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  required_rubygems_version: !ruby/object:Gem::Requirement
133
133
  requirements:
134
- - - '>='
134
+ - - ">="
135
135
  - !ruby/object:Gem::Version
136
136
  version: '0'
137
137
  requirements: []
138
138
  rubyforge_project: scrypt
139
- rubygems_version: 2.1.11
139
+ rubygems_version: 2.2.2
140
140
  signing_key:
141
141
  specification_version: 4
142
142
  summary: scrypt password hashing algorithm.