manpagez: man pages & more
man URI::otpauth(3)
Home | html | info | man
URI::otpauth(3)       User Contributed Perl Documentation      URI::otpauth(3)



NAME

       URI::otpauth - URI scheme for secret keys for OTP secrets.  Usually
       found in QR codes


VERSION

       Version 5.29


SYNOPSIS

         use URI;

         # optauth URI from textual uri
         my $uri = URI->new( 'otpauth://totp/Example:alice@google.com?secret=NFZS25DINFZV643VOAZXELLTGNRXEM3UH4&issuer=Example' );

         # same URI but created from arguments
         my $uri = URI::otpauth->new( type => 'totp', issuer => 'Example', account_name => 'alice@google.com', secret => 'is-this_sup3r-s3cr3t?' );


DESCRIPTION

       This URI scheme is defined in
       <https://github.com/google/google-authenticator/wiki/Key-Uri-Format/>:


SUBROUTINES/METHODS

   "new"
       Create a new URI::otpauth. The available arguments are listed below;

       o   account_name - this can be the account name (probably an email
           address) used when authenticating with this secret.  It is an
           optional field.

       o   algorithm - this is the cryptographic hash function
           <https://en.wikipedia.org/wiki/Cryptographic_hash_function> that
           should be used.  Current values are SHA1
           <https://en.wikipedia.org/wiki/SHA-1>, SHA256
           <https://en.wikipedia.org/wiki/SHA-2> or SHA512
           <https://en.wikipedia.org/wiki/SHA-2>.  It is an optional field and
           will default to SHA1.

       o   counter - this is only required when the type is HOTP.

       o   digits - this determines the length
           <https://github.com/google/google-authenticator/wiki/Key-Uri-
           Format/#digits> of the code presented to the user.  It is an
           optional field and will default to 6 digits.

       o   issuer - this can be the application / system
           <https://github.com/google/google-authenticator/wiki/Key-Uri-
           Format/#issuer> that this secret can be used to authenticate to.
           It is an optional field.

       o   label - this is the issuer and the account name
           <https://github.com/google/google-authenticator/wiki/Key-Uri-
           Format/#label> joined with a ":" character.  It is an optional
           field.

       o   period - this is the period that the TOTP code is valid for
           <https://github.com/google/google-authenticator/wiki/Key-Uri-
           Format/#counter>.  It is an optional field and will default to 30
           seconds.

       o   secret - this is the key
           <https://en.wikipedia.org/wiki/Key_(cryptography)> that the TOTP
           <https://en.wikipedia.org/wiki/Time-based_one-time_password>/HOTP
           <https://en.wikipedia.org/wiki/HMAC-based_one-time_password>
           algorithm uses to derive the value.  It is an arbitrary byte string
           and must remain private.  This field is mandatory.

       o   type - this can be 'hotp <https://en.wikipedia.org/wiki/HMAC-
           based_one-time_password>' or 'totp
           <https://en.wikipedia.org/wiki/Time-based_one-time_password>'.
           This field will default to 'totp'.

   "algorithm"
       Get or set the algorithm of this otpauth URI.

   "account_name"
       Get or set the account_name of this otpauth URI.

   "counter"
       Get or set the counter of this otpauth URI.

   "digits"
       Get or set the digits of this otpauth URI.

   "issuer"
       Get or set the issuer of this otpauth URI.

   "label"
       Get or set the label of this otpauth URI.

   "period"
       Get or set the period of this otpauth URI.

   "secret"
       Get or set the secret of this otpauth URI.

   "type"
       Get or set the type of this otpauth URI.

         my $type = $uri->type('hotp');


CONFIGURATION AND ENVIRONMENT

       URI::otpauth requires no configuration files or environment variables.


DEPENDENCIES

       URI


DIAGNOSTICS

       "secret is a mandatory parameter for URI::otpauth"
           The secret parameter was not detected for the URI::otpauth->new()
           method.


INCOMPATIBILITIES

       None reported.


BUGS AND LIMITATIONS

       To report a bug, or view the current list of bugs, please visit
       <https://github.com/libwww-perl/URI/issues>


AUTHOR

       David Dick "<ddick@cpan.org>"


LICENSE AND COPYRIGHT

       Copyright (c) 2024, David Dick "<ddick@cpan.org>".

       This module is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself. See perlartistic.

perl v5.34.3                      2024-09-05                   URI::otpauth(3)

uri 5.290.0 - Generated Wed Oct 2 15:58:00 CDT 2024
© manpagez.com 2000-2024
Individual documents may contain additional copyright information.