| 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]
|
|
|