Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ SQLite3MC is MIT licensed. The amalgamation also carries public-domain code (SQL

A daily workflow in the [repository](https://github.com/LucaCappelletti94/sqlite3mc-src) opens a pull request for each new SQLite3MC release, taking the archive's checksum only from the release's Sigstore-signed `SHA256SUMS`. CI re-runs `upgrade.sh`, which checks that signature again before trusting the pinned checksum, to prove the vendored bytes match the pinned release. It also compiles the packaged sources natively and through `sqlite-wasm-rs`, and checks that each build opens the other's files in every cipher, under Node and in headless Chrome and Firefox, on OPFS too.

CI also runs SQLite3MC's own tests, a rekey of every cipher and SQLite's TCL suite through the shipped amalgamation, once plainly and once under the address and undefined-behaviour sanitizers, with every expected failure named and explained. Seven fuzz targets in `fuzz/` run on every pull request and daily through `ClusterFuzzLite`: a differential fuzzer comparing the amalgamation's `sqlcipher` scheme against [SQLCipher](https://www.zetetic.net/sqlcipher/) itself, a self-consistency check across the six native cipher schemes, and dedicated targets for rekeying, `journal_mode=WAL`, `ATTACH DATABASE`, the `sqlite3_backup_*` API, and shared-cache mode.
CI also runs SQLite3MC's own tests, a rekey of every cipher and SQLite's TCL suite through the shipped amalgamation, once plainly and once under the address and undefined-behaviour sanitizers, with every expected failure named and explained. Six fuzz targets in `fuzz/` run on every pull request and daily through `ClusterFuzzLite`: a self-consistency check across the six native cipher schemes, and dedicated targets for rekeying, `journal_mode=WAL`, `ATTACH DATABASE`, the `sqlite3_backup_*` API, and shared-cache mode.
7 changes: 0 additions & 7 deletions fuzz/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 1 addition & 9 deletions fuzz/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "sqlite3mc-src-fuzz"
version = "0.0.0"
edition = "2021"
publish = false
description = "Fuzzing SQLite3MC against SQLCipher differentially, its own native ciphers for self-consistency, its rekey support, its WAL journal mode, its ATTACH DATABASE support, its backup API, and its shared-cache mode"
description = "Fuzzing SQLite3MC's own cipher schemes for self-consistency, its rekey support, its WAL journal mode, its ATTACH DATABASE support, its backup API, and its shared-cache mode"

[package.metadata]
cargo-fuzz = true
Expand All @@ -14,16 +14,8 @@ libfuzzer-sys = "0.4.13"

[build-dependencies]
cc = "1.5.1"
sqlcipher-src = "419"
sqlite3mc-src = { path = ".." }

[[bin]]
name = "differential"
path = "fuzz_targets/differential.rs"
test = false
doc = false
bench = false

[[bin]]
name = "native"
path = "fuzz_targets/native.rs"
Expand Down
144 changes: 20 additions & 124 deletions fuzz/build.rs
Original file line number Diff line number Diff line change
@@ -1,126 +1,41 @@
//! Compiles SQLite3MC and SQLCipher into one binary, prefixing each object's globals apart.
//! Compiles the vendored amalgamation as a plain static library.

use std::{
env,
fmt::Write as _,
fs,
path::{Path, PathBuf},
process::Command,
};

struct Side<'a> {
prefix: &'a str,
source: PathBuf,
includes: &'a [&'a Path],
defines: &'a [(&'a str, Option<&'a str>)],
}
use std::{env, fs, path::PathBuf, process::Command};

