dynarex-password 0.1.12 → 0.3.0

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