// hashing parameters.
func VerifierNew(s, t, p int, id *PeerID) *Verifier {
return &Verifier{S: s, T: t, P: p, ID: id}
// hashing parameters.
func VerifierNew(s, t, p int, id *PeerID) *Verifier {
return &Verifier{S: s, T: t, P: p, ID: id}
// key in verifier.
func (v *Verifier) PasswordApply(password string) *[ed25519.PrivateKeySize]byte {
r := balloon.H(blake2bKeyless, []byte(password), v.ID[:], v.S, v.T, v.P)
// key in verifier.
func (v *Verifier) PasswordApply(password string) *[ed25519.PrivateKeySize]byte {
r := balloon.H(blake2bKeyless, []byte(password), v.ID[:], v.S, v.T, v.P)
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" {