fn main() {
assert_eq!(
env::var("CARGO_CFG_TARGET_OS").as_deref(),
Ok("linux"),
"the symbol renaming needs ELF objects and GNU-compatible nm and objcopy, so the fuzz crate builds on Linux only"
"the fuzz crate builds on Linux only"
);
let out = PathBuf::from(env::var_os("OUT_DIR").expect("cargo sets OUT_DIR"));
let mc_dir = sqlite3mc_src::source_dir();
let sc_dir = sqlcipher_src::source_dir();
let common = [
let mut cc = cc::Build::new();
cc.file(mc_dir.join(sqlite3mc_src::SOURCE_FILE))
.warnings(false);
cc.include(mc_dir);
for (name, value) in [
("SQLITE_CORE", None),
("SQLITE_TEMP_STORE", Some("2")),
("SQLITE_ENABLE_DBPAGE_VTAB", None),
("SQLITE_DEFAULT_MEMSTATUS", Some("0")),
];
let mc_defines = [common.as_slice(), &[("SQLITE_CORE", None)]].concat();
build(
&Side {
prefix: "mc",
source: mc_dir.join(sqlite3mc_src::SOURCE_FILE),
includes: &[mc_dir],
defines: &mc_defines,
},
&out,
);
let crate_dir = Path::new(env!("CARGO_MANIFEST_DIR"));
build(
&Side {
prefix: "sc",
source: sqlcipher_unit(crate_dir, sc_dir, &out),
includes: &[
sc_dir,
&sc_dir.join(sqlcipher_src::LIBTOMCRYPT_INCLUDE_DIR),
crate_dir,
],
defines: &common,
},
&out,
);
println!("cargo:rustc-link-search=native={}", out.display());
for lib in ["m", "pthread", "dl"] {
println!("cargo:rustc-link-lib={lib}");
}
println!("cargo:rerun-if-changed=build.rs");
for file in [
"sqlcipher-wrapper.c",
"sqlcipher-ltc.h",
"sqlcipher-entropy.c",
] {
println!("cargo:rerun-if-changed={file}");
}
println!("cargo:rerun-if-env-changed=NM");
println!("cargo:rerun-if-env-changed=OBJCOPY");
}

fn build(side: &Side<'_>, out: &Path) {
let mut cc = cc::Build::new();
cc.file(&side.source).warnings(false);
for include in side.includes {
println!("cargo:rerun-if-changed={}", include.display());
cc.include(include);
}
for (name, value) in side.defines {
cc.define(name, *value);
cc.define(name, value);
}
instrument(&mut cc);
let objects = cc.compile_intermediates();
let [object] = objects.as_slice() else {
panic!(
"{} compiled to {} objects",
side.source.display(),
objects.len()
);
panic!("the amalgamation compiled to {} objects", objects.len());
};

let map = out.join(format!("{}.redefine", side.prefix));
fs::write(&map, redefinitions(object, side.prefix)).expect("OUT_DIR is writable");
let renamed = out.join(format!("{}.o", side.prefix));
run(Command::new(tool("OBJCOPY", "objcopy"))
.arg(format!("--redefine-syms={}", map.display()))
.arg(object)
.arg(&renamed));

let archive = out.join(format!("lib{}.a", side.prefix));
let archive = out.join("libmc.a");
let _ = fs::remove_file(&archive);
run(cc.get_archiver().arg("crs").arg(&archive).arg(&renamed));
println!("cargo:rustc-link-lib=static={}", side.prefix);
}

/// Writes the one translation unit SQLCipher builds from, the wrapper's configuration and SQLCipher, then every
/// libtomcrypt source in order, then the entropy hook, all sharing one configuration as upstream's single-file
/// libtomcrypt does.
fn sqlcipher_unit(crate_dir: &Path, sc_dir: &Path, out: &Path) -> PathBuf {
let sources = std::iter::once(crate_dir.join("sqlcipher-wrapper.c"))
.chain(
sqlcipher_src::LIBTOMCRYPT_SOURCES
.iter()
.map(|source| sc_dir.join(source)),
)
.chain(std::iter::once(crate_dir.join("sqlcipher-entropy.c")));
let unit = sources.fold(String::new(), |mut unit, source| {
let _ = writeln!(unit, "#include \"{}\"", source.display());
unit
});
let path = out.join("sqlcipher-unit.c");
fs::write(&path, unit).expect("OUT_DIR is writable");
path
run(cc.get_archiver().arg("crs").arg(&archive).arg(object));
println!("cargo:rustc-link-search=native={}", out.display());
println!("cargo:rustc-link-lib=static=mc");
for lib in ["m", "pthread", "dl"] {
println!("cargo:rustc-link-lib={lib}");
}
println!("cargo:rerun-if-changed=build.rs");
}

/// Gives the C side the coverage and sanitizer instrumentation `cargo fuzz` gives the Rust side.
Expand All @@ -139,25 +54,7 @@ fn instrument(cc: &mut cc::Build) {
}
}

