Sha256: a6b95576f5abbb5c9109b61d4db3aef98f2cf5e1a021a83cf0a691c60bc95594

Contents?: true

Size: 920 Bytes

Versions: 4

Compression:

Stored size: 920 Bytes

Contents

# frozen_string_literal: true

module RailsBase
  module UserHelper
    module Totp
      module ClassOptions
        def totp_drift_ahead
          RailsBase.config.totp.allowed_drift_ahead || RailsBase.config.totp.allowed_drift
        end

        def totp_drift_behind
          RailsBase.config.totp.allowed_drift_behind || RailsBase.config.totp.allowed_drift
        end

        def generate_otp_secret(otp_secret_length = RailsBase.config.totp.secret_code_length)
          ROTP::Base32.random_base32(otp_secret_length)
        end

        def generate_backup_codes
          number_of_codes = RailsBase.config.totp.backup_code_count
          code_length = RailsBase.config.totp.backup_code_length
          codes = []
          number_of_codes.times do
            codes << SecureRandom.hex(code_length / 2) # Hexstring has length 2*n
          end

          codes
        end
      end
    end
  end
end



Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rails_base-0.82.0 app/models/rails_base/user_helper/totp/class_options.rb
rails_base-0.81.1 app/models/rails_base/user_helper/totp/class_options.rb
rails_base-0.81.0 app/models/rails_base/user_helper/totp/class_options.rb
rails_base-0.80.0 app/models/rails_base/user_helper/totp/class_options.rb