From: Sergey Matveev Date: Wed, 30 Jun 2021 11:10:04 +0000 (+0300) Subject: Actualize Eblob format X-Git-Tag: v7.0.0^2 X-Git-Url: http://www.git.cypherpunks.ru/?p=nncp.git;a=commitdiff_plain;h=b6511c9c0bfae796daf454b1caf2761a5ea37358 Actualize Eblob format --- diff --git a/doc/eblob.texi b/doc/eblob.texi index 256e6d1..3a5c08d 100644 --- a/doc/eblob.texi +++ b/doc/eblob.texi @@ -1,7 +1,7 @@ @node EBlob @unnumbered EBlob format -Eblob is an encrypted blob (binary large object, in the terms of +EBlob is an encrypted blob (binary large object, in the terms of databases), holding any kind of symmetrically encrypted data with the passphrase used to derive the key. It is used to secure configuration files, holding valuable private keys, allowing them to be transferred @@ -29,7 +29,7 @@ attacks and seems more secure than Argon2 (@url{https://password-hashing.net/, Password Hashing Competition} winner). -Eblob is an @url{https://tools.ietf.org/html/rfc4506, XDR}-encoded structure: +EBlob is an @url{https://tools.ietf.org/html/rfc4506, XDR}-encoded structure: @verbatim +-------+------------------+------+ @@ -54,15 +54,8 @@ Eblob is an @url{https://tools.ietf.org/html/rfc4506, XDR}-encoded structure: @end multitable @enumerate -@item generate the main key using @code{balloon(BLAKE2b-256, S, T, P, -salt, password)} -@item initialize @url{https://blake2.net/, BLAKE2Xb} XOF with generated -main key and 32-byte output length -@item feed @verb{|N N C P B 0x00 0x00 0x03|} magic number to XOF -@item read 32-bytes of blob AEAD encryption key +@item generate the key using @code{balloon(BLAKE2b-256, S, T, P, salt, password)} @item encrypt and authenticate blob using @url{https://cr.yp.to/chacha.html, ChaCha20}-@url{https://en.wikipedia.org/wiki/Poly1305, Poly1305}. - Blob is divided on 128 KiB blocks. Each block is encrypted with - increasing nonce counter. Eblob packet itself, with empty blob - field, is fed as an additional authenticated data + EBlob packet itself, with empty blob field, is fed as an additional authenticated data @end enumerate