/// One `old new` line per global symbol the object defines.
fn redefinitions(object: &Path, prefix: &str) -> String {
let listing = run(Command::new(tool("NM", "nm"))
.args(["--defined-only", "--extern-only", "--format=posix"])
.arg(object));
listing
.lines()
.filter_map(|line| line.split_whitespace().next())
.fold(String::new(), |mut map, name| {
let _ = writeln!(map, "{name} {prefix}_{name}");
map
})
}

fn tool(var: &str, default: &str) -> String {
env::var(var).unwrap_or_else(|_| default.to_owned())
}

fn run(command: &mut Command) -> String {
fn run(command: &mut Command) {
let output = command
.output()
.unwrap_or_else(|e| panic!("cannot run {command:?}: {e}"));
Expand All @@ -166,5 +63,4 @@ fn run(command: &mut Command) -> String {
"{command:?} failed: {}",
String::from_utf8_lossy(&output.stderr)
);
String::from_utf8(output.stdout).expect("tool output is UTF-8")
}
Binary file modified fuzz/corpus/attach/cross-copy
Binary file not shown.
Binary file modified fuzz/corpus/attach/detach-reattach
Binary file not shown.
3 changes: 1 addition & 2 deletions fuzz/corpus/attach/everything-at-once
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
-ßCYæÔÃôÀ =wNí ¦×ª-Ï>Ï'l$(«¬Cú[ƒtòz}þ°1¾yÕ4pªÌ{Ò»÷úÏÕü0·¸ºïoUUW–Պqoߦ -”Ks [œX” ´½.É`ךb‚ÚãæD¢®×w¸mh±¸Šn0®q(TZaôLX£ÐEØ¿ÞB* Í~,ÊÕÉ}_AZÙÿ±£Ç©ùz‚7Èq®u2=¼³u½µ#-«ô>[,F]ZÓÓXéöމQn;]VÃbú˜Û?:ù½K4qº•†hΪô “òmÖö'>Å;o’CÀÂ=)ûۅûj4Uú®,L¹œx"diÅ9#»²­#VÌJ|wxëÅ4ӈªÇb-~/]´9È/ÉððÈþ|ÿÊ_jQΰ=¶üÜ2Ëÿ†ƒn©*¨s
ˆ
üÃi“s=kmŠ"õ?6òÍǗϳ¨H†E–Íi.úédu4¼3§8õµJ X7­'(ŠÙqRpØ0\¨Ê¾Ó+1:O@aÄJPÑpo:G¿yddßiUV®A½'â—+Ƨ»Ošéá3 ÀÞ¤[ 듥õ ËŠAîÓ+ÅDMæW©éOãq„fîõ­,lOòeLÒÞ1!ԟ4ëD‰=’¬Ç3Þ×HŽjži}"SDâ¥áÀ•øÒà•BaiˆBfþKeÐöÁ½¯Æù…Œã››«žONÛï›ãnø²Ù5êÓZ5?˜»äºT…T
Binary file modified fuzz/corpus/attach/one-attached-correct-key
Binary file not shown.
Binary file modified fuzz/corpus/attach/one-attached-omitted-key
Binary file not shown.
Binary file modified fuzz/corpus/attach/rows-on-both-sides
Binary file not shown.
Binary file modified fuzz/corpus/attach/two-attached
Binary file not shown.
Binary file modified fuzz/corpus/attach/vacuum-attached
Binary file not shown.
Binary file modified fuzz/corpus/backup/aes256-page-size-mismatch
Binary file not shown.
Binary file modified fuzz/corpus/backup/destination-has-content
Binary file not shown.
Binary file modified fuzz/corpus/backup/different-ciphers
Binary file not shown.
Binary file modified fuzz/corpus/backup/empty-source
Binary file not shown.
Binary file modified fuzz/corpus/backup/no-page-size-set
Binary file not shown.
Binary file modified fuzz/corpus/backup/same-cipher-mismatched-page-size
Binary file not shown.
2 changes: 0 additions & 2 deletions fuzz/corpus/differential/compat-1

