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