aboutsummaryrefslogtreecommitdiffstats
path: root/CHANGES
blob: 99bb15e69a6f3376ac34d6e47920f495bd965ffd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
2.3.1:
fixed Makefile bug! Running make uninstall removed target bin directory.

2.3:

DEFAULTS!
the default is now one single random pass  <-- MAJOR CHANGE
special files are no longer deleted by default

support for wiping char devices, such as tape drives

percentage reporting improved (thanks to Jason Tackaberry for patch)

cleanup and exit upon SIGINT

each wiped file prints on a seperate line

skip unnecessary fdatasync()s, unless you want the extra accuracy on the % shown (-e option)

call fsync() on the file after name wipe, in addition to fsync on the directory

if fdatasync() fails, try for O_SYNC and only complain once per file

fixed some off-by-ones
fixed percentages for non-static wipes

2.2.1:
added largefile support for linux and solaris (tested on linux)

fixed drill_down(). it was using the wrong length to null term the string

2.2.0:
removed debian stuff (deprecated)
stow, rpm, or rpm+alien is recommended.

now builds on solaris 9

cleaned up makefile

fixed type mismatch in blkdev.c, broke on big endian archs

directories are now renamed
try to fsync() dirs

you can now wipe to stdout

write() wrapper is now more robust

checks the termal's width, for proper line clear and truncation

various minor bugs and typos fixed

Suported:
Linux, GNU, NetBSD, Solaris 9 (SunOS 5.9)

Doesn't build:
Mac OS 10.2

2.1.1:
typo in Makefile.in (Ricardo Branco)

2.1:
fixed percent reporting (James P. Rutledge)

fixed block dev support (Matthew Kettler)

typos (David M. DesRosiers)

updated autoconf scripts
wipe will now build on s/390 (Jochen Schmidt)

2.0.1:
don't rename over an existing file (Tomislav Greguric)

fix debian changelog (pawan)

2.0:
dedicated to my dog, Cindy.

split wipe.c into seperate modules

removed raw /dev/urandom passes

switched back to the Mersenne Twister - it's much faster and uses much
less entropy from /dev/urandom

changed a lot of cmd line options, so be sure to read the man page or
wipe -h

added proper syscall wrappers

improved per-file fault tolerance - a failure during wiping of one
file doesn't cause the rest to be aborted

1.2.2:
destroy_blkdev() was trying an ioctl before opening the fd
block device wiping appears to work in linux; BSD (and other
unixes) are still untested. let me know if you try it on
something other than linux.

silent mode is now silent

fixed xor loop

1.2.1:
fixed missing '_H' in includes.h
thanks to Peter Monta

1.2.0:
updated INSTALL

fixed some bugs which would have effected block device
support - block device support is still untested

adopted new versioning scheme

fixed PATH_MAX and NAME_MAX; should build on solaris now

fixed verbose pathname + percent display

documented secure levels in the man page (and changed them a
little)

fixed hash io code (hashin_update() and hashout_update())
there were serious bugs in there, and it's likely that older
versions were not outputting enough entropy.

from the web site:
Symptoms: seg faults or "cannot allocate" messages
Cause: incorrect pointer math
Result: truncated random hash passes, stack smashes

there are debian scripts now; see INSTALL for more info

Berke Durak beat me into debian, so everything'll come out
saying 'ya-wipe' instead of 'wipe', just like on freshmeat.
oh well, i still beat him to sunsite/metalab. ;P

simplified makefile (see INSTALL for new targets)

wipe with no arguments (other than options) prints version
and copyright

1.0.0:

NOTE: this is an unstable prerelease

files are now mmap()'ed instead of allocating a static buffer
for the whole file

block device support (untested). you should now be able to wipe
entire devices. remember, i haven't even tried this yet, so i
recommend backing up before trying to wipe any devices, just to
be on the same side.

wipe now prints the filename of the file it's wiping. i haven't
refined it yet.

added default options to man page

0.58.6:
fixed integer division bugs which prevented the main loop in
hashout_update() from running

0.58.5:
fixed two heap smashing bugs
removed unnecessary direntcheck(), which was broken anyway
removed autoconf check for access()
updated readme
added PATH_MAX check to wipe.h for systems that don't define it

0.58.4:
fixed stupid bug that didn't check if the file size was zero

added missing fflush, so now you'll see "100%"

added missing closedir() call in direntcheck, probably never caused
any problems

added rpm spec file and removed chown stuff from the makefile

0.58.3:
fixed dirent scan algorithm bug which would make files beginning with
'.' and '..' invisible

0.58.2:
ok, everything should really be fixed this time.

added sym link check - sym links will now be seen by wipe, and removed
also added sockets and fifo's; char and block dev's are skipped by default

xor's are now done a (processor) word at a time, ie, each xor is done 32
or 64-bits at a time or whatever you're arch is. this should increase
performance some more.

0.58.1:
fixed strange malloc() related bug by switching to realloc()  <-- not really fixed,
fixed problem where directories weren't removed			  see 0.58.4

0.58:
added man page

switched to tiger hash. big speed improvement.

removed psuedo-random stuff, cuz my code sucked. if there's an easy
way to get entropy on systems w/o /dev/*random it'll go back in.

-t now sets the tiger hash input buffers size
-T is no longer used

0.57:
lots of changes.

added file renaming, cleaned up the code, some minor cosmetic changes,
and other stuff i can't remember.

0.56beta2:
minor bug fixes

0.56beta1:

MAJOR: added autoconf, yeah! wipe should be MUCH more portable now.

spelled checked 8)
added mt19937 pseudo-random generator algorithm by Takuji Nishimura.

added file locks.
added -z option to only zero-out files. cleaned up the code a little.

0.55beta3:

got rid of all the unneeded struct passing. other minor things.

0.55beta2:

oops, forgot to update usage()

0.55beta1:

full recursion supported
switched from switch to getopt()

0.54alpha0:

multiple pass support
shows wipe completion percentage
command line options using switch

0.53beta0:

added support for /dev/urandom.

0.52beta1:

minor bug fix.

0.52beta0:

i've rewritten the write_pass() and write3_pass() functions. now i just fill
a buffer w/ the desired bit pattern, then write() it to the file descriptor.
you'll need enough free contiguous memory to hold a buffer the size of file,
or it'll fail w/ an out of memory error.

0.45beta2:

added better debugging support. use 'make debug' or add 
'-DPAUSE_AFTER_WIPE_PASS' to the gcc command to pause after each wipe pass.

0.45beta1:

first (semi) public release.

added write3_pass(), pseudo-random number generation, and added all 35
write passes.

fixed some memory leaks in error checking if's, that would result if
it aborted a file wipe due to lack of memory or read errors. probably
won't have been noticeable unless you where wiping thousands of files,
though.

0.41alpha1:

added better error handling and exit code status.

0.41alpha0:

basic functionality. performs a single wipe pass of 0x55.

0.40alpha0:

initial code for unbuffered I/O and inode data gathering.