This file was deleted.

Binary file removed fuzz/corpus/differential/compat-2
Binary file not shown.
1 change: 0 additions & 1 deletion fuzz/corpus/differential/compat-3

This file was deleted.

3 changes: 0 additions & 3 deletions fuzz/corpus/differential/compat-4

This file was deleted.

1 change: 0 additions & 1 deletion fuzz/corpus/differential/corruption-present

This file was deleted.

Binary file removed fuzz/corpus/differential/corruption-present-hmac-off
Binary file not shown.
Binary file removed fuzz/corpus/differential/corruption-present-hmac-on
Binary file not shown.
Binary file removed fuzz/corpus/differential/hmac-algorithm-sha1
Binary file not shown.
Binary file removed fuzz/corpus/differential/hmac-algorithm-sha256
Binary file not shown.
Binary file removed fuzz/corpus/differential/hmac-algorithm-sha512
Binary file not shown.
Binary file removed fuzz/corpus/differential/hmac-default
Binary file not shown.
Binary file removed fuzz/corpus/differential/hmac-off
Binary file not shown.
Binary file removed fuzz/corpus/differential/hmac-on
Binary file not shown.
1 change: 0 additions & 1 deletion fuzz/corpus/differential/kdf-default

This file was deleted.

Binary file removed fuzz/corpus/differential/kdf-sha1
Binary file not shown.
1 change: 0 additions & 1 deletion fuzz/corpus/differential/kdf-sha256

This file was deleted.

3 changes: 0 additions & 3 deletions fuzz/corpus/differential/kdf-sha512

This file was deleted.

Binary file removed fuzz/corpus/differential/key-passphrase
Binary file not shown.
Binary file removed fuzz/corpus/differential/key-raw
Binary file not shown.
Binary file removed fuzz/corpus/differential/key-raw-with-salt-and-header
Binary file not shown.
Binary file not shown.
Binary file removed fuzz/corpus/differential/many-ops
Binary file not shown.
Binary file removed fuzz/corpus/differential/page-size-512
Binary file not shown.
2 changes: 0 additions & 2 deletions fuzz/corpus/differential/page-size-65536

This file was deleted.

Binary file removed fuzz/corpus/differential/page-size-default
Binary file not shown.
1 change: 0 additions & 1 deletion fuzz/corpus/differential/writer-sqlcipher

This file was deleted.

Binary file removed fuzz/corpus/differential/writer-sqlite3mc
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed fuzz/corpus/findings/backup-guard-bypass-aes128-aegis
Binary file not shown.
Binary file removed fuzz/corpus/findings/backup-guard-bypass-cross-cipher
Binary file not shown.
3 changes: 0 additions & 3 deletions fuzz/corpus/findings/backup-rc4-small-page-short-read

This file was deleted.

Binary file removed fuzz/corpus/findings/shared-cache-many-siblings
Binary file not shown.
2 changes: 0 additions & 2 deletions fuzz/corpus/findings/shared-cache-one-sibling-wrong-key

This file was deleted.

Binary file removed fuzz/corpus/findings/shared-cache-sibling-has-ops
Binary file not shown.
Binary file not shown.
Binary file removed fuzz/corpus/findings/vacuum-65536-page-size-corrupt
Binary file not shown.
1 change: 0 additions & 1 deletion fuzz/corpus/findings/wal-aes256-legacy-vacuum

This file was deleted.

