dev-random-passwords 0.1.0 → 0.1.4

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
  SHA1:
3
- metadata.gz: 0b91d26f0f17f4378ab2e6996d56bb9f229d53d7
4
- data.tar.gz: 273f5593f2140747c97dc7d39c0584d5b2f61431
3
+ metadata.gz: 6e8810ba253d09244991432b1fd01ea4a60ff1e7
4
+ data.tar.gz: 0941d50a538e70d5c03b694be44360e29ba3cb62
5
5
  SHA512:
6
- metadata.gz: ead906d135cd93edc72b8556b7f91ec0def52b64e2643bdc8a50a2d9e25118d59e403bae23a6721c0e5ced2e0dd0ca29cde17ce4eb01a9a6c6ca14cc93ea019e
7
- data.tar.gz: e3fd250e62adc92afd45d1c67d8caadbd4218e59223321998ee10c5d67a04fcbf14de9bc5e6badc8376aeed22ed9199704428424c20f17971d2be0a98331cf6c
6
+ metadata.gz: 1ccd06e3eb1947c0b3c7198f2a3be27e8bc40d60ddc921b1426ce92ad211f304e77f9328d0b263b90d653621dcd6c4b80783e548e829a5eba3132af4f32edfb5
7
+ data.tar.gz: 29f02179bfcddc821ef88fc9f49651d66881cc9b1c945fbdd86401c3bf93d9f2905623a60ef6c18e0ddbb378788b34e51fd088324d42219a0264d3a331e2b181
@@ -138,35 +138,46 @@ module DevRandomPasswords
138
138
 
139
139
  def get_byte
140
140
  if @hardware_random == true
141
-
142
- if File.exist?('/dev/hwrng')
143
- if File.readable?('/dev/hwrng')
144
- random_file = File.new('/dev/hwrng', 'r')
145
- random_byte = random_file.read(1).ord
146
- random_file.close
147
- if random_byte
148
- return random_byte
149
- end
150
- else
151
- raise "/dev/hwrng #{NOT_READABLE_ERROR}"
152
- end
141
+ hw_byte = read_byte_from_hw
142
+ if hw_byte
143
+ return hw_byte
153
144
  end
145
+ end
154
146
 
155
- if File.exist?('/dev/hwrandom')
156
- if File.readable?('/dev/hwrandom')
157
- random_file = File.new('/dev/hwrandom', 'r')
158
- random_byte = random_file.read(1).ord
159
- random_file.close
160
- if random_byte
161
- return random_byte
162
- end
163
- else
164
- raise "/dev/hwrandom #{NOT_READABLE_ERROR}"
147
+ random_byte = read_byte_from_dev_random
148
+ if random_byte
149
+ return random_byte
150
+ end
151
+
152
+ random_byte = read_byte_from_dev_urandom
153
+ if random_byte
154
+ return random_byte
155
+ else
156
+ raise "Could not find a random number generator on your system"
157
+ end
158
+ end
159
+
160
+ def read_byte_from_dev_urandom
161
+ if File.exist?('/dev/urandom')
162
+ if File.readable?('/dev/urandom')
163
+ random_file = File.new('/dev/urandom', 'r')
164
+ random_byte = random_file.read(1).ord
165
+ random_file.close
166
+ if random_byte
167
+ return random_byte
165
168
  end
169
+ else
170
+ raise "/dev/urandom #{NOT_READABLE_ERROR}"
166
171
  end
167
-
168
172
  end
173
+ end
169
174
 
175
+ def read_byte_from_dev_random
176
+ if File.exist?('/proc/sys/kernel/random/entropy_avail')
177
+ if `cat /proc/sys/kernel/random/entropy_avail`.chomp.to_i < 64
178
+ return read_byte_from_dev_urandom
179
+ end
180
+ end
170
181
  if File.exist?('/dev/random')
171
182
  if File.readable?('/dev/random')
172
183
  random_file = File.new('/dev/random', 'r')
@@ -178,21 +189,34 @@ module DevRandomPasswords
178
189
  else
179
190
  raise "/dev/random #{NOT_READABLE_ERROR}"
180
191
  end
192
+ end
193
+ end
181
194
 
182
- elsif File.exist?('/dev/urandom')
183
- if File.readable?('/dev/urandom')
184
- random_file = File.new('/dev/urandom', 'r')
195
+ def read_byte_from_hw
196
+ if File.exist?('/dev/hwrng')
197
+ if File.readable?('/dev/hwrng')
198
+ random_file = File.new('/dev/hwrng', 'r')
185
199
  random_byte = random_file.read(1).ord
186
200
  random_file.close
187
201
  if random_byte
188
202
  return random_byte
189
203
  end
190
204
  else
191
- raise "/dev/urandom #{NOT_READABLE_ERROR}"
205
+ raise "/dev/hwrng #{NOT_READABLE_ERROR}"
192
206
  end
207
+ end
193
208
 
194
- else
195
- raise "Could not find a random number generator on your system"
209
+ if File.exist?('/dev/hwrandom')
210
+ if File.readable?('/dev/hwrandom')
211
+ random_file = File.new('/dev/hwrandom', 'r')
212
+ random_byte = random_file.read(1).ord
213
+ random_file.close
214
+ if random_byte
215
+ return random_byte
216
+ end
217
+ else
218
+ raise "/dev/hwrandom #{NOT_READABLE_ERROR}"
219
+ end
196
220
  end
197
221
  end
198
222
 
@@ -1,3 +1,3 @@
1
1
  module DevRandomPasswords
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dev-random-passwords
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joel Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-06 00:00:00.000000000 Z
11
+ date: 2015-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler