@@ -16,14 +16,23 @@ In general, any HBSH construction can be used to wrap any VFS.
16
16
17
17
The default Adiantum construction uses XChaCha12 for its stream cipher,
18
18
AES for its block cipher, and NH and Poly1305 for hashing.
19
- It uses Argon2id to derive 256-bit keys from plain text.
19
+ Additionally, we use Argon2id to derive 256-bit keys from plain text.
20
20
21
- The VFS encrypts database files, rollback and statement journals, and WAL files.
21
+ The VFS encrypts all files _ except_
22
+ [ super journals] ( https://sqlite.org/tempfiles.html#super_journal_files ) :
23
+ super journals _ never_ contain database data, only filenames,
24
+ and padding them to the block size is problematic.
25
+
26
+ Temporary files _ are_ encrypted, as they _ will_ contain database data.
27
+ To avoid the overhead of encrypting temporary files,
28
+ keep them in memory:
29
+
30
+ PRAGMA temp_store = memory;
22
31
23
32
> [ !IMPORTANT]
24
33
> Adiantum is typically used for disk encryption.
25
34
> The standard threat model for disk encryption considers an adversary
26
35
> that can read multiple snapshots of a disk.
27
- > The security property that disk encryption provides is that
28
- > the only information such an adversary can determine is
29
- > whether the data in a sector has or has not changed over time.
36
+ > The only security property that disk encryption (and this package)
37
+ > provides is that the only information such an adversary can determine
38
+ > is whether the data in a sector has or has not changed over time.
0 commit comments