Binary file modified fuzz/corpus/native/aegis-128
Binary file not shown.
3 changes: 1 addition & 2 deletions fuzz/corpus/native/aegis-256
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
þKþ¿s;¢5å“Y
¿qwВ/°…'ô}8sé❡õ›H/ă°¢J÷Z +¯P†£®›6W¡ŠZ15Œ¡,”¨¿=P]WÏãY9m{ƒ¼)Ø+™ØWӝú@<ŠäWEú
ÀÚÛó«ídç0µîëê  3…®0‰Tš­³´”ÿ‘a+Qy‹9ƒ&¦­­À[Àgh\!ÁybROÊÛ¤MQô­pÒ©|¿ùθF¶ë$äÛsDK֋,ñ½>.û3Ý9\ü‚¤d.¤È?ï®æ‚Ýï'蘀¡Eçå>Sw}([å‚á
Expand Down
Binary file modified fuzz/corpus/native/cipher-aegis
Binary file not shown.
Binary file modified fuzz/corpus/native/cipher-aes256
Binary file not shown.
Binary file modified fuzz/corpus/native/cipher-ascon128
Binary file not shown.
Binary file modified fuzz/corpus/native/cipher-chacha20
Binary file not shown.
Binary file removed fuzz/corpus/native/cipher-rc4
Binary file not shown.
Binary file added fuzz/corpus/native/cipher-sqlcipher
Binary file not shown.
Binary file modified fuzz/corpus/native/damage-present-authenticated
Binary file not shown.
Binary file modified fuzz/corpus/native/damage-present-unauthenticated
Binary file not shown.
Binary file modified fuzz/corpus/native/key-passphrase
Binary file not shown.
Binary file modified fuzz/corpus/native/key-raw
Binary file not shown.
4 changes: 3 additions & 1 deletion fuzz/corpus/native/key-raw-with-salt
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
ŽÁÒ·÷º¯^#!ËÊí ‰n¤lÅ¢ HÚËD¢2™{.‰¼»"µqkDõ9& ¡û³ìÁµ#ƒðA*Wf/’r7 ¬hžaâ¿Ö¿§¹]÷·ß–%ÊGjòÎ(Z«°
Oç.žT±4[8:c¡[F˜×cÏôÈ»>D’Ük7§êÏ·€_Z™bÉ·rà4¡”8ïð
ÍñÍýÁÜykQc \ÄæQI/¥#»ça¦ö˜†ˆeæ3Ý5Ó¦·ƒqΆšá⿓TO%€©œÿáäyØÐ*ðµåo­ÚaÖkÙ\„‰ÝþEðÂBêp=ÙDÌjyÓίé{»ïÐGé+ޚ‡ó´Møg>XôÅE~CFWT)s™^Œ¯»_–µ¤ÔrYGï]ˆ,Ãçý¾\"^”ªíˆ2úßyJT:9Jú1®1˜*vôã»í}æJ…ŽË9šf¥i#J7 Jú.g Œ€ÜÛé¶eÜ郷„‰ÌBõ=
AH(z ¨=‚De\\Û´ºyoBx_’µ(è°¡FªÏópÑ9yT9Cc¢…K>m¹ô}àåi*޹¸¤ÕíMž;\ÈäQŠOÀH ±¯Òv­Š§¨
Binary file removed fuzz/corpus/native/legacy-set
Binary file not shown.
1 change: 0 additions & 1 deletion fuzz/corpus/native/page-size-set

This file was deleted.

Binary file modified fuzz/corpus/native/plaintext-header-present
Binary file not shown.
Binary file added fuzz/corpus/native/sqlcipher-hmac-off
Binary file not shown.
Binary file added fuzz/corpus/native/sqlcipher-hmac-sha1
Binary file not shown.
Binary file added fuzz/corpus/native/sqlcipher-sha1-damage
Binary file not shown.
Binary file modified fuzz/corpus/rekey/change-key
Binary file not shown.
2 changes: 1 addition & 1 deletion fuzz/corpus/rekey/cipher-aegis
Original file line number Diff line number Diff line change
@@ -1 +1 @@
JeEã<‹uéκm¡/ò·7¸8ºjîr#ãÅ¥óžÁÌz݋šîH¢½’JñáO‡/ƒ©Ö¢8¿m÷“h 
4§8ëëÑÓ y°bC·|į+æêž¯w륐Ðs^3…  ˜§CNÀB%j…x'ÂqK¿ø°ŽTÇ¡lµ±ÄÒ$I}ü/mqUô€`û‰‹·Ô%‡Z‘—e&g¡1WÜ^sZ¦@
Expand Down
Binary file modified fuzz/corpus/rekey/cipher-aes128
Binary file not shown.
Binary file modified fuzz/corpus/rekey/cipher-aes256
Binary file not shown.
3 changes: 2 additions & 1 deletion fuzz/corpus/rekey/cipher-ascon128
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
+ÓsÒȽ]™% ¡:œ<ÔÀt±e‹’5L~æˆõçñÇ˜Jc.<C}rûê×⃡ɱxsՏámî=ާ?Ú6ëÔFl̀&LJa úV˜éý|2MO —Tn–]Ÿ4<êÿ°+^´ÜEã\Í»¡öýù6ӌP¹ºƒ ÏŠÝ4¥Y.uwǎNó™7 z·ç–Œ o'Fø’ù?W>2Ô´r±%h(×¥š»&‡T;zŒ¯¶Ð Àœ ±‚'ìD¬,XU…­ˆ+o֊‘ž¬Áçß}$µ\vò»OBæ}­áý÷ÚTW, óÝ
¨ÿ¾UQ‘Øc5E¡¢,ÿ“{¯Vñ Àì.Å#X9à¼Ç_þþé”0”Æ,øõ éhb›çÒÆ/6­P:ÔÉ^QÃÈ¡#¤+¶W]ϹxœbŽ2,ïýœLY>fç[ðüؚ oÂ3Èîï±ÊhŒ¹ÒRŸ«ž¯šœŸDÑ%û
tÇE>ê½ÎS7pžƒjPü±6•b«‘È0øƒ‚Þl÷·´ïW#$53“ÁÀHäÀ-ڔ9½º7a¦}6°c½ÁýW}àŸŽNû}ÿüŸ”DeHödžzæßŸâM!;Wá÷™1R櫜D‘Ú-(¯Ú!~p ä”@^«W?÷dɲ“®ù¤T䐃GÿlçØFt§Áp°|î‰UÅ èuˆ”G;¨p›@lás¨=îÎ]œ±lÃ6(À–<;qpÒrµÄ¾þ™Â5ý÷C °ö’aZ]$çÂ|íÄ@øˆì¦ùπœ´H“0¦äwwf»>R›ÃFàP,Ë~àk|l„€É.܈Pb1ñK B’Ñ`X„ivår!è½AƒäUO@t‚ÆR 2Ö·Á£sd |0âTÌ`!º–gŸõuKyuq™YÜwz 3ëù‰F+ƒ¤$†eq…èòÁ¥ÖËñš¨þ»»„†q›E'º8ìñS‡9´5±ó>ÂTËyr}0†ìÏ\páŸÎ甘,7¹­S¶au~_™½÷֑¨nŽî”«™vdõÖg>ÜÝ~Œ­2ë¼ò‡¬_Æ#c© '…T¶‰`×÷™¨àèÍÝ'— ¼_© hÿxw'¾Ürpcù1¯‘Òn“*{쫌ƒm¤¯ékm'ÁH”
Expand Down
Binary file modified fuzz/corpus/rekey/cipher-chacha20
Binary file not shown.
3 changes: 0 additions & 3 deletions fuzz/corpus/rekey/cipher-rc4

This file was deleted.

1 change: 1 addition & 0 deletions fuzz/corpus/rekey/cipher-sqlcipher
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ˆ€ªÑã©&”îGטðY„üJU&É¹ÍæC¬Í›"õ›,Än HFãCzD@ØÚ¨ì·Õ^ïàšQºi(°¼’Þò(çGðxYƒªÔ%E;ݵu«ûÂ>x†ÕR),¯5"¾œ
3 changes: 2 additions & 1 deletion fuzz/corpus/rekey/decrypt
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
ÿäüÖ»æÛWÌ|\S›.nøŒJ²l.?> ßý—¢‡6™ö™ÈK­RþÏÝùKo%Ϗ¾Ã…¡”R"Ú2ˆt3œA‚çõV|÷Ö;oöQݫ䜹ºt1`}Æ· ¡Oi÷G¯¯
î ³ &u3èŠç‡õj
œ,Ò(•ÏT“Jç"IG:ð2åG1¬»‹ÍJÂf&Q8»;c¨ßL­ª"Ãlíï|òJÛ&/Ùqv:š™@(2ô/-øG¬EÐäs9« Þ
Binary file removed fuzz/corpus/rekey/legacy-set
Binary file not shown.
Binary file modified fuzz/corpus/rekey/many-ops-before
Binary file not shown.
Binary file modified fuzz/corpus/rekey/ops-after-empty
Binary file not shown.
Binary file modified fuzz/corpus/rekey/ops-after-present
Binary file not shown.
Binary file modified fuzz/corpus/rekey/plaintext-header-present
Binary file not shown.
Binary file modified fuzz/corpus/shared_cache/all-siblings-correct-key
Binary file not shown.
Binary file modified fuzz/corpus/shared_cache/many-siblings
Binary file not shown.
Binary file modified fuzz/corpus/shared_cache/mixed-correct-and-wrong
Binary file not shown.
3 changes: 2 additions & 1 deletion fuzz/corpus/shared_cache/no-siblings
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
ž]z¸×§8ǃ»¶#œ"´%;§@˜€RPÒ4$«¡%Sf¹¡ûßLî«Ê˜Åi’ÕrБÜý‚½-5¹Ù¥åÄâÞºj ðZ{{"ÇÌc벇ˆ2¹”¥ü`¸ï”z&YïŒgɾ
]ÄÙ
רèí]xÁr‰40Å~“bÿ £)“N˜l “Aþ·Öäò@àt®tF§òÒ!Y«™°^‹·•PtÒù
Binary file modified fuzz/corpus/shared_cache/one-sibling-correct-key
Binary file not shown.
Binary file modified fuzz/corpus/shared_cache/one-sibling-wrong-key
Binary file not shown.
Binary file modified fuzz/corpus/shared_cache/sibling-has-ops
Binary file not shown.
Binary file modified fuzz/corpus/wal/checkpoint-full
Binary file not shown.
Binary file modified fuzz/corpus/wal/checkpoint-none
Binary file not shown.
Binary file modified fuzz/corpus/wal/checkpoint-passive
Binary file not shown.
Binary file modified fuzz/corpus/wal/checkpoint-restart
Binary file not shown.
Binary file modified fuzz/corpus/wal/checkpoint-truncate
Binary file not shown.
Binary file modified fuzz/corpus/wal/cipher-aegis
Binary file not shown.
Binary file modified fuzz/corpus/wal/cipher-aes128
Binary file not shown.
Binary file modified fuzz/corpus/wal/cipher-aes256
Binary file not shown.
2 changes: 1 addition & 1 deletion fuzz/corpus/wal/cipher-ascon128
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Lପ/çVìß5P 훹ÂúךÜ&À õJt};ÊÅ͘•ƒ¯XO‡’ð]‘Œ #tËs³ßM î³þü(
«=XÁÛ~oÝQ§ÈI ¢¾‹s{̸N]ÆuùiÑV|=¬¾‚мSIšÃ»¢6•Ûó´±+óiTMÑ|hƒikH»Bw´óÂÇGø’òêí„ÉCƒÄã¯@*Nõˆ¤bÓxQ\D
Binary file modified fuzz/corpus/wal/cipher-chacha20
Binary file not shown.
4 changes: 0 additions & 4 deletions fuzz/corpus/wal/cipher-rc4

This file was deleted.

Binary file added fuzz/corpus/wal/cipher-sqlcipher
Binary file not shown.
Binary file modified fuzz/corpus/wal/legacy-wal-and-truncation
Binary file not shown.
Binary file modified fuzz/corpus/wal/legacy-wal-false
Binary file not shown.
Binary file modified fuzz/corpus/wal/legacy-wal-true
Binary file not shown.
Binary file modified fuzz/corpus/wal/many-ops
Binary file not shown.
Binary file modified fuzz/corpus/wal/wal-truncation-absent
Binary file not shown.
Binary file modified fuzz/corpus/wal/wal-truncation-present
Binary file not shown.
Loading
Loading