AAD-50 is an open-source NVMe sanitization framework that closes a 15-year verification gap in Linux nvme-cli. The standard nvme sanitize command returns immediately after acceptance without confirming the drive actually completed the background erasure. AAD-50 fixes this by polling NVMe Log Page 0x81 (Sanitize Status) after every cycle and refusing to advance until SSTAT=0x1 confirms hardware completion.
Implements a 50-cycle B→C→A phase matrix: 40 cycles NAND overwrite, 5 FTL block erase, 5 cryptographic key destruction. Generates a SHA-256 tamper-evident audit chain and PDF Certificate of Destruction aligned with NIST SP 800-88 Rev.2 Purge, IEEE 2883-2022, and IEEE 2883.1-2025.
Runs on Linux CLI, Windows CLI, and Windows GUI. Supports USB enclosure passthrough via 3-tier SCSI/ATA pathway.
Adopted into linux-nvme/nvme-cli master (PR #3438) in 14 days. Reviewed by Peter Gutmann (Gutmann 35-pass method). Confirmed by NVM Express Administration as recommended best practice.
Features
- Log Page 0x81 per-cycle polling — refuses to advance until SSTAT=0x1 confirms hardware completion after every single cycle
- 50-cycle B→C→A phase matrix — 40 cycles NAND overwrite, 5 FTL block erase, 5 cryptographic key destruction in the correct sequence
- SHA-256 tamper-evident audit chain — cryptographic hash covering all 50 cycle records, detects any post-run modification
- PDF Certificate of Destruction — auto-generated per drive, aligned with NIST SP 800-88 Rev.2 Purge and IEEE 2883.1-2025
- Linux CLI + Windows CLI + Windows GUI — three interfaces for different operator environments and workflows
- USB enclosure support — 3-tier SCSI/ATA passthrough (SG_IO → ATA SAT → blkdiscard fallback) for USB-attached NVMe drives
- Dry-run simulation mode — simulates all 50 cycles without issuing any hardware commands, safe for testing and validation
- SANICAP pre-flight verification — checks drive sanitize capability register before executing any cycles
- Adopted into linux-nvme/nvme-cli — PR #3438 merged into master in 14 days, ships in nvme-cli v3.0-b.1 with virtually every Linux distribution