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 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553
|
ChangeLog
v1.11 2018/07/27
(2018/07/26) PS1 - portability: check for more C compilers,
including clang.
(2018/07/26) PS1 - portability: use AC_USE_SYSTEM_EXTENSIONS
instead of individual feature test macros.
(2018/07/26) PS1 - include config.h before other header files.
(2018/07/26) PS1 - intl: updated tools
(2018/07/26) PS1 - autoconf: added --with-included-getopt to avoid
using the system-wide getopt library (it may still end up being
used on GNU systems).
(2018/07/26) PS1 - portability: moved getopt.h to a subdirectory,
to be included only when needed.
(2018/07/25) PS1 - emacs support: compatibility with Emacs 26,
reported by Zhang Jun and Duncan Bayne (bug #24).
(2017/03/08) PS1 - portability: fixed some pedantic warnings.
(2017/02/22) PS1 - emacs support: fixed warnings.
(2017/02/22) PS1 - fixed some compiler and configuration warnings.
(2016/11/13) PS1 - intl: added Estonian translations, thanks to
Estprog.
(2016/11/13) PS1 - emacs support: delete password from environment
after each use, reported by d8uoba (bug #23).
(2016/06/30) PS1 - ccguess: fixed a bug in the --non-printable option,
reported by dcb314 (bug #22).
(2014/09/07) PS1 - allow "-" as a filename meaning standard input
in cat and unixcrypt modes.
(2014/03/30) PS1 - man pages: fixed leading blank page with
groff -man -Tps, reported by Hugh McDonald.
(2012/12/28) PS1 - intl: updated tools
v1.10 2012/10/18
(2012/10/16) PS1 - ccguess: tweaked the ordering of guesses
(2012/10/16) PS1 - ccguess: added -t option
(2012/10/15) PS1 - ccguess: use a 64-bit counter
(2012/10/14) PS1 - ccguess: updated exit status
(2012/10/14) PS1 - ccguess: added -n option
(2012/10/14) PS1 - ccguess: do not turn off character echoing on
password entry.
(2012/10/14) PS1 - ccguess: allow multiple files to be tested
simultaneously.
(2012/10/12) PS1 - ccguess: added -c option
(2012/10/11) PS1 - removed intltool build dependency
(2012/10/11) PS1 - fixed fchown() compiler warning, again
(2012/10/10) PS1 - added ccguess program
(2012/08/31) PS1 - man page: fixed name and usage of emacs package
(2011/05/13) PS1 - autoconf: new CADD variable to add to CFLAGS
(2011/01/08) PS1 - more error handling improvements: check output
of fflush, crypt
(2011/01/07) PS1 - fixed potential buffer overrun in make_nonce()
(2011/01/07) PS1 - better separation of i/o errors and other
system errors
(2011/01/07) PS1 - test suite: added environment variable
CHECK_CCRYPT to allow binaries outside the build tree to be tested
(2010/12/28) PS1 - emacs support: use existing buffer password
when re-reading a file; improved status messages
(2010/12/24) PS1 - more handling of unlikely errors
(2010/12/23) PS1 - fixed Rijndael reference code compiler warnings
(2010/12/23) PS1 - check for i/o errors in stream mode
(2010/12/23) PS1 - added frees in error handlers and at top level
(2010/12/23) PS1 - fixed fchown() compiler warning
(2010/11/10) PS1 - emacs support: fixed mapcar compiler warnings
(2010/08/08) PS1 - build a convenience library libccrypt.a
(2009/11/16) PS1 - rpm.spec: fix deprecated copyright tag,
reported by Johannes Ruscheinski.
(2009/09/09) PS1 - portability: made sources C++ compatible.
(2009/09/04) PS1 - autoconf: added --disable-emacs option.
(2009/09/04) PS1 - portability: fixed $EXEEXT error (bug
#2851058).
v1.9 2009/08/28
(2009/06/15) PS1 - inlined functions, dropped -O3 compiler flag
(2009/06/14) PS1 - portability: fixed syntax in shell scripts
(2009/06/12) PS1 - portability: improved setmode() compatibility
(2009/06/12) PS1 - portability: work around /tmp bug on EMX-OS/2
v1.8 2009/06/05
(2008/09/28) PS1 - autoconf: added test for crypt.h
(2008/07/29) PS1 - portability: moved platform-specific code to
platform.h and platform.h.
(2008/07/26) PS1 - autoconf: check if -lsocket is needed for
gethostname(), required by SCO OpenServer (reported by Predrag
Blagec).
(2008/05/01) PS1 - documentation: don't install html file.
(2008/02/07) PS1 - autoconf: renamed configure.in as configure.ac
(2008/02/07) PS1 - portability: avoid __argc and __argv
(2008/02/07) PS1 - intl: updated tools, disabled XML configuration
(2008/02/06) PS1 - if "key" does not match, try "key\r" for
backward compatibility with files encrypted under bug #1872759.
(2008/02/05) PS1 - ccryptlib: added multiple key capability.
(2008/02/04) PS1 - emacs support: better error message if ccrypt
command not found (in response to bug #1886118 by Jonathan Swartz)
(2008/01/18) PS1 - ccryptlib: invalidate state on error, to guard
against applications that fail to check for errors.
(2008/01/16) PS1 - recognize "\r\n" as an end-of-line marker for
password files and user input, in case automatic text mode
conversion fails (bug #1872759).
(2007/10/03) PS1 - added <locale.h> to src/main.c
(2007/06/11) PS1 - removed translatable strings from ccryptlib.c
(2007/06/10) PS1 - autoconf: simplified test for lispdir.
(2007/06/10) PS1 - added short option -y for --keyref.
(2007/04/08) PS1 - portability: use 'test' instead of '[' in shell
scripts.
(2007/04/07) PS1 - intl: added French translations.
(2007/04/01) PS1 - intl: updated tools
(2006/11/29) PS1 - portability: enabled large file support in AIX
(reported by Jon Hardt)
(2006/08/11) PS1 - emacs support: removed compression functions,
renamed emacs package as ps-ccrypt. This can now peacefully
coexist with jka-compr.
(2006/04/02) PS1 - fixed missing breaks in "switch" statement in
traverse.c.
(2006/04/02) PS1 - added --keyref option.
(2006/04/02) PS1 - intl: made gettext optional in ccryptlib.c
(2006/04/02) PS1 - added "unimplemented option" handler
(2006/02/04) PS1 - intl: added intl subdirectory.
(2006/02/04) PS1 - added "const" keyword to many strings, to
emphasize that translated strings can't be modified.
(2006/02/04) PS1 - man page: removed reference to MD5 hash
function, since it has been broken.
(2006/02/03) PS1 - emacs support: fixed bug where password was
lost on change of editing mode (reported by Steve Sullivan).
(2006/01/17) PS1 - intl: added German translations.
(2006/01/17) PS1 - intl: added internationalization support.
(2006/01/13) PS1 - fixed bug #1358164: new exit code 9 in case the
user did not enter a key, or in case the given keyfile or
environment variable could not be read.
(2006/01/13) PS1 - include generated file tables.c in distribution
(2006/01/13) PS1 - made rijndael.c and maketables.c more
architecture independent by fixing word alignment issues
(2006/01/13) PS1 - test suite: better quoting in shell scripts to
be more robust against spaces in filenames etc.
(2006/01/13) PS1 - test suite: respect TEMPDIR environment
variable, if set.
(2005/10/27) PS1 - updated Makefiles for Bourne shell
compatibility on Tru64 (reported by Hoshi Sepai).
(2005/10/13) PS1 - test suite: fixed bug where some versions of
diff refuse to read /dev/null (reported by Hoshi Sepai).
(2005/10/13) PS1 - commented out some dead code from rijndael.c,
to reduce compiler warnings.
(2005/10/13) PS1 - removed __const keyword from unixcrypt3.c, as
it bothered the Tru64 ANSI compiler (reported by Hoshi Sepai).
(2005/03/09) PS1 - fixed bug where --keyfile ignored its argument,
reported by Stefan Alfredsson.
v1.7 2004/03/28
(2004/02/04) PS1 - large file support now works under cygwin due
to a newer cygwin version.
(2004/02/04) PS1 - configure: added --disable-libcrypt option.
(2003/12/12) PS1 - minor changes to wording of warning messages.
(2003/10/29) PS1 - as requested by many users, made --timid the
default behavior and added new --brave option to turn it off.
v1.6 2003/08/26
(2003/08/26) PS1 - fixed potential segfault in
traverse.c:file_action, due to buffer freed too early.
(2003/08/26) PS1 - improved mktemp replacement in check/missing.sh
(2003/08/25) PS1 - removed a blank line in man page for better
whatis support
v1.5 2003/08/25
(2003/08/25) PS1 - added check/missing.sh to supply missing
"mktemp" command on Solaris.
(2003/08/25) PS1 - new exit status 8 for non-fatal i/o
error. Also, exit status 4 is now also given in file mode, even if
processing continues after the failure (thanks to Juergen Klasen
for suggesting the change).
(2003/08/25) PS1 - emacs support: fixed a bug in
jka-compr-ccrypt.el
(2003/08/14) PS1 - made non-public procedures static
(2003/08/14) PS1 - eliminated exit status 5.
(2003/08/14) PS1 - made some minor changes so it will compile
under cc on HP-UX. Use char* instead of void* for buffers,
eliminate static allocation of non-constant sized arrays. Thanks
to Simon Chung for help with the HP-UX port.
(2003/08/13) JR1 - emacs support: provide jka-compr existence
functions in jka-compr-ccrypt.el, to keep info.el happy.
(2003/08/12) PS1 - CFLAGS are now set in ./configure and can be
overridden - not that I recommend it.
(2003/08/12) PS1 - new --with-lispdir=DIR configuration option
(2003/06/16) PS1 - re-enabled --mismatch option which was
inadvertently disabled when switching to ccryptlib in v1.3. Also
added a test for this to "check" target.
(2003/05/31) PS1 - removed unescaped newline characters in string
constants to compile under gcc-3.3.
(2003/05/30) PS1 - changed scripts in "check" target to be
independent of /dev/zero and put temporary files in /tmp.
(2003/03/31) PS1 - changed rpm.spec file to be more Mandrake
acceptable. Binaries will from now on be installed in /usr/bin,
man pages in /usr/share/man.
(2003/03/30) PS1 - fixed typo in usage message
v1.4 2003/03/29
(2003/03/29) PS1 - added missing mode argument to open(2) calls.
(2003/03/29) PS1 - made custom sigint handlers for overwrite and
tmpfiles modes.
(2003/03/28) PS1 - added --tmpfiles option to use temporary files,
rather than in-place update, when overwriting a file
(2003/03/28) PS1 - removed a potential race condition for
chown/chmod.
(2003/03/28) PS1 - fixed unreachable "free" in prompt().
(2003/03/28) PS1 - simplified logic in traverse.c:file_action(),
and broke it into several functions.
(2003/03/28) PS1 - eliminated perror(); included ccrypt program
name in all error messages and warnings (except verbose messages
and interactive prompts)
(2003/03/28) PS1 - allow unixcrypt mode to decrypt symbolic links,
and to use the -m option
(2002/12/14) PS1 - added support for large (>2GB) files.
(2002/12/14) PS1 - removed unnecessary "include"s from rijndael.c
v1.3 2002/09/26
(2002/09/26) PS1 - added check/length-check.sh to the test suite
and added some tests to check/ccrypt-check.sh. Fixed bug where
some files were truncated on non-matching key.
(2002/09/24) PS1 - allow to operate on write-protected files with
user's permission, or if -f option is given.
(2002/09/24) PS1 - fixed behavior on some errors; don't rename
files or symlinks that could not be opened; don't rename hardlinks
if encryption/decryption of their inode has failed.
(2002/09/24) PS1 - added --strictsuffix option for refusing to
encrypt files that already have a .cpt suffix.
(2002/09/24) PS1 - added keychange test to check/ccrypt-check.sh.
(2002/09/24) PS1 - added command line options -F, -H, -Q for
handling the second keyword in keychange mode.
(2002/09/24) PS1 - linked ccryptlib into ccrypt sources and
abandoned old character-based i/o interface. This speeds up ccrypt
by about 20-30% (in file mode), 45-50% (in filter mode), and a
breathtaking 85% in unix crypt mode.
(2002/09/20) PS1 - started implementing ccryptlib, a buffer-based
encryption/decryption library.
(2002/08/22) PS1 - fixed bug #598800: result of xreadline
unchecked in traverse.c:prompt.
(2002/06/24) PS1 - renamed "no error" as "success".
(2002/04/09) PS1 - changed RPMs to use symlinks, rather than hard
links for ccdecrypt, ccencrypt, ccat.
(2002/04/09) PS1 - changed autoconf script to determine 32-bit
unsigned integer type at configure time.
(2002/04/09) PS1 - changed --timid option to prompt for encryption
keys twice even when operating as a filter.
(2002/04/09) PS1 - made nonce generation more random by using
microseconds, not just seconds, in the seed.
v1.2 2002/01/29
(2002/01/28) PS1 - improved autoconf configuration in the case
where getopt is present but getopt_long is missing
(2002/01/22) PS1 - used profiling to make ccrypt about 55-65%
faster by optimizing one critical inner loop.
(2001/11/29) PS1 - updated man page to include new exit code 7.
(2001/11/29) PS1 - fixed bug #486857 - replace == by = in
{src,doc}/Makefile.am
v1.1 2001/11/28
(2001/11/28) PS1 - added --timid option to prevent loss of data
from accidentally mistyped keys. This option causes ccrypt to
prompt twice for an encryption keys that will be used to update a
file destructively. If the two entered keys are not equal, ccrypt
will not proceed.
(2001/11/27) PS1 - added autoconf magic for SunOS, FreeBSD, MacOS,
AIX, and CygWin.
(2001/11/27) PS1 - added optional replacements for getopt and/or
crypt(3) libraries.
(2001/11/26) PS1 - added check targets for testing correctness of
binary
(2001/11/26) PS1 - major reorganization of sources, added
automake/autoconf configuration.
(2001/11/24) PS1 - ensured that data is treated as binary under
cygwin.
(2001/11/24) PS1 - changed signal handler for Ctrl-C.
(2001/11/24) PS1 - added --unixcrypt mode to simulate old unix
style "crypt" program.
(2001/11/24) PS1 - changed cat mode to operate as a filter when 0
filenames are given.
v1.0 2001/10/30
(2001/10/30) PS1 - created web page, created html man page,
created RedHat rpms, upped version number to 1.0. First public
release.
(2001/10/30) PS1 - added signal handler for SIGINT. In overwrite
mode, delay exit on SIGINT until after the current file is
processed. Immediate exit can be forced by pressing SIGINT twice.
(2001/10/27) PS1 - updated man page.
(2001/10/27) PS1 - added exit code 5 for file format; this leaves
4 for non-matching key, thus enabling emacs mode to re-prompt for
the key.
(2001/10/27) PS1 - added option --keyfile to read key from a
file. "-" is a special case which replaces the old --pipekey
option.
(2001/10/27) PS1 - emacs support: pass keyword to ccrypt in
environment variable, not on command line. Renamed package as
jka-compr-ccrypt.el.
(2001/10/27) PS1 - changed main.c to erase password from command
line or environment (as displayed by "ps") immediately after
copying it.
(2001/10/26) PS1 - renamed -k option as -p
(2001/10/26) PS1 - added -m option to allow decryption with
mismatched key
(2001/10/26) PS1 - added --license option and kept --version short
(2001/10/26) PS1 - cleaned up concept of "modes" - now ccrypt is
always in precisely one of -e, -d, -c, -x. In particular, cat mode
is always decryption, since it does not make sense to concatenate
encrypted data, and a pipeline can be used for a single file.
(2001/10/26) PS1 - made a user interface for keychange feature -
prompt for keys as appropriate etc. Note that there is currently
no way to specify the second key on the command line or in an
environment variable, or to specify a prompt for it.
(2001/10/26) PS1 - changed implementation of --pipekey option to
not read the key immediately, but after some checks.
(2001/10/26) PS1 - converted to getopt()
(2001/10/26) PS1 - changed cipher mode to Cipher Feedback (CFB) -
this has the advantage that corrupted files may still be partially
decrypted. Also, CFB is an ANSI standard mode with well-understood
properties, which will encourage confidence in the security of the
encryption provided. This is an incompatible change; thus,
incrementing version number to 0.51 and magic cookie to c051.
Note that this mode is identical to that provided by ccrypt0.5,
except we omitted the 8-byte checksum at the end of the file.
----------------------------
date: 2001/10/27 05:27:31; author: selinger; state: Exp; lines: +98 -285
* ccrypt0.5, which was committed on 2001/02/13 without adequate log
message, was a version of ccrypt which used a checksum to suggest file
integrity. I since decided to discontinue this feature, since it is
not provably safe and might thus be misleading.
* the current commit is again called ccrypt0.4, because the file
format was reverted to format 0.4. All file format changing
features of 0.5 were reversed.
* changes relative to ccrypt0.4 as committed on 2000/11/30:
* added Makefile as a dependency to some targets in Makefile
* changed usage of "unsigned long" to word32 etc
* changes to some comments and variable names in ccrypt.c
* if in filemode and 0 filenames follow, don't prompt for password
* updated todo file
* exit immediately on i/o error, rather than continuing with the
next file. This does not apply to non-existing files, but to
errors on read/write.
* added cypfaq01.txt to documentation
* added emacs mode for ccrypt
* changes relative to ccrypt0.5 as committed on 2001/02/13:
* undid version number change and magic string change
* undid checksumming code
* edited comments in emacs mode
----------------------------
date: 2001/02/27 03:46:12; author: selinger; state: Exp; lines: +10 -3
* added check for empty list of filenames - in this case, print a
warning and don't prompt for keyword
----------------------------
date: 2001/02/13 05:49:48; author: selinger; state: Exp; lines: +307 -98
* across-the-board commit of versions existing on caiaphas
----------------------------
date: 2000/11/30 07:49:16; author: selinger; state: Exp; lines: +172 -55
Major changes:
* Command line interface: discontinued --file and --filter options,
made semantics of --cat and -- more uniform.
* Added a --keychange mode (command line interface still experimental).
* Fixed a bug where file was deleted if wrong key given in overwrite
mode.
----------------------------
date: 2000/11/17 02:14:42; author: selinger; state: Exp; lines: +3 -3
Added LICENSE, modified manpage. Renamed --filemode option as --file.
----------------------------
date: 2000/11/14 20:43:41; author: selinger; state: Exp; lines: +37 -210
* separated stream/file handling from encryption: object-oriented
interface "readwriter" is now in io.c and io.h.
----------------------------
date: 2000/11/06 16:08:06; author: selinger; state: Exp; lines: +13 -14
* updated to new algorithm which uses a 1-1 state function relative to
fixed input or fixed output
* small update of user interface: now complain if 0 files are given in
cat mode, or if >=1 files are given in filter mode
* small changes to man page and paper
----------------------------
date: 2000/10/04 10:31:38; author: selinger; state: Exp; lines: +10 -10
* minor update to command line interface.
* started paper stream.tex
----------------------------
date: 2000/10/03 19:27:17; author: selinger; state: Exp; lines: +50 -25
Improvements to command line interface and man page.
----------------------------
date: 2000/10/01 14:22:45; author: selinger; state: Exp; lines: +304 -114
* changed encryption algorithm to use seed
* canceled keep mode
* introduced aliases ccencrypt, ccdecrypt, ccat
* now refuse to write/read encrypted data to/from terminal
----------------------------
date: 2000/05/29 18:50:40; author: selinger; state: Exp; lines: +23 -322
* Moved all the gory file logic into traverse.c; main.c now concentrates
on reading the command line.
* Changed traverse.c so that directories are read in their entirety
before being traversed; there were some problems on Solaris.
* Changes in defaults for symlinks in cat and keep modes.
* Updated manpage and other minor changes.
----------------------------
date: 2000/05/29 03:25:00; author: selinger; state: Exp; lines: +2 -2
Edited man page
----------------------------
date: 2000/05/29 03:13:44; author: selinger; state: Exp; lines: +2 -2
Updated manpage to reflect new command line interface.
----------------------------
date: 2000/05/29 02:47:07; author: selinger; state: Exp; lines: +15 -1
New feature: preserve timestamp, modes and ownership whenever possible.
----------------------------
date: 2000/05/29 02:13:16; author: selinger; state: Exp; lines: +247 -130
Implemented behavior of symbolic links.
Added proper keep and cat modes.
cat follows symbolic links by default.
Added check before overwriting existing files, and --force option.
----------------------------
date: 2000/05/28 16:32:49; author: selinger; state: Exp; lines: +61 -71
Added command line options for symlinks (functinoality yet unimplemented)
Added long command line options
----------------------------
date: 2000/05/28 04:21:55; author: selinger; state: Exp; lines: +5 -2
Added global state for on/off of symbolic links
----------------------------
date: 2000/05/25 17:56:14; author: selinger; state: Exp; lines: +51 -48
Changed ccrypt to allow parallel encryption of many streams by
localizing the state.
----------------------------
date: 2000/05/18 02:48:50; author: selinger; state: Exp; lines: +109 -62
Started working on suffix-adding and -removing in destroy mode.
Maybe should ignore symlinks as gzip does?
----------------------------
date: 2000/05/16 06:28:32; author: selinger; state: Exp; lines: +17 -13
started re-vamping user interface. Renamed many command-line option to
be similar to those of gzip. All file-reading commands now operate on
multiple files. Explicit output file naming is no longer possible -
use filter mode for this.
The file-reading modes still need to be implemented.
----------------------------
date: 2000/05/16 03:44:30; author: selinger; state: Exp; lines: +64 -22
added -r and -m to main to allow traversal of files. Presently only in
update mode. Need to rewrite command line interface completely.
----------------------------
date: 2000/05/15 17:15:24; author: selinger; state: Exp; lines: +56 -46
Added command line struct to main.c
Added experimental file traverse.c (currently standalone) for
traversing through a list of files, and optionally recursively through
directories.
----------------------------
date: 2000/05/15 03:11:53; author: selinger; state: Exp; lines: +2 -2
Fixed bug in ccrypt.c which scrambled state rather than state+8. This
changes encryption behavior, thus advanced to v0.2.
----------------------------
date: 2000/04/26 04:33:51; author: selinger; state: Exp; lines: +8 -22
Fixed bug in guess_outfile, where ".cpt" was removed even if it was
not at the end of the infile name. (as in xxx.cpt2).
----------------------------
date: 2000/04/26 03:59:16; author: selinger; state: Exp; lines: +85 -17
Threw out most of the code in main.c that dealt with files, temporary
files, renaming, checking for hard links, and all that. Instead, added
the ability to update a file in place by using read/write mode on it.
Also implemented the new OFB mode. Benchmarks yielded that if 32 state
bytes were used in the non-linear function that encodes each byte,
then the time spent in Rijndael and the time spent on calculating this
non-linear function would be about equal. This seems too much overhead
in return for the security of a single byte. Thus, I reduced the
number of state bytes used in this calculation to 9. This makes an
exhaustive search possible in the near future, but such a search is
probably not worth the effort, especially considering it only helps to
decrypt one byte, namely the first byte where a given ciphertext
differs from one with known plaintext.
Benchmark testing also showed that fseek is extremely expensive. The
original implementation of in-place update called fseek twice per
byte, which took 8 times more time that encryption itself. By using a
1000 byte buffer, I reduced this overhead to about 0.8%.
----------------------------
date: 2000/04/25 19:29:12; author: selinger; state: Exp; lines: +11 -16
* Changed rijndael interface to operate on unsigned long arrays instead
of char arrays - this ensures that the arrays are aligned properly on
word boundaries.
* Also made many changes to the user interface. Now use "stat" to check
inode of input and output file, test that they are regular files, and
use (manual) copy, rather than rename, to copy the temporary file to
the output (this overwrites all hardlink references).
----------------------------
date: 2000/04/24 18:02:04; author: selinger; state: Exp; lines: +10 -3
Changes to file handling. ccrypt now checks for input/output errors,
and if such an error occurs, any partial output is deleted and the
original file retained. Also, in file mode, we now output to a
temporary file by default, since checking for identical filenames is
not sufficient to detect physical equality of input and output file.
----------------------------
date: 2000/04/18 07:59:41; author: selinger; state: Exp; lines: +5 -41
Changed Makefile to run in directory rijndael recursively.
Linked sboxes into ccrypt rather than repeating them.
----------------------------
date: 2000/04/17 17:44:36; author: selinger; state: Exp; lines: +81 -40
Updated ccrypt but it contains a bug: block cipher operates in
electronic dictionary mode. Also streamlined rijndael.c decryption,
and changed external interface to operate on strings rather than
2-dimensional arrays.
----------------------------
date: 2000/04/16 17:58:39; author: selinger; state: Exp; lines: +3 -1
Fixed array index bug in ccrypt.init_random. Also added fflush to main.
----------------------------
date: 2000/04/16 17:16:25; author: selinger; state: Exp; lines: +2 -1
added "return 0" at end of main
----------------------------
date: 2000/04/14 08:50:27; author: selinger; state: Exp; lines: +10 -12
Improved hashing. It is now infeasible to find two passwords that hash
to the same key.
----------------------------
date: 2000/04/14 08:41:50; author: selinger; state: Exp; lines: +22 -15
Changed password hashing to use rijndael instead of an ad hoc method.
----------------------------
date: 2000/04/12 20:46:54; author: selinger; state: Exp; lines: +10 -14
removed arbitrary line length on password read from terminal (but
notice that Solaris still imposes 1024 character limit).
Added #ifdef lines to .h files.
Added Id tag to .in files.
----------------------------
date: 2000/04/12 07:06:30; author: selinger; state: Exp; lines: +10 -6
fixed bug where OFB mode was not self-inverse. Also updated manpage
after reading more about block ciphers and modes.
----------------------------
date: 2000/04/11 09:44:49; author: selinger; state: Exp; lines: +13 -13
Added GNU license to man page, and updated Makefile and main.c to
compile correctly on Solaris. Removed double global variable "key".
----------------------------
date: 2000/04/11 09:25:37; author: selinger; state: Exp; lines: +49 -27
Complete rewrite of encryption algorithm based on Rijndael.
----------------------------
date: 2000/04/10 01:36:19; author: selinger; state: Exp; lines: +163 -30
Added a man page, updated user interface, added config file and
install script.
----------------------------
date: 2000/04/09 22:09:39; author: selinger; state: Exp; lines: +3 -108
Added Id headers, and separated ccrypt from main.
----------------------------
date: 2000/04/09 21:40:20; author: selinger; state: Exp; lines: +26 -63
Created custom random number generator, both for portability and
because the GNU one is really bad. Also moved readkey to a separate
module.
----------------------------
date: 2000/04/09 06:30:21; author: selinger; state: Exp; lines: +12 -6
Made it work with SUN rand() which produces 15-bit random integers.
----------------------------
date: 2000/04/09 06:21:54; author: selinger; state: Exp; lines: +13 -4
Added debug mode
----------------------------
date: 2000/04/09 00:17:55; author: selinger; state: Exp; lines: +151 -12
First working version.
----------------------------
date: 2000/04/08 21:53:25; author: selinger; state: Exp;
branches: 1.1.1;
Initial revision
----------------------------
date: 2000/04/08 21:53:25; author: selinger; state: Exp; lines: +0 -0
Imported sources
=============================================================================
|