gotp

package
v0.0.0-...-07ef6c8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 26, 2023 License: Artistic-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OtpTypeTotp = "totp"
	OtpTypeHotp = "hotp"
)

Variables

This section is empty.

Functions

func BuildUri

func BuildUri(otpType, secret, accountName, issuerName, algorithm string, initialCount, digits, period int) string

Returns the provisioning URI for the OTP; works for either TOTP or HOTP. This can then be encoded in a QR Code and used to provision the Google Authenticator app. For module-internal use. See also:

https://github.com/google/google-authenticator/wiki/Key-Uri-Format

params:

otpType:     otp type, must in totp/hotp
secret:       the hotp/totp secret used to generate the URI
accountName:  name of the account
issuerName:   the name of the OTP issuer; this will be the organization title of the OTP entry in Authenticator
algorithm:    the algorithm used in the OTP generation
initialCount: starting counter value. Only works for hotp
digits:       the length of the OTP generated code.
period:       the number of seconds the OTP generator is set to expire every code.

returns: provisioning uri

func Itob

func Itob(integer int) []byte

integer to byte array

func RandomSecret

func RandomSecret(length int) string

generate a random secret of given length

Types

type Hasher

type Hasher struct {
	HashName string
	Digest   func() hash.Hash
}

type OTP

type OTP struct {
	// contains filtered or unexported fields
}

func NewOTP

func NewOTP(secret string, digits int, hasher *Hasher) OTP

type TOTP

type TOTP struct {
	OTP
	// contains filtered or unexported fields
}

time-based OTP counters.

func NewDefaultTOTP

func NewDefaultTOTP(secret string) *TOTP

func NewTOTP

func NewTOTP(secret string, digits, interval int, hasher *Hasher) *TOTP

func (*TOTP) At

func (t *TOTP) At(timestamp int) string

Generate time OTP of given timestamp

func (*TOTP) Now

func (t *TOTP) Now() string

Generate the current time OTP

func (*TOTP) NowWithExpiration

func (t *TOTP) NowWithExpiration() (string, int64)

Generate the current time OTP and expiration time

func (*TOTP) NowWithSecondLeft

func (t *TOTP) NowWithSecondLeft() (string, int64)

generqate current time otp and time left second

func (*TOTP) ProvisioningUri

func (t *TOTP) ProvisioningUri(accountName, issuerName string) string

Returns the provisioning URI for the OTP. This can then be encoded in a QR Code and used to provision an OTP app like Google Authenticator.

See also:

https://github.com/google/google-authenticator/wiki/Key-Uri-Format

params:

accountName: name of the account
issuerName:  the name of the OTP issuer; this will be the organization title of the OTP entry in Authenticator

returns: provisioning URI

func (*TOTP) Verify

func (t *TOTP) Verify(otp string, timestamp int) bool

Verify OTP.

params:

otp:         the OTP to check against
timestamp:   time to check OTP at

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL