Module: SecureRandom

Defined in:
lib/securer_randomer/monkeypatch/secure_random.rb

Constant Summary collapse

KERNEL_RAND =
SecurerRandomer.method(:kernel_rand)
FLOAT_ERROR =
begin random_number(1.0); rescue => e; e end

Class Method Summary collapse

Class Method Details

.gen_random(n) ⇒ Object



7
8
9
# File 'lib/securer_randomer/monkeypatch/secure_random.rb', line 7

def self.gen_random(n)
  RbNaCl::Random.random_bytes(n)
end

.random_bytes(n = nil) ⇒ Object



11
12
13
# File 'lib/securer_randomer/monkeypatch/secure_random.rb', line 11

def self.random_bytes(n = nil)
  RbNaCl::Random.random_bytes(n ? n.to_i : 16)
end

.random_number(n = 0) ⇒ Object

Raises:

  • (ArgumentError)


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/securer_randomer/monkeypatch/secure_random.rb', line 17

def self.random_number(n = 0)
  arg =
    case n
    when nil
      0
    when Numeric
      n > 0 ? n : 0
    when Range
      if n.end < n.begin
        0
      elsif n.begin == n.end and n.exclude_end?
        0
      else
        n
      end
    end

  raise TypeError unless arg

  KERNEL_RAND.call(arg)
rescue TypeError
  raise ArgumentError, "invalid argument - #{n}"
end