Sha256: 087fcfdee55a04fb129a66e94bd6adfe812ab34540204e6edfac483ce69e3e4d

Contents?: true

Size: 1002 Bytes

Versions: 4

Compression:

Stored size: 1002 Bytes

Contents

module ROTP
  class HOTP < OTP
    # Generates the OTP for the given count
    # @param [Integer] count counter
    # @option [Boolean] padding (false) Issue the number as a 0 padded string
    # @returns [Integer] OTP
    def at(count, padding=false)
      generate_otp(count, padding)
    end

    # Verifies the OTP passed in against the current time OTP
    # @param [String/Integer] otp the OTP to check against
    # @param [Integer] counter the counter of the OTP
    def verify(otp, counter)
      super(otp, self.at(counter))
    end

    # Returns the provisioning URI for the OTP
    # This can then be encoded in a QR Code and used
    # to provision the Google Authenticator app
    # @param [String] name of the account
    # @param [Integer] initial_count starting counter value, defaults to 0
    # @return [String] provisioning uri
    def provisioning_uri(name, initial_count=0)
      "otpauth://hotp/#{URI.encode(name)}?secret=#{secret}&counter=#{initial_count}"
    end

  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rotp-1.4.6 lib/rotp/hotp.rb
rotp-1.4.5 lib/rotp/hotp.rb
rotp-1.4.4 lib/rotp/hotp.rb
rotp-1.4.3 lib/rotp/hotp.rb