X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Fcypherpunks.ru%2Fgovpn%2Fverifier.go;h=1e3fc61fbd9e42c1dc16389aff0e06555bac8d43;hb=9f7abcad309afd709a1f16cdf961837bb9510036;hp=8be6ea7ac62c1f25e1d2222d4176c7465b7b1c71;hpb=0348b54d1c83feca398182e9a86a2a92ed428447;p=govpn.git diff --git a/src/cypherpunks.ru/govpn/verifier.go b/src/cypherpunks.ru/govpn/verifier.go index 8be6ea7..1e3fc61 100644 --- a/src/cypherpunks.ru/govpn/verifier.go +++ b/src/cypherpunks.ru/govpn/verifier.go @@ -36,11 +36,15 @@ import ( ) const ( + // DefaultS default Balloon space cost DefaultS = 1 << 20 / 32 + // DefaultT default Balloon time cost DefaultT = 1 << 4 + // DefaultP default Balloon number of job DefaultP = 2 ) +// Verifier is used to verify a peer type Verifier struct { S int T int @@ -49,7 +53,7 @@ type Verifier struct { Pub *[ed25519.PublicKeySize]byte } -// Generate new verifier for given peer, with specified password and +// VerifierNew generate new verifier for given peer, with specified password and // hashing parameters. func VerifierNew(s, t, p int, id *PeerID) *Verifier { return &Verifier{S: s, T: t, P: p, ID: id} @@ -63,7 +67,7 @@ func blake2bKeyless() hash.Hash { return h } -// Apply the password: create Ed25519 keypair based on it, save public +// PasswordApply apply the password: create Ed25519 keypair based on it, save public // 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) @@ -77,7 +81,7 @@ func (v *Verifier) PasswordApply(password string) *[ed25519.PrivateKeySize]byte return prv } -// Parse either short or long verifier form. +// VerifierFromString parse either short or long verifier form. func VerifierFromString(input string) (*Verifier, error) { ss := strings.Split(input, "$") if len(ss) < 4 || ss[1] != "balloon" { @@ -108,7 +112,7 @@ func VerifierFromString(input string) (*Verifier, error) { return &v, nil } -// Short verifier string form -- it is useful for the client. +// ShortForm short verifier string form -- it is useful for the client. // Does not include public key. func (v *Verifier) ShortForm() string { return fmt.Sprintf( @@ -117,7 +121,7 @@ func (v *Verifier) ShortForm() string { ) } -// Long verifier string form -- it is useful for the server. +// LongForm long verifier string form -- it is useful for the server. // Includes public key. func (v *Verifier) LongForm() string { return fmt.Sprintf( @@ -126,7 +130,7 @@ func (v *Verifier) LongForm() string { ) } -// Read the key either from text file (if path is specified), or +// KeyRead read the key either from text file (if path is specified), or // from the terminal. func KeyRead(path string) (string, error) { var p []byte