gototp.go
func New(secretB32 string) (*TOTP, error) {
	// Decode the secret
	key, err := base32.StdEncoding.DecodeString(secretB32)
	if nil != err {
		return nil, fmt.Errorf("Error encountered base32 decoding secret: %v", err.Error())
	}

	return &TOTP{key, 6, 30}, nil
}
func New(secretB32 string) (*TOTP, error) {
	// Decode the secret
	key, err := base32.StdEncoding.DecodeString(secretB32)
	if nil != err {
		return nil, fmt.Errorf("Error encountered base32 decoding secret: %v", err.Error())
	}

	return &TOTP{key, 6, 30}, nil
}
// Generate a new Time Based One Time Password with the given secret (a b32 encoded key)