Module: Gem::SecureRandom

Extended by:
Random::Formatter
Defined in:
lib/rubygems/vendor/securerandom/lib/securerandom.rb

Overview

Secure random number generator interface.

This library is an interface to secure random number generators which are suitable for generating session keys in HTTP cookies, etc.

You can use this library in your application by requiring it:

require 'rubygems/vendor/securerandom/lib/securerandom'

It supports the following secure random number generators:

  • openssl

  • /dev/urandom

  • Win32

Gem::SecureRandom is extended by the Random::Formatter module which defines the following methods:

  • alphanumeric

  • base64

  • choose

  • gen_random

  • hex

  • rand

  • random_bytes

  • random_number

  • urlsafe_base64

  • uuid

These methods are usable as class methods of Gem::SecureRandom such as Gem::SecureRandom.hex.

If a secure random number generator is not available, NotImplementedError is raised.

Constant Summary collapse

VERSION =

The version

"0.4.1"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.bytes(n) ⇒ Object

Returns a random binary string containing size bytes.

See Random.bytes



50
51
52
# File 'lib/rubygems/vendor/securerandom/lib/securerandom.rb', line 50

def bytes(n)
  return gen_random(n)
end

Instance Method Details

#alphanumeric(n = nil, chars: ALPHANUMERIC) ⇒ Object

Compatibility methods for Ruby 3.2, we can remove this after dropping to support Ruby 3.2



55
56
57
58
# File 'lib/rubygems/vendor/securerandom/lib/securerandom.rb', line 55

def alphanumeric(n = nil, chars: ALPHANUMERIC)
  n = 16 if n.nil?
  choose(chars, n)
end