spqr::utilspqr::serialize
Excluded (platform-specific, not needed for verification):
encoding::gf::check_accelerated-- excludedencoding::gf::accelerated-- excluded
Marked as opaque:
encoding::gf::mul2_u16-- opaqueencoding::gf::MulAssign<&GF16> for GF16-- opaqueencoding::polynomial::PolyDecoder::decoded_message-- opaque
Modified source (replaced iterator combinators / early returns with index loops):
encoding::gf::GF16::div_impl-- avoid opaque tuple returnencoding::polynomial::Poly::compute_at-- zip to index loopencoding::polynomial::Poly::lagrange_sum-- zip to index loopencoding::polynomial::Poly::from_complete_points-- map/collect to push loopencoding::polynomial::Poly::deserialize-- chunks_exact to while loopencoding::polynomial::PolyEncoder::from_pb-- flatten if/else, remove closureencoding::polynomial::PolyDecoder::from_pb-- hoist validation before loop
Excluded:
log-- log crate internals cause Aeneas internal error (arrow types in__private_api)
Opaque (already #[hax_lib::opaque] in source):
potentially_fix_state_incorrectly_encoded_by_libcrux_issue_1275-- containslog::info!/log::warn!via#[cfg(not(hax))]flip_endianness_of_encapsulation_state-- helper for above
Aeneas reports 2 cosmetic errors (log macro internals) but output is clean: 0 sorry, 139 transparent functions.
Charon hangs at MIR analysis level due to deep generic trait hierarchies in external crypto crates. Config flags (--opaque, --exclude, --start-from) have no effect since the hang occurs before they are applied. Upstream Charon issue.
spqr::kdf-- Charon hangs (hkdf, sha2)spqr::chain-- Charon hangs (depends on kdf)spqr::authenticator-- Charon hangs (libcrux_hmac)spqr::v1-- Charon hangs (depends on authenticator, kdf, incremental_mlkem768)spqr::proto-- Charon hangs (prost-generated code)