sequel_auth 0.0.6 → 0.0.7

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