summaryrefslogtreecommitdiff
path: root/doc/file-format-and-process.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/file-format-and-process.md')
-rw-r--r--doc/file-format-and-process.md30
1 files changed, 30 insertions, 0 deletions
diff --git a/doc/file-format-and-process.md b/doc/file-format-and-process.md
new file mode 100644
index 0000000..6ffc067
--- /dev/null
+++ b/doc/file-format-and-process.md
@@ -0,0 +1,30 @@
+The random-seed format consists of:
+
+1. 512 bytes of random seed data for compatibility with other random seed
+ implementations
+2. The magic string "RANDOM SEED FILE VERSION 1".
+3. A series of line delimited commands with space delimited arguments.
+
+Comments are not supported.
+
+# Hashing
+In an attempt to improve privacy, device IDs are hashed with SHA256(random-data
+|| ID) where || denotes concatenation and random-data is the 512 bytes of
+random data at the start of the file.
+
+# Commands
+
+## salt
+Set the salt for the following commands to the argument. This must be the
+first command.
+
+## machine-id
+Check that the contents of `/etc/machine-id`, when hashed, matches the
+argument.
+
+## fs-id
+Check that calling statfs(2) on the random seed file returns a `f_fsid` that
+when hashed, matches the argument.
+
+## done
+End of mandatory commands.