Giter Site home page Giter Site logo

vwipe's Introduction

vwipe

GitHub CI badge GitHub CI badge

vwipe is a program that will securely erase disks. It can operate as both a command line tool without a GUI or with an ncurses GUI as shown in the example below. It can wipe multiple disks simultaneously.

This is a fork of nwipe, having the goal to use vector optimized PRNG implementations, to improve speed.

The user can select from a variety of recognised secure erase methods which include:

  • Zero Fill - Fills the device with zeros, one round only.
  • RCMP TSSIT OPS-II - Royal Candian Mounted Police Technical Security Standard, OPS-II
  • DoD Short - The American Department of Defense 5220.22-M short 3 pass wipe (passes 1, 2 & 7).
  • DoD 5220.22M - The American Department of Defense 5220.22-M full 7 pass wipe.
  • Gutmann Wipe - Peter Gutmann's method (Secure Deletion of Data from Magnetic and Solid-State Memory).
  • PRNG Stream - Fills the device with a stream from the PRNG.
  • Verify only - This method only reads the device and checks that it is all zero.
  • HMG IS5 enhanced - Secure Sanitisation of Protectively Marked Information or Sensitive Information

It also includes the following pseudo random number generators:

  • Mersenne Twister
  • ISAAC

It is a fork of the dwipe command used by Darik's Boot and Nuke (dban). vwipe is included with partedmagic and ShredOS if you want a quick and easy bootable CD or USB version.

vwipe was created out of a need to run the DBAN dwipe command outside of DBAN, in order to allow its use with any host distribution, thus giving better hardware support.

Example wipe

Compiling & Installing

vwipe requires the following libraries to be installed:

  • ncurses
  • pthreads
  • parted

Debian & Ubuntu prerequisites

If you are compiling vwipe from source, the following libraries will need to be installed first:

sudo apt install \
  build-essential \
  pkg-config \
  automake \
  libncurses5-dev \
  autotools-dev \
  libparted-dev \
  dmidecode

Fedora prerequisites

sudo bash
dnf update
dnf groupinstall "Development Tools"
dnf groupinstall "C Development Tools and Libraries"
yum install ncurses-devel
yum install parted-devel
yum install dmidecode

Note. dmidecode is optional, it provides SMBIOS/DMI host data to stdout or the log file.

Compilation

For a development setup, see the hacking section below.

First create all the autoconf files:

./init.sh

Then compile & install using the following standard commands:

./configure
make
make install

Then run vwipe !

cd src
sudo ./vwipe

or

sudo vwipe

Hacking

If you wish to submit pull requests to this code we would prefer you enable all warnings when compiling. This can be done using the following compile commands:

./configure --prefix=/usr CFLAGS='-O0 -g -Wall -Wextra'
make
make install

The -O0 -g flags disable optimisations. This is required if you're debugging with gdb in an IDE such as Kdevelop. With these optimisations enabled you won't be able to see the values of many variables in vwipe, not to mention the IDE won't step through the code properly.

The -Wall and -Wextra flags enable all compiler warnings. Please submit code with zero warnings.

Also make sure that your changes are consistent with the coding style defined in the .clang-format file, using:

make format

You will need clang-format installed to use the format command.

Once done with your coding then the released/patch/fixed code can be compiled, with all the normal optimisations, using:

./configure --prefix=/usr && make && make install

Bugs

Bugs can be reported on GitHub: https://github.com/martijnvanbrummelen/vwipe

License

GNU General Public License v2.0

vwipe's People

Contributors

partialvolume avatar martijnvanbrummelen avatar abeverley avatar infrastation avatar legogizmo avatar vuntz avatar charles-dyfis-net avatar dmshaw avatar knogle avatar nbassler avatar kelderek avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.