2025-01-04
* LibSecRm version 3.3
Fixed compile errors after name randomisation. Added support for
fallocate64(). Checking for more compile warnings. Portability
updates - LibSecRm now compiles on Solaris/SunOS. Added support for
systems with a less advanced /proc filesystem. Code quality updates.
Updates in the build system. Updates in unit tests and new tests
(current coverage: 46.2%). Documentation updates.
2022-12-13
* LibSecRm version 3.2
Significant portability updates. LibSecRm now compiles on FreeBSD
and macOS. Allow setting the number of iterations using an
environment variable. Improvements in banning. Improvements in the
build system. Improvements in code quality. Significant improvements
in the documentation. New unit tests.
2021-01-09
* LibSecRm version 2.9
Added intercepting posix_fallocate64(). Portability improvements.
LibSecRm should work better with some filesystems which have i-node
numbers greater than 2^32-1 and compile under non-ANSI-C. Checked
running LibSecRm under GCC address & undefined behaviour sanitizers.
Added more unit tests.
2019-02-08
* LibSecRm version 2.8
Added intercepting new functions. Fixed initialization code - fixed
lookup for fopen() and made intercepting malloc() disabled by
default, because it causes the library to crash. Many improvements
in checking if an object is banned from being wiped. Improvements
in code portability and compatibility. Better code maintainability,
updated copyright and documentation. Improvements in unit tests and
new tests added.
2017-04-25
* LibSecRm version 2.5
Many code improvements and simplifications in readability and
maintenance. Improvements to code related with banning the library
from interfering with fragile files and programs. Fixed wiping in
freopen* functions and memory. Improvements to performance. New
unit tests.
2015-09-04
* LibSecRm version 2.0
Library marked as not requiring executable stack (security reasons).
Fixed fallocate(), posix_fallocate() and brk() (in case of systems
without sbrk()). Fixed unlink()&friends with file renaming. Fixed
errno setting. Fixed banning functions. Added unit tests. Minor
code cleanup.
2013-06-02
* LibSecRm version 1.9
Allow working without dynamic memory allocation. Portability
improvements (fixes for compilation without some header
files or functions). Other small fixes and updates.
2012-10-11
* LibSecRm version 1.8
Portability improvements. Banning mechanism fixed and updated
with new possibilities.
2012-02-26
* libsecrm version 1.7
Made the header file SWIG-enabled, updated copyright, code cleanup,
documentation update. New wiping methods: Schneier and DoD.
2011-10-08
* libsecrm version 1.6
2011-03-17
* libsecrm version 1.5
Run flawfinder, rats and cppcheck on the code and fixed a few
performance and syntax problems.
2010-05-22
* libsecrm version 1.4
Upgrade to newer autotools, gcc and libtool. Added some copyright
notices when using code from the GNU C library. Run flawfinder on
the code and changed some parts according to the result. Fixed
compiling on non-ANSI-C compilers.
2009-05-08
* libsecrm version 1.3
New compie-time options: defining LAST_PASS_ZERO causes an additional
wiping with zeros to be performed, defining ALL_PASSES_ZERO causes
all passes to use zeros for wiping. Added simple scripts that
randomize the library's public function names so it is harder to
detect.
2009-02-20
* libsecrm version 1.2
Displaying error messages about stat macros (during compiling) only
if sys/stat.h is present. No more public variables and non-namespaced
function names.
2008-11-30
* libsecrm version 1.1
Added some memory management functions. Changed "! STDC_HEADERS" to
"!defined STDC_HEADERS". Verified compiling on OpenBSD. Defining
_ATFILE_SOURCE for *at() functions' declarations.
2008-07-13
* libsecrm version 1.0
Removed the "errno" bug, discovered while working on wipefreespace,
thanks to Patrick 'marlowe' McDonald. Using Gutmann method by
default. It can be switched off with
./configure --enable-random-method
2008-05-02
* libsecrm version 0.9
The Konqueror bug turned out to be really in Konqueror, not
libsecrm. This release brings only portability corrections - both
in 'configure' and source files.
2007-11-28
* libsecrm version 0.8
Defining _GNU_SOURCE only if not already defined. Setting nagative
errno codes, like it's usually done. Best (probably) checks if a
file is used. Some banning checks moved after object checks to
improve performance.
2007-11-11
* libsecrm version 0.7
Using old wipe-anything technique if new signal+fcntl is not
available. Signal & fcntl stuff now only in one function (called
for every wiping). Renaming libsecrm.h to libsecrm-priv.h
Libsecrm is now a library for developers, too. It has a header file
- ${prefix}/include/libsecrm.h and a "import library" libsecrm.a.
Big portability corrections, some to non-ANSI compilers. Libsecrm
now compiles on OpenBSD. Checking compiler options instead of
asuuming them.
2007-09-16
* libsecrm version 0.6.
Better signal handling (needed because of the Xpdf/libfreetype
issue). Adding support for banning programs and files from
messing with them, via config files in ${prefix}/etc. More
info in the docs. 64-bit functions now active.
2007-09-08
* libsecrm version 0.5
2007-08-06
* libsecrm version 0.4 (0.3 lived less than half a day on the net)
Switched to GPLv3. New compile macro 'BUF_SIZE' in CFLAGS available.
Using #pragmas for better compile-time error checking.
2007-07-14
* libsecrm version 0.2.
2007-07-08
* First release of libsecrm, version 0.1.
Replaces the following functions: fopen, freopen, fdopen, open,
openat, unlink, unlinkat, truncate, ftruncate (or the 64-bit
versions of these, if needed).