Initial implementation of the DateKeys Protocol v0.8.1
Reference implementation in Go, built from the implementation plan
(milestones M0 to M5): datekey, profile, provider, codec, agewrap,
extension, capsule, accesskey, the datekeys CLI, official vectors and
fixtures, the mutation corpus, fuzz targets, interop and live tests,
CI workflows, traceability and policy documents.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2 weeks ago
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
# Runs every parser fuzz target for the given duration each (default 20s).
|
|
|
|
|
# FUZZ_PARALLEL limits the number of fuzzing workers; each one keeps a
|
|
|
|
|
# 100 MB shared-memory file in the temporary directory.
|
|
|
|
|
# FUZZ_MINIMIZE is the time spent minimising each new input (default 0):
|
|
|
|
|
# minimisation stalls FuzzInspect for minutes, so short runs skip it; a
|
|
|
|
|
# failing input is still saved under testdata/fuzz as found.
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
duration="${1:-20s}"
|
|
|
|
|
parallel=(-fuzzminimizetime="${FUZZ_MINIMIZE:-0}")
|
|
|
|
|
if [[ -n "${FUZZ_PARALLEL:-}" ]]; then
|
|
|
|
|
parallel+=(-parallel "$FUZZ_PARALLEL")
|
|
|
|
|
fi
|
|
|
|
|
targets=(
|
|
|
|
|
"./codec FuzzDecoder"
|
|
|
|
|
"./codec FuzzWalk"
|
|
|
|
|
"./codec FuzzPeek"
|
|
|
|
|
"./codec FuzzUnmarshal"
|
|
|
|
|
"./codec FuzzEncodeImpliesWalk"
|
|
|
|
|
"./extension FuzzDecodeArray"
|
Initial implementation of the DateKeys Protocol v0.8.1
Reference implementation in Go, built from the implementation plan
(milestones M0 to M5): datekey, profile, provider, codec, agewrap,
extension, capsule, accesskey, the datekeys CLI, official vectors and
fixtures, the mutation corpus, fuzz targets, interop and live tests,
CI workflows, traceability and policy documents.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2 weeks ago
|
|
|
"./profile FuzzDecode"
|
|
|
|
|
"./datekey FuzzParse"
|
|
|
|
|
"./agewrap FuzzStanzas"
|
|
|
|
|
"./accesskey FuzzDecode"
|
|
|
|
|
"./capsule FuzzParsePrelude"
|
|
|
|
|
"./capsule FuzzDecodeHeader"
|
|
|
|
|
"./capsule FuzzDecodeControl"
|
|
|
|
|
"./capsule FuzzInspect"
|
|
|
|
|
"./capsule FuzzEncodeImpliesDecode"
|
Initial implementation of the DateKeys Protocol v0.8.1
Reference implementation in Go, built from the implementation plan
(milestones M0 to M5): datekey, profile, provider, codec, agewrap,
extension, capsule, accesskey, the datekeys CLI, official vectors and
fixtures, the mutation corpus, fuzz targets, interop and live tests,
CI workflows, traceability and policy documents.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2 weeks ago
|
|
|
)
|
|
|
|
|
for t in "${targets[@]}"; do
|
|
|
|
|
read -r pkg name <<<"$t"
|
|
|
|
|
echo "== $pkg $name ($duration)"
|
|
|
|
|
go test -run='^$' -fuzz="^${name}\$" -fuzztime="$duration" "${parallel[@]}" "$pkg"
|
|
|
|
|
done
|