rust-fips204-ffi 0.5.0-1
Package Information
| Description | Library for FIPS 204 (ML-DSA) This package contains a dynamic library (shared object) implementing the Module-Lattice-Based Digital Signature Standard, also known as ML-DSA or FIPS 204. It is written in pure Rust with minimal and mainstream dependencies, and without any unsafe code. All three security parameter sets are fully functional and tested. The implementation's key- and signature-generation functionality focuses on correctness, simplicity, security, and a stable API. See <https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf> for a full description of the target functionality. |
|---|---|
| Maintainer | Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> |
| Changed By | Daniel Kahn Gillmor <dkg@fifthhorseman.net> |
| Distribution | unstable |
| Architecture | any |
| VCS | git: https://salsa.debian.org/rust-team/debcargo-conf.git [src/fips204-ffi] (browse) |
| Tracker | https://tracker.debian.org/pkg/rust-fips204-ffi |
| Uploaded | 4 hours ago |
New Package Report
.changes
| Source | rust-fips204-ffi |
|---|---|
| Version | 0.5.0-1 |
| Changed-By | Daniel Kahn Gillmor <dkg@fifthhorseman.net> |
| Architecture | source amd64 |
| Distribution | unstable |
| Date | Tue, 27 Oct 2026 00:23:03 -0400 |
Changelog
rust-fips204-ffi (0.5.0-1) unstable; urgency=medium . * Package fips204-ffi 0.5.0 from crates.io using debcargo 2.8.4
.dsc
| Section | libs |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | libfips204-0 deb libs optional arch=any libfips204-dev deb libdevel optional arch=any python3-fips204 deb python optional arch=any |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: fips204-ffi Upstream-Contact: Daniel Kahn Gillmor <dkg@fifthhorseman.net> Source: https://github.com/integritychain/fips204 Files: * Copyright: 2026 Daniel Kahn Gillmor <dkg@fifthhorseman.net> 2026 Eric Schorn <eschorn@integritychain.com> License: MIT or Apache-2.0 Files: debian/* Copyright: 2026 Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> 2026 Daniel Kahn Gillmor <dkg@fifthhorseman.net> License: MIT or Apache-2.0 License: Apache-2.0 Debian systems provide the Apache 2.0 license in /usr/share/common-licenses/Apache-2.0 License: MIT Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: . The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. . THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
DFSG Assistant LLM REVIEW 1 blocker, 1 important, 1 minor
This is an LLM based review using a Debian Inference based workflow. It was not written by a member of the DFSG team and has not been checked by one. It is not a decision on the package: it may be wrong, and it may have missed things.
Reviewed 2 hours ago.
Report
DFSG NEW review for rust-fips204-ffi version 0.5.0-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: No - Packaging is of good quality: No
- Issues: 1 blocker, 1 important, 1 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
The code is dual-licensed MIT/Apache-2.0 (license = "MIT OR Apache-2.0" in Cargo.toml, with both full licence texts shipped), which is DFSG-free and compatible, and no non-free terms or built/vendored files were found. debian/copyright is DEP-5 with the correct Format URL and the full MIT text, but it does not reproduce the Copyright (c) 2020-2022 RustCrypto Developers notice in LICENSE-MIT, so it is incomplete.
Packaging
The layout is sound (compat 13, dh, 3.0 (quilt) with no patches, a symbols file matching the 19 exported functions, a Multi-Arch runtime package, autopkgtests), but Build-Depends-Arch omits the pastey crate that src/lib.rs imports, which will stop the build, and the clean target leaves the C test binaries the build writes into tests/.
Issues
1. [blocker] [licensing] debian/copyright does not name RustCrypto Developers, the copyright holder in LICENSE-MIT
- Files:
LICENSE-MIT:1,debian/copyright:6-9 - Basis: checked, in the package or with a reference tool
- Evidence:
LICENSE-MIT:1:Copyright (c) 2020-2022 RustCrypto Developers.debian/copyrightFiles: *lists only2026 Daniel Kahn Gillmorand2026 Eric Schorn; the generateddebian/copyright.debcargo.hintstill has aFiles: LICENSE-MITstanza withCopyright: 2020-2022 RustCrypto Developers. - Problem: Every copyright notice found in the tree must be represented in debian/copyright (Policy 12.5; copyright-format 1.0 section 5). As shipped, the
Files: *stanza asserts a holder list that contradicts the notice in LICENSE-MIT; the RustCrypto holder was removed when the overlay replaced the debcargo-generated stanza. - Fix: Add
2020-2022 RustCrypto Developersto theFiles: *Copyright list, or restore aFiles: LICENSE-MITstanza withCopyright: 2020-2022 RustCrypto DevelopersandLicense: MIT.
2. [important] [packaging] Build-Depends-Arch omits librust-pastey-dev, which src/lib.rs imports, so the build will fail
- Files:
debian/control:6-11,Cargo.toml:50-51,src/lib.rs:1 - Basis: checked, in the package or with a reference tool
- Evidence:
src/lib.rs:1:use pastey::paste;;Cargo.toml:50-51:[dependencies.pastey]/version = ">=0.1, <0.3";debian/controlBuild-Depends-Arch lists nolibrust-pastey*, whiledebian/control.debcargo.hinthaslibrust-pastey+default-dev (<< 0.3)and(>= 0.1). - Problem: debian/rules builds with
/usr/share/cargo/bin/cargo build, whoseprepare-debianconfig replaces crates.io with the local directory registry/usr/share/cargo/registry. That registry contains only crates installed via Build-Depends, so the non-optionalpasteydependency (used unconditionally in the library) cannot be resolved and cargo aborts withno matching package named pastey found. - Fix: Add
librust-pastey+default-dev (>= 0.1), librust-pastey+default-dev (<< 0.3)to Build-Depends-Arch; the archive has librust-pastey-dev 0.2.3-1, which satisfies both bounds.
3. [minor] [packaging] clean does not remove the C test binaries that the build writes into tests/
- Files:
debian/rules:27-28,debian/clean:1-5,tests/Makefile:83,tests/Makefile:91-106 - Basis: checked, in the package or with a reference tool
- Evidence:
debian/rules:27-28:execute_after_dh_auto_test:/cd tests && make;makecompilesbaseline-44,baseline-65,baseline-87,link-twoandcplusplusin tests/ (tests/Makefile:91,102,106), whiledebian/cleanlists onlytarget/,.cargo-checksum.json,debian/cargo_registry/,debian/cargo_home/,registry/. - Problem: Policy 4.9 requires the clean target to undo any effects of build and binary. After a build,
debian/rules cleanleaves those test executables in the source tree, so the tree is no longer pristine anddpkg-source -b(or a rebuild from the cleaned tree) reports unrepresentable changes to files that no patch accounts for. - Fix: Add
tests/baseline-*,tests/link-two,tests/cplusplus(andtests/nist-tests.c,tests/nist-testsin case the NIST vectors are supplied) to debian/clean, or add anoverride_dh_cleanthat runs$(MAKE) -C tests clean.
Verified
- debian/copyright was read in full: DEP-5, exact Format URL, MIT text included, Apache-2.0 referenced from /usr/share/common-licenses/Apache-2.0; no non-free wording (non-commercial, no-modification, field-of-use, NC/ND) exists anywhere in the tree.
- The whole upstream tree (21 files, excluding .pc) was inventoried and grepped for Copyright/(C)/©/SPDX/licence wording; the only licence texts are LICENSE-MIT (MIT) and LICENSE-APACHE (Apache-2.0), Cargo.toml declares
MIT OR Apache-2.0, and there are no binaries, minified files, PDFs, firmware or vendored third-party sources (Cargo.lock references registry crates only). - The prescan's single item, the
RustCrypto Developersnotice in LICENSE-MIT, is reported as issue 1; the other files (src/lib.rs, fips204.h, build.rs, python/fips204.py, python/test/nist.py, python/README.md, pyproject.toml, tests/*.c, *.cc, *.py, Makefile) carry no separate copyright notice and are covered by theFiles: *MIT-or-Apache-2.0 stanza. - All debian/ files were read in full except the ignored cargo-checksum.json: control, rules, changelog (0.5.0-1, unstable), clean, install/link/symbols files, debcargo.toml, tests/control, upstream/metadata and source/format (3.0 (quilt), empty patches directory). Standards-Version 4.7.4 matches Policy 4.7.4.1; Vcs-Git/Vcs-Browser/Homepage are present; there are no maintainer scripts to review.
- The .symbols file names exactly the 19 functions exported by src/lib.rs (three parameter sets x six functions plus ml_dsa_populate_seed). The runtime library is installed as libfips204.so.0 in libfips204-0 (Multi-Arch: same) and libfips204-dev holds only fips204.h plus the libfips204.so -> libfips204.so.0 symlink; dh_install(1) and dh_link(1) both support ${DEB_HOST_MULTIARCH} substitution at compat 13.
- debhelper behaviour was checked in its sources: no build system is auto-selected for this tree (no top-level Makefile, setup.py or CMakeLists.txt, and cargo is not in dh's autoselect lists), so dh_auto_install does not run
cargo install, and dh skips the execute_after_dh_auto_test hook under nocheck at compat 13. - apt-cache confirms librust-pastey-dev 0.2.3-1, librust-rand-core-0.6-dev 0.6.4-5, rustc 1.97.1 (satisfying >= 1.85), dh-sequence-cargo (dh-cargo 34) and dh-sequence-python3 (dh-python 7.20261019) exist in the archive.
- uscan found the packaged version as the newest upstream release (upstream
0.5.0, packaged0.5.0). - Every pointer of
debian/copyrightto /usr/share/common-licenses names a file that is there (Apache-2.0).
Not confirmed
- librust-fips204-0.5+default-dev is not in the archive lists: unstable has librust-fips204-dev 0.4.6-1, which provides only 0.4 versioned names, and apt-cache sees no NEW upload providing 0.5. The build and the second autopkgtest (
Depends: librust-fips204-dev, vectors read from /usr/share/cargo/registry/fips204-0.5.0/tests/nist_vectors) need rust-fips204 0.5.0 to be accepted with this package; a build would show whether it accompanies the upload. - Whether the C tests run by
cd tests && makeand the autopkgtest commands pass (including the -Werror compiles and the keyGen vectors being present in librust-fips204-dev) cannot be checked without building and running them. - File modes are not visible to this review, so the executable bits of debian/scripts/post-build, which debian/rules runs directly, and of python/test/nist.py, which the autopkgtest runs as
./test/nist.py, could not be confirmed.
Proposed changes
None.
Uploader's response to the LLM review
Waiting for the uploader's response until , because the review found serious issues.