dev-random-passwords 0.1.0 → 0.1.4

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