Index: src/FORMAT |
diff --git a/src/FORMAT b/src/FORMAT |
new file mode 100644 |
index 0000000000000000000000000000000000000000..10f699d8ec833264676f8ff942c6ec6e150883bf |
--- /dev/null |
+++ b/src/FORMAT |
@@ -0,0 +1,18 @@ |
+scrypt encrypted data format |
+---------------------------- |
+ |
+offset length |
+0 6 "scrypt" |
+6 1 scrypt data file version number (== 0) |
+7 1 log2(N) (must be between 1 and 63 inclusive) |
+8 4 r (big-endian integer; must satisfy r * p < 2^30) |
+12 4 p (big-endian integer; must satisfy r * p < 2^30) |
+16 32 salt |
+48 16 first 16 bytes of SHA256(bytes 0 .. 47) |
+64 32 HMAC-SHA256(bytes 0 .. 63) |
+96 X data xor AES256-CTR key stream generated with nonce == 0 |
+96+X 32 HMAC-SHA256(bytes 96 .. 96 + (X - 1)) |
+ |
+AES256-CTR is computed with a 256-bit AES key key_enc, and HMAC-SHA256 is |
+computed with a 256-bit key key_hmac, where |
+ scrypt(password, salt, N, r, p, 64) == [key_enc][key_hmac] |