Cross builds, packaging split, CI, fuzzing, supply-chain policy
build.sh builds the Rust targets with the Go-era names, refuses an OUT that is /, $HOME or the tree, checks static linking and names the Go targets Rust cannot build. packaging/package.sh builds and inspects packages without signing or publishing; repo.sh reuses it. Seven fuzz targets (one found a URL-parser panic, fixed here with a regression test), cargo-deny policy, CI for lint, tests on Linux/macOS/Windows, cross builds with qemu runs, supply chain and fuzzing. Compatibility specification and security notes. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
//! PEM decoding never panics, and decoding what it encoded is the identity.
|
||||
#![no_main]
|
||||
use vault::keyfile::{decode_pem, encode_pem, parse_body};
|
||||
|
||||
libfuzzer_sys::fuzz_target!(|data: &[u8]| {
|
||||
if let Some(body) = decode_pem(data) {
|
||||
let _ = parse_body(&body);
|
||||
assert_eq!(decode_pem(encode_pem(&body).as_bytes()), Some(body));
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user