Module: RubyHome::Password

Defined in:
lib/ruby_home/password.rb

Constant Summary collapse

DELIMITER =
"-"
LENGTH =
8
INVALIDS =
[
  "00000000",
  "11111111",
  "22222222",
  "33333333",
  "44444444",
  "55555555",
  "66666666",
  "77777777",
  "88888888",
  "99999999",
  "12345678",
  "87654321"
]

Class Method Summary collapse

Class Method Details

.format(digits) ⇒ Object



33
34
35
36
37
38
39
# File 'lib/ruby_home/password.rb', line 33

def format(digits)
  [
    digits[0...3],
    digits[3...5],
    digits[5...8]
  ].join(DELIMITER)
end

.generateObject

The Setup Code must conform to the format XXX-XX-XXX where each X is a 0-9 digit and dashes are required. For example, “101-48-005” (without quotes). The accessory must generate its SRP verifier with the full Setup Code, including dashes.



26
27
28
29
30
31
# File 'lib/ruby_home/password.rb', line 26

def generate
  loop do
    digits = random_digits(LENGTH)
    break format(digits.to_s) unless INVALIDS.include?(digits)
  end
end

.random_digits(length) ⇒ Object



41
42
43
# File 'lib/ruby_home/password.rb', line 41

def random_digits(length)
  Array.new(length) { rand(0..9) }.join
end