func VerifierNew(s, t, p int, id *PeerID) *Verifier {
return &Verifier{S: s, T: t, P: p, ID: id}
}
func VerifierNew(s, t, p int, id *PeerID) *Verifier {
return &Verifier{S: s, T: t, P: p, ID: id}
}
func (v *Verifier) PasswordApply(password string) *[ed25519.PrivateKeySize]byte {
r := balloon.H(blake2bKeyless, []byte(password), v.ID[:], v.S, v.T, v.P)
defer SliceZero(r)
func (v *Verifier) PasswordApply(password string) *[ed25519.PrivateKeySize]byte {
r := balloon.H(blake2bKeyless, []byte(password), v.ID[:], v.S, v.T, v.P)
defer SliceZero(r)
func VerifierFromString(input string) (*Verifier, error) {
ss := strings.Split(input, "$")
if len(ss) < 4 || ss[1] != "balloon" {
func VerifierFromString(input string) (*Verifier, error) {
ss := strings.Split(input, "$")
if len(ss) < 4 || ss[1] != "balloon" {
-// ShortForm short verifier string form -- it is useful for the client.
-// Does not include public key.
+// ShortForm outputs the short verifier string form -- it is useful
+// for the client. It does not include public key.
func (v *Verifier) ShortForm() string {
return fmt.Sprintf(
"$balloon$s=%d,t=%d,p=%d$%s",
func (v *Verifier) ShortForm() string {
return fmt.Sprintf(
"$balloon$s=%d,t=%d,p=%d$%s",