From 0e32aefb643605ed8e80846ea78ed8d63186bf92 Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Sun, 29 Oct 2017 20:14:29 -0700 Subject: dat-paper: nonce is 24 bytes, not 32 This is consistent with docs/hyperdrive_spec.md. Current dat implementation uses 24 bytes, which is what libsodium needs for XSalsa20 stream xor mode: https://download.libsodium.org/doc/advanced/xsalsa20.html --- papers/dat-paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/papers/dat-paper.md b/papers/dat-paper.md index 556edae..43b1b01 100644 --- a/papers/dat-paper.md +++ b/papers/dat-paper.md @@ -329,7 +329,7 @@ To generate this varint, you bitshift the 4-bit type integer onto the end of the Type 0. Should be the first message sent on a channel. - `discoveryKey` - A BLAKE2b keyed hash of the string 'hypercore' using the public key of the metadata register as the key. -- `nonce` - 32 bytes of random binary data, used in our encryption scheme +- `nonce` - 24 bytes (192 bits) of random binary data, used in our encryption scheme ``` message Feed { -- cgit v1.2.3 From d9392d4efbb385f70c01c592abe92bdcf16492bb Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Sun, 29 Oct 2017 20:21:15 -0700 Subject: clarify that SLEEP magic is big-endian --- papers/sleep.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/papers/sleep.md b/papers/sleep.md index 63dbe48..1694282 100644 --- a/papers/sleep.md +++ b/papers/sleep.md @@ -47,7 +47,7 @@ SLEEP files are laid out like this: ```` - 32 byte header - - 4 bytes - magic byte (value varies depending on which file, used to quickly identify which file type it is) + - 4 bytes Uint32BE ("Big-Endian") - magic byte (value varies depending on which file, used to quickly identify which file type it is) - 1 byte - version number of the file header protocol, current version is 0 - 2 byte Uint16BE - entry size, describes how long each entry in the file is - 1 byte - length prefix for body -- cgit v1.2.3 From ce7a857da282b952433a9ddb615c16f1e5b3a23e Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Sun, 29 Oct 2017 20:21:46 -0700 Subject: clarify Ed25519 capitalization and hash/cipher terminology --- papers/sleep.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/papers/sleep.md b/papers/sleep.md index 1694282..d7349f4 100644 --- a/papers/sleep.md +++ b/papers/sleep.md @@ -51,7 +51,7 @@ SLEEP files are laid out like this: - 1 byte - version number of the file header protocol, current version is 0 - 2 byte Uint16BE - entry size, describes how long each entry in the file is - 1 byte - length prefix for body - - rest of 32 byte header - string describing key algorithm (in dat 'ed25519'). length of this string matches the length in the previous length prefix field. This string must fit within the 32 byte header limitation (24 bytes reserved for string). Unused bytes should be filled with zeroes. + - rest of 32 byte header - string describing key or hash algorithm. length of this string matches the length in the previous length prefix field. This string must fit within the 32 byte header limitation (24 bytes reserved for string). Unused bytes should be filled with zeroes. Possible values in the Dat implementation for the body field are: @@ -421,4 +421,4 @@ These are the field definitions: - `mtime` - POSIX modified_at time - `mtime` - POSIX created_at time -## References \ No newline at end of file +## References -- cgit v1.2.3