]> Cypherpunks.ru repositories - govpn.git/blobdiff - doc/verifierstruct.texi
Replace Argon2 with Balloon hashing
[govpn.git] / doc / verifierstruct.texi
index b508b483536d4b9e4aebef987362d126b42abe5d..b199d72faebc09f42b48488179baf1c8724db75e 100644 (file)
@@ -6,11 +6,18 @@ dictionary attacks and can not be used for authentication (only
 its verifying).
 
 @verbatim
-SOURCE = PBKDF2(SALT=PeerId, PASSWORD, 1<<16, SHA512)
+SOURCE = Balloon(PASSWORD, SALT=PeerId, sCost, tCost, pJobs)
 PUB, PRIV = Ed25519.Generate(SOURCE)
 @end verbatim
 
-Verifier is public key of Ed25519 generated from the PBKDF2 of the
-passphrase in hexadecimal encoding. @code{PeerId} is used as a 128-bit
-salt. Server stores and knows only verifier. Client can compute the
-whole keypair every time he makes handshake.
+Balloon hashing uses BLAKE2b-256 hash. Space cost (sCost), time cost
+(tCost) and number of parallel jobs (pJobs) are specific to Balloon
+implementation.
+
+Verifier is serialized representation of public data above:
+@verbatim
+$balloon$s=s,t=t,p=p$Base64(SALT)$Base64(PUB)
+@end verbatim
+
+Server stores and knows only verifier. Client can compute the whole
+keypair every time he makes handshake.