nwipe
github.com/martijnvanbrummelen/nwipe Cross-platformC-based secure light-weight disk eraser, operated through the easy-to-use CLI or a GUI interface.
- Homepage: github.com/martijnvanbrummelen/nwipe
- GitHub: github.com/martijnvanbrummelen/nwipe
- Web info: web-check.xyz/results/github.com
nwipe Source Code
Author
Description
nwipe secure disk eraser
Homepage
License
GPL-2.0
Created
06 Sept 13
Last Updated
24 Feb 26
Latest version
Primary Language
C
Size
9,468 KB
Stars
1,102
Forks
119
Watchers
1,102
Language Usage
Star History
Top Contributors
-
@PartialVolume (805)
-
@martijnvanbrummelen (73)
-
@Knogle (35)
-
@ggruber (22)
-
@abeverley (14)
-
@Firminator (8)
-
@infrastation (7)
-
@DimitriPapadopoulos (7)
-
@Legogizmo (6)
-
@andreasheil (5)
-
@louib (5)
-
@vuntz (4)
-
@xambroz (3)
-
@aytey (2)
-
@charles-dyfis-net (2)
-
@dmshaw (2)
-
@deamen (2)
-
@desertwitch (2)
-
@Awire9966 (1)
-
@fthobe (1)
-
@Polynomial-C (1)
-
@sporqist (1)
-
@ndowens (1)
-
@nbassler (1)
-
@NoNameForMee (1)
-
@FreeMinded (1)
-
@kelderek (1)
Recent Commits
-
PartialVolume (16 Feb 26)
Merge pull request #717 from PartialVolume/restructure_PDF_source_files Restructure PDF source files. We now have a separate source file for each type of PDF created.
-
PartialVolume (16 Feb 26)
create different .c files, one file for each type of pdf. create_pdf.c holds common functions that all PDF's might use and the functions that create each type of pdf will be called from here. create_single_disc_pdf.c contains the function that creates the one disc per PDF certificate.
-
PartialVolume (03 Feb 26)
Update nwipe.8 Update date
-
PartialVolume (02 Feb 26)
Update nwipe.8 Updated release date
-
PartialVolume (02 Feb 26)
Update CHANGELOG.md Update v0.40 release notes
-
PartialVolume (02 Feb 26)
Merge pull request #709 from PartialVolume/update-host-tag-selection-for-pdf Added an option in the config menu to toggle visibility of host UUID & host S/N in the PDF.
-
PartialVolume (02 Feb 26)
Added an extra option in the config menu to toggle visability of host UUID & host S/N in the PDF. Also changed the functionality of Tag visability. If the user enters a custom tag in the config menu it will automatically be displayed in the PDF, if you remove the custom tag, then the tag field disappears from the PDF. The command line option --pdftag, now only enables the tag field. To enable visibility of host UUID & host S/N this must be enabled in the config menu. Any change is saved to nwipe.conf and is reinstated next time nwipe starts.
-
PartialVolume (04 Jan 26)
Merge pull request #706 from Knogle/further-additions-for-auto-selection-for-prng-and-benchmark-no-gui-option Further additions for auto selection for prng and benchmark no gui option
-
PartialVolume (04 Jan 26)
Update prng.c Removed an unnecessary "Testing ....prng" printf to improve output clarity.
-
Fabian Druschke (04 Jan 26)
Removed annoying Testing PRNG.. printfs during init
-
Fabian Druschke (03 Jan 26)
options: make PRNG auto-selection the default, add manual/default opt-out PRNG auto-selection is now enabled by default when no --prng option is specified. On startup, nwipe benchmarks the available PRNGs and selects the fastest one for the current hardware. To disable auto-selection, a new opt-out mode is introduced: --prng=default (alias: --prng=manual) This keeps the previous behaviour by using the built-in, CPU-based PRNG selection without running benchmarks. Explicit PRNG selections (e.g. --prng=isaac, --prng=aes_ctr_prng) also disable auto-selection automatically. Benchmark timing defaults are adjusted accordingly: - auto-selection defaults to a short benchmark run - --prng-benchmark-only keeps a longer default duration This improves out-of-the-box performance while preserving full user control and backwards compatibility.
-
Fabian Druschke (03 Jan 26)
prng: print benchmark progress live and show PRNG activity immediately The PRNG auto-selection benchmark previously ran silently and only printed results at the end. As a result, there was a noticeable delay (several seconds) between starting nwipe and any visible output, making it appear as if the program was stalled. This change moves the output into the benchmark loop itself: - Print "Analysing PRNG performance:" immediately when benchmarking starts - Show a classic rotating cursor (-\|/) while benchmarks are running - Print "Testing <PRNG> performance..." before each PRNG is benchmarked - Print each PRNG’s result (MB/s or failure) immediately after it finishes The existing nwipe_prng_benchmark_all() API is preserved for compatibility. A new nwipe_prng_benchmark_all_live() function provides the live output behaviour and is used for --prng=auto. This makes startup progress visible, improves UX, and aligns behaviour with the original maintainer’s expectations.
-
PartialVolume (03 Jan 26)
Merge pull request #700 from Knogle/auto-selection-for-prng-and-benchmark-no-gui-option prng, gui: add PRNG benchmarking, auto-selection and CLI support
-
PartialVolume (03 Jan 26)
Merge pull request #705 from PartialVolume/require-strict-long-options Require strict input of long form options This fixes potential issues caused by getopt_long() when it allows abbreviated input of the long form options. For instance, previously if a user had accidentally typed --auto, because maybe they had meant to type --autopoweroff or prng=auto, getopt_long() would have allowed --auto as a valid option but the code would have interpreted --auto as meaning -autonuke with very unfortunate consequences in terms of wiping all the discs attached to your system. Not allowing strict parsing of options has been an issue in getopt_long() since 2008. However the changes I have made in this code now prevent any abbreviations to long form options and expect strict adherence to the options as presented in nwipe's help page (nwipe --help) and man pages.
-
PartialVolume (03 Jan 26)
Require strict input of long form options This fixes potential issues caused by getopt_long() when it allows abbreviated input of the long form options. For instance, previously if a user had accidentally typed --auto, because maybe they had meant to type --autopoweroff or prng=auto, getopt_long() would have allowed --auto as a valid option but the code would have interpreted --auto as meaning -autonuke with very unfortunate consequences in terms of wiping all the discs attached to your system. Not allowing strict parsing of options has been an issue in getopt_long() since 2008. However the changes I have made in this code now prevent any abbreviations to long form options and expect strict adherence to the options as presented in nwipe's help page (nwipe --help) and man pages.
-
PartialVolume (02 Jan 26)
Merge pull request #704 from PartialVolume/fix_sync_occuring_in_directIO_when_no_command_line_arguments Fix_direct I/O, fdatasync
-
PartialVolume (02 Jan 26)
Fix_direct I/O, fdatasync This fixes the following problems. 1. Fdatasync is incorrectly called when in direct I/O mode when no --directio command line option is present, i.e when it automatically determines whether direct or cached should be used. 2. When multiple drives are wiped if any of those drives do not support direct I/O then they would have would have had fdatasync incorrectly disabled. There was no record of I/O mode on a per drive basis. 3. Direct I/O on a static pass always called fdatasync as there was no code present to set the SyncRate to 0 when in direct I/O mode.
-
PartialVolume (29 Dec 25)
Check autonuke and nogui for valid values Because autonuke can do a lot of damage we need to be sure it's value is 1 before letting it auto wipe. The previous code was assuming any non zero value was TRUE. In the case of a bug or memory corruption this could cause an unintended auto wipe of all discs.
-
Fabian Druschke (31 Dec 25)
Prints PRNG benchmark results to stdout
-
PartialVolume (30 Dec 25)
Improve str_truncate Check start_column < wcols and issue error Reduce output length by 1 to take care a situation where output_length maybe provided by strlen which excludes the null terminator and sizeof which may or may count the terminator.
-
PartialVolume (31 Dec 25)
Merge pull request #702 from PartialVolume/improve_str_truncate_function Improve str_truncate
-
PartialVolume (30 Dec 25)
Improve str_truncate Check start_column < wcols and issue error Reduce output length by 1 to take care a situation where output_length maybe provided by strlen which excludes the null terminator and sizeof which may or may count the terminator.
-
PartialVolume (30 Dec 25)
Merge pull request #701 from PartialVolume/improve_integrity_of_autonuke_option_selection Check autonuke and nogui for valid values
-
PartialVolume (29 Dec 25)
Check autonuke and nogui for valid values Because autonuke can do a lot of damage we need to be sure it's value is 1 before letting it auto wipe. The previous code was assuming any non zero value was TRUE. In the case of a bug or memory corruption this could cause an unintended auto wipe of all discs.
-
Fabian Druschke (18 Dec 25)
prng, gui: add PRNG benchmarking, auto-selection and CLI support This change introduces a comprehensive PRNG benchmarking and auto-selection framework, available both in the ncurses GUI and via the command line. A new interactive “PRNG Benchmark” menu (key: 'b') has been added to the GUI. It benchmarks all available PRNG engines using a RAM-only workload and displays a sorted leaderboard showing sustained throughput in MB/s. In addition, a new automatic PRNG selection mode is implemented: --prng=auto When enabled, nwipe benchmarks all available PRNGs at startup and automatically selects the fastest PRNG for the current hardware. This selection happens before device scanning and does not alter any wipe semantics or security guarantees. For non-GUI and diagnostic use, a standalone benchmark mode is also added: --prng-benchmark This runs the same RAM-only PRNG benchmark, prints a sorted leaderboard to stdout and the log, and exits without scanning or wiping any devices. It is fully compatible with --nogui. Key features: - Unified PRNG benchmark core shared by GUI, auto-selection and CLI modes - RAM-only benchmark using aligned multi-megabyte buffers - Deterministic in-memory seeding (benchmark-only, not used for wiping) - Sorted leaderboard showing MB/s per PRNG - Automatic fastest-PRNG selection via --prng=auto (opt-in) - Interactive GUI benchmark view with dimmed informational styling - No impact on wipe logic, data security or default behaviour This change improves transparency, diagnostics and performance tuning across a wide range of hardware platforms, while keeping all new behaviour explicitly opt-in.
-
PartialVolume (18 Dec 25)
Merge pull request #699 from PartialVolume/update_prng_text Reformat layout of PRNG help text.
-
PartialVolume (18 Dec 25)
Reformat layout of PRNG help text. The help text for all prngs was formatted so that it is consistent in terms of layout and positioning with the help text as displayed by the methods help text. Specifically so that it still remains legible with a 80x25 legacy (nomodset) terminal. Also added the ability to run the prng benchmark from within the prng selection screen.
-
PartialVolume (17 Dec 25)
Merge pull request #697 from Knogle/device-pci-root-tree-implement gui: add device topology view with sysfs tree (ACS line drawing)
-
PartialVolume (17 Dec 25)
Update gui.c Removed redundant snprintf commands
-
PartialVolume (16 Dec 25)
Merge pull request #698 from Knogle/benchmark-mode gui: add interactive PRNG benchmark mode (RAM-only throughput)
nwipe Website
Website
GitHub: Let’s build from here · GitHub
GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and features, power your CI/CD and DevOps workflows, and secure code before you commit it.
Redirects
Does not redirect
Security Checks
All 66 security checks passed
Server Details
- IP Address 140.82.112.4
- Hostname lb-140-82-112-4-iad.github.com
- Location San Francisco, California, United States of America, NA
- ISP GitHub Inc.
- ASN AS36459
Associated Countries
-
US
Safety Score
Website marked as safe
100%
Blacklist Check
github.com was found on 0 blacklists
- ThreatLog
- OpenPhish
- PhishTank
- Phishing.Database
- PhishStats
- URLhaus
- RPiList Not Serious
- AntiSocial Blacklist
- PhishFeed
- NABP Not Recommended Sites
- Spam404
- CRDF
- Artists Against 419
- CERT Polska
- PetScams
- Suspicious Hosting IP
- Phishunt
- CoinBlockerLists
- MetaMask EthPhishing
- EtherScamDB
- EtherAddressLookup
- ViriBack C2 Tracker
- Bambenek Consulting
- Badbitcoin
- SecureReload Phishing List
- Fake Website Buster
- TweetFeed
- CryptoScamDB
- StopGunScams
- ThreatFox
- PhishFort
Website Preview
nwipe Reviews
More Data Erasers
-
Allows you to completely remove sensitive data from your hard drive by overwriting it several times with carefully selected patterns.
-
Easy to use, but with some advanced features, including custom wipe patterns. Data Sanitation Methods: AFSSI-5020, DoD 5220.22-M, and Random Data.
-
Microsoft Secure Delete is a CLI utility, uses DoD 5220.22-M.
-
File, folder and drive portable eraser for Windows. Bundled with other tools to scan, analyze, and wipe, and other traces that were left behind. Includes context menu item, recycle bin integration.
-
Darik's Boot and Nuke ("DBAN") is a self-contained boot disk that securely wipes the hard disks of most computers. DBAN will automatically and completely delete the contents of any hard disk that it can detect, which makes it an appropriate utility for bulk or emergency data destruction. DBAN is the free edition of Blanco, which is an enterprise tool designed for legal compliance.
Not Open Source -
A CLI utility that can be used to securely delete files and devices, to make them extremely difficult to recover.
-
CLI utility for securely removing files, directories and whole disks, works on Linux, BSD and MacOS.
-
Proprietary, closed-source suite of forensic data tools for mobile. The data eraser allows for both Android and iOS to be fully wiped, through connecting them to a PC.
Not Open Source
About the Data: nwipe
API
You can access nwipe's data programmatically via our API.
Simply make a GET request to:
https://api.awesome-privacy.xyz/utilities/data-erasers/nwipe The REST API is free, no-auth and CORS-enabled. To learn more, view the Swagger Docs or read the API Usage Guide.
About the Data
Beyond the user-submitted YAML you see above, we also augment each listing with additional data dynamically fetched from several sources. To learn more about where the rest of data included in this page comes from, and how it is computed, see the About the Data section of our About page.
Share nwipe
Help your friends compare Data Erasers, and pick privacy-respecting software and services.
Share nwipe and Awesome Privacy with your network!