sequel_auth 0.0.6 → 0.0.7

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: 7520438387075590996072d0bf3f39a4590313d5cd4ac9ebbd7bfe75b7a4c1c6
4
- data.tar.gz: 9e9619c3be523a75011aa8469b4704f9572df4d6d566f8d7fb2463243e20cdd1
3
+ metadata.gz: e2175f04cd46399643c847326b0e40133804ea62264315f2634968b9c72aa990
4
+ data.tar.gz: cc44e957dae778c2e37b0f2d7be209e14d295598598f62951e264e50a6f8ebe8
5
5
  SHA512:
6
- metadata.gz: de9544a0e81aee9437200aa43f7a1dae108394a12e6a21a123fd4b95d450cbc8b878395318e96e608e53786cef005252547283ac386094d282219ec76b0ef781
7
- data.tar.gz: 27b30df7effd4556194675dcd6d5e847a1dab66a7eb1565f37b5ae052dae47076ffd3eab6b2356cb294c58b41e9de63a1a9e59965b0c5f006a57e653aaa24f08
6
+ metadata.gz: 526016215de744b925031bab53a12930737b541312e74353550e8305c8f629b94528d20e5e8178e2a7afd5075a999e3830308a705a1879bf0fcccc5ea117cfab
7
+ data.tar.gz: 6f2ae03ded8e22c43cb14c538ee2fade2f5c5e3ece2a6c65ebd0099486fe9d3d3cf6f68d2f80b42738f5e675c5fda551e8ec2ec8c4c15fd966eeaed7b3cf5555
data/lib/sequel_auth.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  require "sequel"
2
2
  require "securerandom"
3
- require_relative "providers/bcrypt"
4
- require_relative "providers/scrypt"
5
- require_relative "providers/crypt"
3
+ require_relative "sequel_auth/providers/bcrypt"
4
+ require_relative "sequel_auth/providers/scrypt"
5
+ require_relative "sequel_auth/providers/crypt"
6
6
 
7
7
  module Sequel
8
8
  module Plugins
File without changes
@@ -5,10 +5,10 @@ module SequelAuth
5
5
  class Crypt
6
6
  class << self
7
7
 
8
- attr_writer :salt_prefix,:salt_size
8
+ attr_writer :method,:salt_size,:salt
9
9
  # Salt prefix - prefix for random salt
10
- def salt_prefix
11
- @salt_prefix ||= defaults[:salt_prefix]
10
+ def method
11
+ @method ||= defaults[:method]
12
12
  end
13
13
 
14
14
  # Salt size - size as number
@@ -16,14 +16,23 @@ module SequelAuth
16
16
  @salt_size ||= defaults[:salt_size]
17
17
  end
18
18
 
19
+ # Salt size
19
20
  def salt
20
- salt_prefix + (salt_size-salt_prefix.length).times.map {
21
+ @salt ||= defaults[:salt]
22
+ end
23
+
24
+ def random_salt
25
+ schemes.fetch(method) + (salt_size-schemes.fetch(method).length).times.map {
21
26
  (('a'..'z').to_a + (1..9).to_a + ('A'..'Z').to_a).sample
22
27
  }.join
23
28
  end
24
29
 
25
30
  def encrypt(password)
26
- password.crypt(salt)
31
+ if salt
32
+ password.crypt(salt)
33
+ else
34
+ password.crypt(random_salt)
35
+ end
27
36
  end
28
37
 
29
38
  def matches?(hash, password)
@@ -32,10 +41,21 @@ module SequelAuth
32
41
 
33
42
  def defaults
34
43
  {
35
- salt_prefix: "$6$",
44
+ salt: nil,
45
+ method: :sha512,
36
46
  salt_size: 16,
37
47
  }.freeze
38
48
  end
49
+ private
50
+ def schemes
51
+ {
52
+ md5: '$1$',
53
+ nthash: '$3$$',
54
+ sha256: '$5$',
55
+ sha512: '$6$',
56
+ sha1: '$sha1$'
57
+ }.freeze
58
+ end
39
59
  end
40
60
  end
41
61
  end
File without changes
@@ -3,7 +3,7 @@
3
3
  module Sequel
4
4
  module Plugins
5
5
  module SequelAuth
6
- VERSION = '0.0.6'
6
+ VERSION = '0.0.7'
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel_auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fatih GENÇ
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-03 00:00:00.000000000 Z
11
+ date: 2021-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sequel
@@ -72,6 +72,20 @@ dependencies:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
74
  version: '3.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: simplecov
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '0.21'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.21'
75
89
  - !ruby/object:Gem::Dependency
76
90
  name: sqlite3
77
91
  requirement: !ruby/object:Gem::Requirement
@@ -92,10 +106,10 @@ executables: []
92
106
  extensions: []
93
107
  extra_rdoc_files: []
94
108
  files:
95
- - lib/providers/bcrypt.rb
96
- - lib/providers/crypt.rb
97
- - lib/providers/scrypt.rb
98
109
  - lib/sequel_auth.rb
110
+ - lib/sequel_auth/providers/bcrypt.rb
111
+ - lib/sequel_auth/providers/crypt.rb
112
+ - lib/sequel_auth/providers/scrypt.rb
99
113
  - lib/sequel_auth/version.rb
100
114
  homepage: https://gitlab.com/ikilifikir/sequel_auth
101
115
  licenses: