dynarex-password 0.1.12 → 0.3.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
- SHA1:
3
- metadata.gz: 916d7188e41c8c181605ff891533a893c8703c06
4
- data.tar.gz: 6042799b6535d35eef1d3afc6b8bfe8c5ccdf75a
2
+ SHA256:
3
+ metadata.gz: 804d78b3cff553e0897804d6fe8af4d1b47ef7c9f0ef09381d0c0c3e9273ee6c
4
+ data.tar.gz: 6844745fdd6d13b2bc2692369c13bd34cc3f0b70aee0c15371b4397a5fd4ee37
5
5
  SHA512:
6
- metadata.gz: ddd9360018a360dd32d3c0fe43405d8a310423ca14953ca06d27c2f72d61506f6dec5ee4ca6898bc61fa9301b264ab2934b3c106880ad2febcc6dbdd32c60275
7
- data.tar.gz: b7c56f32b1888f60f8329ae7c4e1f56a200e0503dad76fbbe5b7f5bbca2346977635cd275080494b7e326ba33676a2a1029d1afb25d4c0b2ac194d445c37daef
6
+ metadata.gz: 2ad5ecbeeb56fc8982a3634c07e7acf41c8fc4880a91b5f275b130d8061818a8b3e538ab9bb63877e0c4cd8beb062ddbda9fb83b99f09e3e098c727ed1a94c69
7
+ data.tar.gz: 2731177f5b4a6903d89adae87ececee8194834e7eef323022111e297c6f8ddca34296ad1f2719cfe04801828b59a65b7330a54e6968062e178a72ccb6a278dab
checksums.yaml.gz.sig CHANGED
Binary file
@@ -4,30 +4,46 @@
4
4
 
5
5
  require 'dynarex'
6
6
 
7
+ class DynarexPasswordError < Exception
8
+ end
9
+
7
10
  class DynarexPassword
11
+ using ColouredText
8
12
 
9
13
  attr_reader :dx
10
14
 
11
- def initialize()
15
+ def initialize(debug: false)
16
+
17
+ @debug = debug
18
+ puts 'inside DynarexPassword::initialize'.info if debug
12
19
  super()
13
20
  end
14
21
 
15
22
  # if a fized size of 2 is passed in then each character will generate
16
23
  # exactly 2 random alphanumeric characters
17
24
  #
18
- def generate_lookup(fixed_size: nil)
19
-
20
- @fixed_size = fixed_size
25
+ def generate_lookup(fixed_size: 2)
26
+
21
27
  @temp_list = []
22
- @dx = Dynarex.new('codes/code(index,value)')
28
+ @dx = Dynarex.new('codes[fixedsize]/code(index,value)')
29
+ @dx.fixedsize = @fixed_size = fixed_size
23
30
 
24
- chars = (0..9).to_a + Array.new(7) + ('A'..'Z').to_a \
25
- + Array.new(6) + ('a'..'z').to_a
31
+ #chars = (0..9).to_a + Array.new(7) + ('A'..'Z').to_a \
32
+ # + Array.new(6) + ('a'..'z').to_a
26
33
  @chars = (0..9).to_a + ('A'..'Z').to_a + ('a'..'z').to_a
27
34
 
28
- chars.each do |char|
29
- @dx.create index: char, value: get_random_chars(2) if char
35
+ @chars.each do |char|
36
+
37
+ s = get_random_chars(2)
38
+ @temp_list << s
39
+ @dx.create({index: char, value: s}) if char
40
+
30
41
  end
42
+
43
+ # ensure the values are unique
44
+ values = @dx.all.map(&:value)
45
+ raise DynarexPasswordError, 'Values are not uniqe!' if values != values.uniq
46
+
31
47
  end
32
48
 
33
49
  def lookup(weak_password, file=nil)
@@ -37,7 +53,7 @@ class DynarexPassword
37
53
  elsif @dx
38
54
  @dx
39
55
  else
40
- raise 'dynarex-password: please supply a lookup file'
56
+ raise 'dynarex-password: please supply a lookup file'.error
41
57
  end
42
58
 
43
59
  chars = weak_password.split(//).map do |char|
@@ -59,14 +75,17 @@ class DynarexPassword
59
75
  elsif @dx
60
76
  @dx
61
77
  else
62
- raise 'dynarex-password: please supply a lookup file'
78
+ raise 'dynarex-password: please supply a lookup file'.error
63
79
  end
64
80
 
81
+ fixed_size = (dx.summary[:fixedsize] || 2).to_i
82
+ puts 'fixed_size: ' +fixed_size.inspect if @debug
83
+
65
84
  h = dx.to_a.inject({}){|r, x| r.merge({x[:value] => x[:index]})}
66
85
 
67
86
  password.split('-').map do |linex|
68
87
  linex.split('_').map do |x|
69
- x.split(//).each_slice(2).map {|chars| h[chars.join]}.join
88
+ x.split(//).each_slice(fixed_size).map {|chars| h[chars.join]}.join
70
89
  end.join '_'
71
90
  end.join '-'
72
91
 
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynarex-password
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.12
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -10,27 +10,33 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDXjCCAkagAwIBAgIBATANBgkqhkiG9w0BAQUFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTgwODA1MjAyNTU5WhcN
15
- MTkwODA1MjAyNTU5WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDFfR6v
17
- u/XXUjsQFFwqmaS1K9AD5UG1/Wl60LV2i1LZIrTjJs7czGJVDFS9umOvo14XBv79
18
- R7hn9lwgOJdv7ygtEsB/nobXawsQH0fyI1dkxF5s7ftKwNJIN2KHu84VikTLTqEI
19
- PYJ0UwYW+VDfI8QddCWQdlb2SN9zlVQfyw9VxHrEAepU9cxovhawUvhfsmTtt5z2
20
- 7dC9+H5zx5HVLNw0JcJ9MtYODcEl3dum5FgjM9mtic+gMUGDREngJUdlnZ/u6jac
21
- DDGtVzCxSdVGyc+XnfArMo6cjgBcsga7K3/5H8Oh4Li6RzLd4q4ZDw5P+tSFlg+V
22
- eLDIIOiZ9VFYkiV5AgMBAAGjgYowgYcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
23
- HQYDVR0OBBYEFMhdefrOkM9CJgd/kwuS/4So0YuRMCYGA1UdEQQfMB2BG2dlbW1h
24
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTAmBgNVHRIEHzAdgRtnZW1tYXN0ZXJAamFt
25
- ZXNyb2JlcnRzb24uZXUwDQYJKoZIhvcNAQEFBQADggEBAItMIDT6JcW6GnnfJHZA
26
- TLucgX213ag9HRBCW+s4ymQU7vtLmRnAK5P9W+7LqrzH1vhBthAKmQAdXLB+zn6T
27
- 42yn39UkSGpnDS/B0epKtdGNyPHyCt7AJiJxMv++x0lfZgc6cPHtiLrdPnV55ppL
28
- dEHPm8hN2Gr9LcaogenIMWxecLVAQVWDuS20O4CHTwe8krIyiQPAb+sVz8gnl2ug
29
- XYOg63bcOFLVeGjFBQ4d2n7td5Wy5q+SMxnHSHNhSWsDMt7DLX13PuV9JVxZAyc6
30
- J67FG8CzK+r5p9XadRrTpyccYX1dMW14053X/m4A1E7NLzaDxS3owIrxi70rO3Dw
31
- h6c=
13
+ MIIEljCCAv6gAwIBAgIBATANBgkqhkiG9w0BAQsFADBIMRIwEAYDVQQDDAlnZW1t
14
+ YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
+ 8ixkARkWAmV1MB4XDTIzMDIxNDE5MzkzNVoXDTI0MDIxNDE5MzkzNVowSDESMBAG
16
+ A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
+ EjAQBgoJkiaJk/IsZAEZFgJldTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoC
18
+ ggGBALfG2JGvAJ0Vur4+98t2ACyvCG8jI7IciI/mGh65Go1+6vys2qk0Zc5IfXs4
19
+ RcMjhVehRFAEy874fRluXR4CkqI7xlcFrTjbRWy63fsSki+8gVsOlqcVa75migNt
20
+ kwX+YoAlNBvoTxaxm1jSgebUyEHZM3ywYU2uJgP0wlG81Sf0S5WiT2TR6+Il6aUN
21
+ lQZvfMkobnMR9mkVZd0IP4PCeQdFlRclZDjZqsry1IJkiaas7UtQIfnHVjStcxtO
22
+ 3HrHveYg/vYcRbLoAPueandejjEQfc89fSnmawor8Yb5quBLI+O8curRmdnrs/cB
23
+ CR7ObPAeAx9mym60tMnJNZq8se+zM3nORBoovwiemtmYYOcO0YB/WK+0StDDZms1
24
+ GhAhQDDE3EFm6gILzjyRqNtpiR/c6qv8RGKD7yVOYx5vHD2oA45g16EJCYMkcqqU
25
+ M44rVB1tC0hp9+i5epaRiYVY9c92lXcRkLoW1BomN+BYOgLA0KTnGbCBhpVgaFLV
26
+ Zpxn1wIDAQABo4GKMIGHMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
27
+ BBTlgbqnrHnnB4BGOhq6ImnfrHMExTAmBgNVHREEHzAdgRtnZW1tYXN0ZXJAamFt
28
+ ZXNyb2JlcnRzb24uZXUwJgYDVR0SBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
29
+ c29uLmV1MA0GCSqGSIb3DQEBCwUAA4IBgQA1/YzJyCRRV3xjjd21TS+HpefpmDMz
30
+ gksju8435o37isV2H2H4sm/saidRnfEtkWH1ifcUbKlHteQmOnSMPN2iwOpLcjL4
31
+ NBNMprsCkB8cZZAtDLRwgly0XJpoHh1uM2M2gZVeK0dJvnUpMWtbbFE3s6XlOtUd
32
+ oTFsX/BinRKuarSqyTl4ws0/dt3h+qoYJ8Bb1xOyWq/kexkClktGO3DriQDiZuau
33
+ bp9ndo495b1UmN5FW2pqUtpgSeD02p/qdmt+P4Md5kWN++wbsFtkozmjPLbUv0V6
34
+ 5tAc4hLqSpKyeWbuOhZcCi+kHehL2KRjIclw1G7OwTmK/Gb6T6AouSQHCnJVbVg3
35
+ uKWmjUqzs/EYKH+apf1pLBlwfnDfQbuhOnpJq0KBZXi+hwg9Untbm/LToA2Vf6vK
36
+ phq1ap3uj5EjiSk3sJoMTknfiQknD2KV2Ixz4D5c7PtY7ySQUMMxS9G2UkQDB+Go
37
+ 00XXjNfWe6IXrHyM3pwjbnNhEoHAdascyM8=
32
38
  -----END CERTIFICATE-----
33
- date: 2018-08-05 00:00:00.000000000 Z
39
+ date: 2023-02-14 00:00:00.000000000 Z
34
40
  dependencies:
35
41
  - !ruby/object:Gem::Dependency
36
42
  name: dynarex
@@ -38,22 +44,22 @@ dependencies:
38
44
  requirements:
39
45
  - - "~>"
40
46
  - !ruby/object:Gem::Version
41
- version: '1.8'
47
+ version: '1.10'
42
48
  - - ">="
43
49
  - !ruby/object:Gem::Version
44
- version: 1.8.1
50
+ version: 1.10.0
45
51
  type: :runtime
46
52
  prerelease: false
47
53
  version_requirements: !ruby/object:Gem::Requirement
48
54
  requirements:
49
55
  - - "~>"
50
56
  - !ruby/object:Gem::Version
51
- version: '1.8'
57
+ version: '1.10'
52
58
  - - ">="
53
59
  - !ruby/object:Gem::Version
54
- version: 1.8.1
60
+ version: 1.10.0
55
61
  description:
56
- email: james@jamesrobertson.eu
62
+ email: digital.robertson@gmail.com
57
63
  executables: []
58
64
  extensions: []
59
65
  extra_rdoc_files: []
@@ -78,8 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
78
84
  - !ruby/object:Gem::Version
79
85
  version: '0'
80
86
  requirements: []
81
- rubyforge_project:
82
- rubygems_version: 2.6.13
87
+ rubygems_version: 3.4.4
83
88
  signing_key:
84
89
  specification_version: 4
85
90
  summary: dynarex-password
metadata.gz.sig CHANGED
Binary file