ChangeLog for Trfcrypt


ChangeLog for trfcrypt...

2001-03-31 Tcl Project ---
  • generic/bc_opt.c (SetOption):
  • generic/c_util.c (TrfcryptGetDataType):
  • generic/c_opt.c (SetOption):
  • generic/safer.c (SetOption): Finally added changes to the error messages provided by Dave Bodenstab <>. See Trf too.
  • tea/trfcrypt.m4: Added Trf 2.1 to search list.
  • PREPARE: Moves contents of subdirectory 'tea' into main directory, they are the main build chain now.
  • tea/ Updated to current state from sample extension. Also added fix for changed Cygwin environment.
  • tea/
  • tea/ Prepared for execution in toplevel directory. Also updated for usage of new mkIndex.tcl.
  • DEPENDENCIES: New file, integration into the TclPro build system.
Wed Jun 21 20:32:41 2000 --- Andreas Kupries <>
  • win/bdist/jan.3/pkgIndex.tcl: trfcry12 => trfcry20. Robert Karen again.
  • unix/ Fixed misspelled @TRF...FILE@. Thanks to Robert Karen <>.
Thu Mar 23 20:09:32 2000 --- Andreas Kupries <>
  • tea/trfcrypt.m4, unix/ Extended to search for p-versions of Trf, extended to search in tea subdirectories, fixed problem with --enable-symbols.
Sat Jan 15 00:31:52 2000 --- Andreas Kupries <>
  • tea/ (install-lib-binaries): Fixed error in this target. Mailed problem and fix to TEA mailing list.
Tue Nov 9 20:24:43 1999 --- Andreas Kupries <>
  • tea.tests/________: See below.
  • tests/________: check for problems with shared libraries and supress their output (crc-zlib, adler -
  • tests/common.bc.test: excluded 'des' from common test, as it depends on a shared library we might not have.
  • generic/blowfish/blowfish.c (InitializeBlowfish): See below.
  • generic/blowfish/blowfish.h (InitializeBlowfish): short -> int.
Tue Oct 26 18:39:04 1999 --- Andreas Kupries <>
  • tea/trfcrypt.m4: Fixed search for Trf.
  • doc/nodes/urls.def: See below, url definitions.
  • doc/nodes/where.node: See below, for binary distributions.
  • doc/nodes/home.node: Added reference to 1.2 version.
  • generic/bc_opt.c (SeekQueryOptions): Adapted to change in signature of this trf vector.
Mon Oct 11 23:14:36 1999 --- Andreas Kupries <>
  • tests/defs: Upgraded to copy from tcl knowing about constraints.
  • generic/c_util.c (TrfcryptGetImmediateData): Use 'GetByteArrayFromObj' for Tcl 8.1 and beyond. Not doing so results in subtle errors with binary keys, iv's, etc.
Sun Oct 10 13:51:20 1999 --- Andreas Kupries <>
  • Searching for 'md' now, and switching off check of manifest in case of it not being found.
  • Checking for existence of libdes/libcrypto in configure now, switching of des-tests if necessary.
  • generic/bc_opt.c (SeekQueryOptions): New procedure, activates seeking for ECB mode of blockciphers (ratio blocksize : blocksize).
Sat Oct 9 21:44:28 1999 --- Andreas Kupries <>
  • generic: panic -> Tcl_Panic.
  • generic/c_util.c (TrfcryptGetChannelData): See below.
  • generic/cipher.c (DeleteEncoder): See below.
  • generic/blockcipher.c (DeleteEncoder): Removed unsigned char* <-> char* mismatches reported by Larry Virden.
  • generic/c_util.c: See below.
  • generic/trfcryptInt.h: See below.
  • generic/trfcrypt.h: unsigned short -> int. ** Binary INCOMPATIBILITY **.
Thu Sep 23 00:23:01 1999 --- Andreas Kupries <>
  • Modified the code and build chains to detect and use the trf stubs table.
Sun Sep 19 16:31:16 1999 --- Andreas Kupries <>
  • generic/trfcryptInt.h, safer.c, c_util.c, c_opt.c, bc_opt.c: Support for Tcl 7.6 removed.
Mon Jul 5 20:24:09 1999 --- Andreas Kupries <>
  • compat/tclLoadWin.c: Changes as in Trf, from Jan.
Mon Jun 28 23:17:35 1999 --- Andreas Kupries <>
  • unix/, Matt Newman <> sent in some changes to built the extension on HPUX (Basically check for .sl extension too).
Wed Jun 16 00:15:35 1999 --- Andreas Kupries <>
  • */bdist/*: Added binary distributions (linux/elf/i586). Changed the docs to reflect this, and to use the automatically generated bdistribution page.
Tue Jun 15 20:16:16 1999 --- Andreas Kupries <>
  • generic/trfcrypt.h: 'DllEntryPoint' removed. See below.
  • generic/init.c: 'DllEntryPoint' removed. See below.
  • win/: Added 'dllEntry.c', contains 'DllEntryPoint'. Added 'Makefile.gnu'. Both from Jan Nijtmans.
  • win/ (TRFOBJS): Added 'dllEntry.obj'.
Sun May 30 13:40:03 1999 --- Andreas Kupries <>
  • generic/*.[ch]: Went through the code and looked for possible problems with regard to multi-threading (written global variables). Marked all found places with /* THREADING */ and some additional explanation.
Tue May 25 23:21:36 1999 --- Andreas Kupries <>
  • generic/*.h: Added preprocessor definitions allowing the usage of the headers with a C++ compiler.
Fri Mar 26 14:40:55 1999 --- Andreas Kupries <>
  • --------------- Ready to release 1.1 --------------------
  • generic/init.c: Added initialization of stubs, for 8.1.
  • generic/trfcryptInt.h: Conditionalized usage of 'panic'. Now using 'Tcl_Panic' in case of compilation against tcl 8.1.
  • unix/ Changed to allow usage of stubs.
  • doc/nodes/where.node: Added note that the Windows binary distribution is not usable for Win95/98.
  • PREPARE: Exclusion of 'generic/'.
  • unix/ Moved from 'generic' to this place. Changed to check the tcl version, allowed version depends on usage of stubs, analogous to package index of Memchan.
  • unix/ Added code to handle stubs, as in 'memchan'.
Tue Jan 12 20:27:53 1999 --- Andreas Kupries <>
  • compat/tclLoadWin.c: See below.
  • win/makefile.vc5: See below.
  • generic/init.c, generic/c_util.c, generic/*.h: Incorporated the changes to the source I made after fighting the MS environment (VC 5) today to get the extension to compile.
Sat Jul 4 14:01:47 1998 --- Andreas Kupries <>
  • Added to CVS repository...
  • PREPARE: Removed latex/html doc generation, uses the new docs now.
  • doc/*: Copied new html documentation from trf and adapted it to this package.
Sun Jun 28 20:34:23 1998 --- Andreas Kupries <>
  • win/ Removed all non crypto rules, changed 'trf' to 'trfcrypt'.
  • First compilation runs throught without errors
  • generic/*.[hc]: General nitpicking while trying to compile.
  • generic/*.[hc]: Changing 'trf'-prefixes to 'trfcrypt' complete.
  • generic/loadman.c: Removed message digest functionality.
  • generic/init.c: Removed all non-crypto definitions. New feature: enable/disable every cryptosystem via configure-switches.
  • generic/*.c: Changed includes from 'transformInt.h' to 'trfcryptInt.h'.
  • generic/trfcrypt(Int).h: Removed all generic definitions.
  • Renamed transform(Int).h to trfcrypt(Int).h
  • unix/ See below.
  • generic/*: Removed all files not dealing with cryptosystems.
  • Updated the files DESCRIPTION, README and PREPARE.
  • tests/*.test: Removed tests not dealing with cryptosystems. Removed non-crypto code from 'defs'.
  • Removed directories 'mails' and 'patches'.
  • Started removal of encryption aware interfaces and algorithms from Trf. These go into a separate package. This is the ChangeLog of the new package, which is called -> 'TrfCrypt'.
  • ------------------------------------------------------
Wed Jun 17 21:38:32 1998 --- Andreas Kupries <>
  • doc/*.tex: Checked the urls, removed some broken ones. Added some notes about binio, see below, and 'bzip' (future section).
  • patches/v8.1a2/byteorder.patch: Reworked to expose a minimal set of declarations in the patched tcl.h. First step towards complete removal of 'binio' and its support in favor of the official 'binary' command.
Sat Jun 13 13:38:19 1998 --- Andreas Kupries <>
  • The patch required an adaption to I18N/UTF: A channel X replacing another channel C via Tcl_ReplaceChannel takes over the encoding information from C. Acess to the filter channel via 'puts' will now encode/decode the given strings prior to the transformation of X. Below X no encoding will take place.
  • The extension itself did not require adaptions to I18N and UTF. This is because an attached channel uses 'Tcl_Read' and 'Tcl_Write' to access the underlying channel, thus bypassing its encoding stage.
  • Passed all tests.
  • Fixed problem in new 'standard.patch', forgot to initialize 'chanPtr->outputStage'. transform.test 2.1 and base64.test 7.1 solved.
  • generic/reflect.c (Execute): Fixed refcount problem. Tcl_Eval now increments and decrements the refcount of the given script object. As 'Tcl_DuplicateObj' returns an object having refcount 0 I caused a problem by not incrementing the refcount, but decrementing it, thus trying to free the object a second time. => transform.test 1.x solved.
Fri Jun 12 16:13:26 1998 --- Andreas Kupries <>
  • 2 tests failing: transform.test (1.x, 2.1), base64.test (7.1)
  • -------------------------------------------------------- Ok, this completes the basic adaption to the new version of tcl. Still missing: Insinuation of the channel hooks into 'tclIO.c', and adaptions to the new I18N features (UTF et. al.).
  • generic/digest.c (WriteDigest): Added code to adapt to an API change between 8.0 and 8.1 (Tcl_ObjSetVar2 renamed to Tcl_SetObjVar2, and type changes for the part1/2 parameters, 'Tcl_Obj*' to 'char*').
  • generic/reflect.c (Execute): Added code to adapt to an API change between 8.0 and 8.1 (Tcl_GlobalEvalObj was removed, Tcl_EvalObj got an additional flag instead).
  • generic/registry.c (Trf_Register): Added code special to 8.1: Initialization of the 'close2Proc' driver procedure (NULL).
Mon Aug 18 21:18:31 1997 --- Andreas Kupries <>
  • -------------- 1.0 relased -----------------------------
  • win/, PREPARE: finishing touches, removed last remnants of '8.0b2'.
  • patches/v8.0: Added patches for tcl 8.0 final.
Tue Jul 29 00:18:21 1997 --- Andreas Kupries <>
  • Ready for relase of Tcl 8.0 final now.
  • Distribution running again under 7.6 and 8.x.
Mon Jul 28 20:34:05 1997 --- Andreas Kupries <>
  • doc/man.tex (section {Message digests}): Added explanation of transparent mode.
  • generic/dig_opt.c, digest.c, transformInt.h: Added transparent mode to general message digest code. A mixture of absorb and write, see 'doc/man.tex' for more.
  • doc/defs.tex: Some more homepages found, updated references to Jan Nijtmans.
  • doc/man.tex (chapter {Copyrights}\label {copyright}): Added section about SAFER.
Sat Jul 26 18:32:35 1997 --- Andreas Kupries <>
  • tests/safer.test: New file, testing safer implementation.
Fri Jul 25 18:13:12 1997 --- Andreas Kupries <>
  • unix/ (CRYPT_ALG_SRC): Added SAFER.
  • win/ (TRFOBJS): Added SAFER.
  • generic/safer.c: New cipher. First one with cipher specific options (choice between 2 keyschedules, standard and strong, allows specification of number of rounds).
  • generic/rc4.c, rot.c (C_Schedule):Adapted to changes in type 'Trf_CSchedule'.
  • generic/rc2.c, idea.c, blowfish.c, des.c (BC_Schedule): Adapted to changes in type 'Trf_BCSchedule'.
  • generic/blockcipher.c (InitializeState): Cipher specific option information is given to the scheduler for incorporation into the internal key of this cipher.
  • generic/transform.h (Trf_BCSchedule): Added parameter for inclusion of cipher specific option information.
  • generic/bc_opt.c: Added calls to cipher specific option processing to all procedures.
  • And now the analogouos changes to the blockcipher code.
Thu Jul 24 00:41:05 1997 --- Andreas Kupries <>
  • generic/cipher.c (InitializeState): Cipher specific option information is given to the scheduler for incorporation into the internal key of this cipher.
  • generic/transform.h (Trf_CSchedule): Added parameter for inclusion of cipher specific option information.
  • generic/c_opt.c: Added calls to cipher specific option processing to all procedures.
  • generic/transformInt.h: Added items to hold references to cipher specific option information to structures 'TrfBlockcipherOptionBlock' and 'TrfCipherOptionBlock'.
  • generic/blowfish.c, des.c, idea.c, rc4.c, rc2.c, rot.c: Updated to new structure definition (NULL == no additional options).
  • generic/transform.h: Added references to Trf_OptionVrctors to 'Trf_CipherDescription' and 'Trf_BlockcipherDescription', to allow specification and usage of additional, cipher specific options.
  • -- evening again --
  • doc/install.tex, man.tex: Brought up to date now.
Wed Jul 23 00:02:03 1997 --- Andreas Kupries <>
  • Both distributions running now (7.6, 8.x). Go ahead and update documentation now.
  • generic/reflect.c (Execute): Added missing separators in 7.6 code.
  • unix/ (test): Added SSL_INSTALL_DIR/lib to library search path, just to be prepared.
  • tests/transform.test: New file, check behaviour of transformation using scripts to do the work.
  • generic/registry.c (TransformImmediate): checking for empty results now.
  • generic/c_util.c (TrfGetChannelData): Missing assignment to *length in bound case caused blockcipher blowup. Were used by 7.6 tests only, had therefore no problems in 8.x.
  • -- evening again --
  • tools/md: See below.
  • tests/defs: Force usage of Memchan 1.2 for tcl 7.6.
Tue Jul 22 00:07:21 1997 --- Andreas Kupries <>
  • generic/registry.c (TransformImmediate): Added \0 behind internal result buffer to prevent using a longer buffer than really given (7.6 only).
  • Checked distributions. 8.0(b2) working, 7.6 not. Things done to get that state: > tests/*.test: The md's had 'text' as command. Corrected. > README: Changed reference to 8.0b1 to 8.0. Removed package references. > PREPARE: Crunching .html files below doc/html/ now.
  • tools/md: Small adaptions to new syntax. All operations were attach'ed, no change there. Had to define '-read-type channel' nevertheless, because of default geared towards 8.x.
  • ChangeLog.short: New file, used in generation of ANNOUNCE.
  • ANNOUNCE, LSM: Removed, see below.
  • PREPARE: Modified to take advantage of progress in 'makedist'. ANNOUNCE / LSM generated now.
  • -- evening again --
  • All tests ok again.
  • generic/registry.c (TransformImmediate): Restructured this procedure, and 'PutInterpResult', to avoid smashing any intermediate result generated by a transformation. We must write a result only after all transformation vectors were executed. Each of these may need the result area by themselves. Example: 'transform'-command.
Mon Jul 21 21:26:17 1997 --- Andreas Kupries <>
  • tests/crc.test, haval.test, md5.test, rmd128.test, rmd160.test, sha.test, md2.test, adler.test, crc_zlib.test: Rewritten. Message digests done now.
  • tests/ New tests, checking common behaviour of all message digests, as implemented in 'dig_opt.c' and 'digest.c', see below.
  • generic/digest.c, dig_opt.c: Rewritten.
Fri Jul 18 00:19:45 1997 --- Andreas Kupries <>
  • tests/idea.test, des.test, blowfish.test: Rewritten. Block ciphers are done now.
Thu Jul 17 22:29:49 1997 --- Andreas Kupries <>
  • generic/registry.c (TrfExecuteObjCmd, TrfExecuteCmd): Changed to check for transformation in case of option not matching one of the standard ones. New standard option -in blocked check for blockcipher option '-iv'. This is an old error, in since the beginning, but due to no conflicts in options names it never showed up before.
  • tests/common.bc.test: New file, checks common behaviour of all block ciphers.
  • generic/bc_opt.c, c_opt.c, c_util.c: Moved interpretation of argument to '-xx-type' into a separate procedure, then simplified the option processors.
Wed Jul 16 23:23:11 1997 --- Andreas Kupries <>
  • generic/bc_opt.c: Rewritten according to 'doc/'. Blockciphers done. Used generic code in 'c_util.c' to simplify changes.
  • generic/c_opt.c: Simplified, calling code in 'c_util.c' now.
  • generic/c_util.c: New file. Contains generic code of rewritten 'c_opt.c', see below.
Tue Jul 15 23:29:16 1997 --- Andreas Kupries <>
  • tests/rot.test: New test.
  • tests/rc4.test: Rewritten.
  • generic/c_opt.c: Rewritten according to 'doc/'. Ciphers done.
Mon Jul 14 00:04:52 1997 --- Andreas Kupries <>
  • tests/zip.test, rs_ecc.test: Rewritten now.
  • tests/ascii85.test, uu.test: New tests, all conversions are checked now.
  • tests/hex.test, oct.test, base64.test: Rewritten, as with bin.test
  • generic/octcode.c, bincode.c, hexcode.c, uucode.c, b64code.c, asc85code.c: Added 'Tcl_ResetResult' to all error generating returns, to clear out any partial result written via 'PutInterpResult' (registry.c).
  • -- evening again --
  • tests/bin.test: Started rewrite of tests, to handle, and take advantage of new syntax.
Sun Jul 13 22:16:39 1997 --- Andreas Kupries <>
  • tests/common.all.test: New. Checks common behaviour of all commands, as implemented in 'generic/registry.c'.
  • generic/registry.c: Rewritten according to 'doc/'. Manual mini tests (hex, base64) ok.
  • generic/*.c: Removed all occurences of ADD_RES. Using 'Tcl_AppendResult' again. See May 29 too.
Wed Jul 9 20:40:20 1997 --- Andreas Kupries <>
  • generic/rot13.c): New cipher: rot. Just fore fun, not for strength.
  • doc/man.tex (chapter {Copyrights}): Updated due to changes in the copyright of HAVAL. Added info about sabbatical leave in japan, and associated email address.
  • generic/haval.c: updated.
  • tests/haval.test: updated.
  • generic/haval.1996/havalapp.h, haval.h, haval.c: Changes made to old haval added in here too. See January 5 and 13. Retained original files, with suffix '.orig'.
  • generic/haval.1996/*: Added 1996 revision of HAVAL.
  • tests/md2.test: New file, tests from RFC 1319 test suite.
  • tests/md5.test: Added tests from RFC 1321 test suite.
Mon Jul 7 18:14:43 1997 --- Andreas Kupries <>
  • doc/man.tex (chapter {Acknowledgements}): Update.
  • generic/digest.c (CreateDecoder): Fixed wrong assignment to c->writeClientData. (FlushDecoder): removed superfluous '&'-operators (c->digest_buffer). Both problems found by Hyoung-Gook Kimn <>.
Tue Jun 17 19:07:42 1997 --- Andreas Kupries <>
  • win/ (TRFOBJS): Added reflect.o, ref_opt.o.
Sun Jun 15 12:53:57 1997 --- Andreas Kupries <>
  • doc/man.tex (section {Misc.}): Added documentation of general transformation command.
  • generic/registry.c (TrfInput): Tests showed multiple 'flush/read'. Corrected, added missing check for 'readIsFlushed'. Remembering mask of parent channel now, for attached channels. This is used to optimize away the calls to unused parts of a transformation.
  • generic/ref_opt.c (SetOption): Added forgotten 'break'. (CheckOptions): corrected wrong condition for mode-check (attached channels). Added default mode for attached channels
  • General transformation: First tests using 'identity'.
Sat Jun 14 21:43:06 1997 --- Andreas Kupries <>
  • generic/ref_opt.c: Option processing for channel defined below.
  • generic/reflect.c: New transformation channel. Reflects the requested operations up into the script level. In other words: The real transformation is done by a script. DANGER: Will have problems with embedded \0's if used by tcl 7.6.
Sun Jun 8 09:14:24 1997 --- Andreas Kupries <>
  • patches/v7.6p2: Added directory and files in it.
Sat Jun 7 18:31:55 1997 --- Andreas Kupries <>
  • doc/install.tex (chapter {Patching the core}): Corrected information about working directories of the various patch files.
  • patches/v7.6p2/: New directory. The patches are the same, the prepatched versions of various files not.
Sun Jun 1 12:03:58 1997 --- Andreas Kupries <>
  • ---------------- Release 1.0b3 ----------------
  • Compiled under windows, ok. Added reference to binary distribution to manual.
Sat May 31 00:04:27 1997 --- Andreas Kupries <>
  • doc/install.tex: brought uptodate, some enhancements.
  • unix/ Removed references to a2 relase of tcl 8.0.
  • doc/man.tex: brought uptodate, some enhancements.
  • win/ (BINIO): see '--enable-binio' below.
  • --------- morning ---------
  • tests went through without problems.
  • trf now compiles again, without warnings.
  • tcl 8.0b1 with patches compiles, links and tests sucessfully (iocmd 8.8, 8.9 fail due to the new option '-byteorder').
  • patches/v8.0b1: Added directory and files in it. These are the patches to the tcl 8.0b1 core.
  • generic/binio.c: See --enable-binio below. Added the appropriate ifdefs.
  • unix/ (--enable-shared): changed to --disable-shared, making build of shared libraries the default behaviour. (--enable-binio): new option to enable compilation of 'binio' command. Default: NO compilation. See commands 'binary' and 'fcopy' of 8.0b1 for equivalent functionality.
Fri May 30 23:49:38 1997 --- Andreas Kupries <>
  • generic/registry.c: compiles, only warnings due to unpatched core remain.
  • generic/registry.c (TrfExecuteObjCmd): Added CONST to 'objv', as required by new API. (TrfReady): Excluded for 8.0b1, due to new notifier mechanism. (TrfGetFile): Updated to new interface. (TrfRegister): Updated command creation to changed interface of 'Tcl_CreateObjCommand'. Updated initialisation of 'entry->transtype', due to changed notifier. (TrfWatch): Updated to changed notifier ('watchChannelProc' now named 'watchProc').
Thu May 29 21:16:05 1997 --- Andreas Kupries <>
  • All files, with exception of 'unstack.c', 'binio.c' and 'registry.c' compile without flaws now. The named files depend (partially) on the patches to the core, and the C-API to channels. Near midnight, tackle them tomorrow.
  • generic/bc_opt.c (SetOption): see 'CheckOptions' below.
  • generic/zip_opt.c (CheckOptions): Removed special code to transfer string to object result. See below. (SetOption): changed 'long' to 'int' for 3rd arg. to 'Tcl_GetIntFromObj'.
  • generic/util.c (TrfGetChannel): Disabled this code, not required anymore, see below. See Feb 11 too.
  • generic/transformInt.h (ADD_RES, RESET_RES): 8.0b1 has smoothed out the problems arising from having two results (string, obj). No dependency on version anymore. Definitions left in to avoid immediate conversion of all affected files.
Wed May 24 22:11:25 1997 --- Andreas Kupries <>
  • doc/man.tex, install.tex: Made urls into hyperlinks, at least in the HTML version of the manuals. Done in the last days.
Wed May 21 18:16:42 1997 --- Andreas Kupries <>
  • PREPARE: use newly installed 'latex2html' to generate and distribute html versions of the manuals. The urls inside are currently not hyperized yet. -- switched from custom code to procedure now provided by 'makedist'.
Mon May 19 22:35:19 1997 --- Andreas Kupries <>
  • doc/man.tex, install.tex: checked with 'ispell', added new message digests.
  • generic/ripemd/rmd128.c: see below.
  • generic/ripemd/rmd128.h: Made usable for AXP (64bit long's), added unique prefix to function names. Added tcl.h, _ANSI_ARGS_ to let it compile for K&R too.
  • tests/rmd128.test: see below.
  • win/ (TRFOBJS): see below.
  • unix/ (rmd128.o): see below.
  • generic/init.c: see below.
  • generic/rmd128.c: Added message digest RIPEMD-128.
Thu May 15 20:32:49 1997 --- Andreas Kupries <>
  • generic/ripemd/rmd160.c: see below.
  • generic/ripemd/rmd160.h: Made usable for AXP (64bit long's), added unique prefix to function names. Added tcl.h, _ANSI_ARGS_ to let it compile for K&R too.
  • win/ (TRFOBJS): see below.
  • tests/rmd160.test: see below.
  • unix/ (rmd160.o): see below.
  • generic/init.c: see below.
  • generic/rmd160.c: Added message digest RIPEMD-160.
Sun May 11 21:36:46 1997 --- Andreas Kupries <>
  • doc/install.tex, man.tex: Adapted to made changes.
  • generic/transformInt.h: Definitions concerning DES moved to 'loadman.h'.
  • win/ (TRFOBJS): Added the new files, named below.
  • unix/ Added rules for new files named below.
  • generic/init.c (Trf_Init): Added initializators for algorithms below.
  • generic/md2.c, rc2.c, sha1.c: New files. Glue to incorporate MD2, SHA1 message digests and RC2 block cipher. All are searched for in SSLeay only. WARNING: RC2 keylength is artificially limited to a maximum of 1024 bytes.
  • win/ (LIBDES): Removed this configuration variable. See Feb 26 too. Superfluous now, see below.
  • generic/loadman.[ch]: new files, supercede 'libdes.c', which is removed from the distribution now. This manager allows for individual loading of functionality from a variety of libraries. Currently uses '' (SSLeay) and '' only.
Sat May 10 21:56:46 1997 --- Andreas Kupries <>
  • first step to change from 'libdes' over to 'SSLeay' ('libcrypto').
  • generic/zlib.c, libdes.c: Changed to use the new functionality described below.
  • generic/load.c: New file. Used last the 2 functions of 'imgInit.c' (Img library, Jan Nijtmans) to factor out the common components of loading a shared library.
Mon Mar 17 18:18:05 1997 --- Andreas Kupries <>
  • unix/ (distclean): removed 'patchlevel.h' from command, is part of distribution now.
  • patches/v8.0a2/tclIO.c (Tcl_GetHostByteorder): Had superfluous 'chan'-argument, despite correction in the patch.
Thu Mar 6 20:13:55 1997 --- Andreas Kupries <>
  • Integrated patch send by Jan. Description: "Further on, I improved the test for the need of _eprintf.o, because I noted that sometimes _eprintf.o is included when it is not needed at all. Finally I implemented the LD_LIBRARY_PATH environment variable in tclLoadAout.c, such that it works the same as on other machines. See patches below. Both of these improvements are already in the current Img1.0b1, but they are useful in Trf as well."
Sun Mar 2 11:27:49 1997 --- Andreas Kupries <>
  • PORTING: new file. database of porting notes, hints, tricks, etc.
  • generic/idea/idea.c (MulInv): Fred Meyer ( had a problem with IDEA on its DEC Alpha. Tracked down to this procedure. Must not be compiled with -O, -O2 or higher. The overoptimized code will return 0 for many arguments, resulting in a bad decryption key. The option -O1 is possible though.
Sat Mar 1 15:50:50 1997 --- Andreas Kupries <>
  • generic/binio.c (READ_CHUNK_SIZE): allow redefinition of value via makefile!. Default bumped up to 16k (4k before).
  • PREPARE: see below, generate uncompressed digest files.
  • tests/________: removed '-z', expect uncompressed digest files (More space required, but less dependencies (zlib)).
  • generic/registry.c: Bugfix in 'TrfInput' (-> Feb 14) caused the system to call read-flush twice. Noted due to doublesized results for message digests. New flag 'readIsFlushed' to prevent this.
  • doc/install.tex: Complete.
  • generic/registry.c (TrfInput): fixed bug regarding calculation of bytes to move down via 'memmove' (operands were in wrong order).
Wed Feb 26 18:31:50 1997 --- Andreas Kupries <>
  • win/ (LIBDES): new configuration variable. allows usage of win32 binary distribution of SSLeay.
  • tools/ldAout.tcl: integrated patch containing small bugfixes. Sent by Jan.
  • doc/install.tex: new installation manual, nearly complete now.
  • added directory ''. Contains everything to compile zlib as shared library under windows (MSVC++ 4.2).
  • reorganized 'patches' directory. Every version of tcl got its own subdir.
Tue Feb 25 22:38:18 1997 --- Andreas Kupries <>
  • generic/sha/sha.[ch]: renamed typedef'd LONG to UINT32. Avoids collision with definition made by Windows. SHA finally ok under windows (see Feb 15 too).
Sun Feb 23 18:46:33 1997 --- Andreas Kupries <>
  • generic/idea/idea.h: see below.
  • generic/sha/sha.h: Added check for compilation on DEC Alphas, define LONG accordingly.
Thu Feb 20 21:27:32 1997 --- Andreas Kupries <>
  • generic/zlib.c (Z_LIB_NAME): Default is 'zlib.dll' now.
  • win/ (install): protect 'md' with -@ against errors (directory maybe in existence already).
  • tests/binio.test: added 'fconfigure -translation binary' to 1.8
Sat Feb 15 22:58:32 1997 --- Andreas Kupries <>
  • tests/sha.test: don't execute 'sha-2.2' under windows. Uses 'cat' to beef up a 1000 character file to 1e6 characters. A more portable method is required to do this.
  • tests/binio.test: spots using '/dev/null' rewritten, removed dependency on un*x.
  • generic/b64code.c: see below, same thing.
  • generic/uucode.c: added explicit casts to all array initializers, MSVC was not unable to comprehend that they are 'char's or to convert them into such, at least silently.
  • generic/blowfish.c (BC_Schedule): added explicit casts from 'int' to 'short'.
  • generic/sha/sha.h: avoid 2nd definition of 'typedef unsigned long LONG' under windows.
  • generic/init.c: moved TRF_EXPORT definition and usage to 'transform.h'.
  • generic/unstack.c: same as below.
  • generic/binio.c: 'BinioCmd' static now, with proper declaration.
  • win/ integrated todays experiences with 'nmake'.
  • compat/tclLoadWin.c: added declaration to supress warning about unknown 'TclWinConvertError'. This procedure is internal to tcl.
Fri Feb 14 19:15:46 1997 --- Andreas Kupries <>
  • win/ first stab at Makefile for windows. Constructed from '' and the makefile used by tcl itself.
  • generic/init.c: added prolog required for DLL generation under windows.
  • generic/registry.c (TrfInput, TrfOutput): Inserted usage of procedures for handling complete buffers, they are prefered over the single-character vectors. (TrfInput): corrected logical error causing the system to loose partial data at Eof on underlying channel.
Thu Feb 13 21:40:03 1997 --- Andreas Kupries <>
  • - the bunch of messages below resulted from my first try to compile trf under windoof. Some other messages, not recorded here, were due to the usage of an unpatched version of tcl. Note: The current stage of development in using the object interfaces compiles ok against 8.0a2, but NOT a1. The 'interp' arguments to the used functions were removed between these revisions. First thought at work: How the hell could gcc compile my code, containing such a grave error as supplying to few arguments to a function. Have to install 8.0a2 at work pronto.
  • compat/tclLoadWin.c: fixed some small problems in here. (dlopen): corrected declaration of 'intialized', added an 'i'. (UnloadLibraries): terminated 2nd declaration with ';'. (dlclose, UnloadLibraries): calls to 'ckfree' required casts. Had some more warnings, investigation defered to next try.
  • generic/digest.c (EncodeBuffer): signed/unsigned mismatch.
  • generic/util.c (TrfMerge4To3): The cpp's used so far don't understand an empty argument to a macro. Noop '>> 0' supplied now.
  • generic/binio.c (PackCmd, 'D', 'U'): Had wrong casts here.
  • generic/registry.c (TransformImmediate): signed/unsigned mismatch.
  • generic/rc4/rc4.c (rc4_prepare_key): see below.
  • generic/asc85code.c (Encode, FlushEncoder, Decode, FlushDecoder): see below.
  • generic/adler.c, crc.c, crc_zlib.c (MD_Final): added casts to stop MS VC++ 4.2 from complaining about conversion problems and loss of data.
Tue Feb 11 18:46:01 1997 --- Andreas Kupries <>
  • 'binio', 'unstack' need conversion too.
  • -------------- tests ok.
  • generic/util.c (TrfGetChannel): Wrapper to 'Tcl_GetChannel'. Required by objectbased commands, copies the standard result into the 'objResult' of the interpreter. Automatically activated in 'transformInt.h', for tcl major >= 8.
  • generic/blockcipher.c, digest.c, rs_ecc.c, zip.c: see below.
  • generic/b64code.c, octcode.c, hexcode.c, bincode.c, uucode.c, asc85code.c: changed result generation from 'Tcl_AppendResult' to 'ADD_RES'.
  • 2nd iteration through files named below, changed result generation from 'Tcl_AppendResult' to 'ADD_RES'.
  • generic/transformInt.h (ADD_RES): New macro. Used to build command results in a version independent manner. Its definition depends upon the tcl version!
  • generic/registry.c (Trf_Register): adapted validity checks to changed 'Trf_OptionVectors' structure.
  • generic/templates/opt_template.c: ok.
  • generic/bc_opt.c (SetOption): ok. (TrfBlockcipherOptions): ok.
  • generic/zip_opt.c (SetOption): ok. (TrfZIPOptions): ok.
  • generic/c_opt.c (SetOption): ok. (TrfCipherOptions): ok.
  • generic/dig_opt.c (SetOption): ok. (TrfMDOptions): ok.
  • generic/convert.c (SetOption): ok. (Trf_ConverterOptions): ok.
  • zipt_opt.c, dig_opt.c, bc_opt.c, c_opt.c, convert.c: adaption to object interfaces required here!
  • generic/transform.h (Trf_OptionVectors): added 'setObjProc' to structure. /* ********* POTENTIAL INCOMPATIBILITY at C-level ********* */
  • generic/transform.h: New prototype 'Trf_SetObjOption'. Object equivalent to 'Trf_SetOption'. Use VOID for Tcl_Obj if compiled against tcl major version below 8.
  • generic/registry.c (Trf_Register): Uses 'TrfExecuteObjCmd' if possible.
  • generic/registry.c (TrfExecuteObjCmd): New function, equivalent to 'TrfExecuteCmd', uses the object interfaces of tcl 8. Conditional compilation removes functionality for Tcl below version 8.x
Thu Feb 6 19:27:41 1997 --- Andreas Kupries <>
  • Reorg. complete, distribution running again (unix).
  • unix/Makefile: corrected MANIFEST check, removed target 'depend'. Removed tests for 'makedepend' from ''.
Wed Feb 5 23:35:17 1997 --- Andreas Kupries <>
  • Reorganization for multiplatform development and use (unix, mac, win). Shuffled all files around. Adapted unix makefile to changes. Nothing for Mac and Windows yet. Rewrote generation of distribution (PREPARE, make-tape). 'DESCRIPTION' now central point for version information. The data obtained there is placed into all relevant files at distribution time (README, LSM, ...), especially 'generic/transform.h' and 'generic/patchlevel.h' (former names had '.in' suffixes). 'Configur'ing these files made it impossible to use them for Windows/Mac development. Note: 'PREPARE' is an file internal to the package. It contains tcl-code preparing the package for distribution (removing inofficial and/or internal files, manpage generation, ...). It is not part of the distribution however.
Wed Feb 4 21:18:15 1997 --- Andreas Kupries <>
  • ======================= released 1.0b2 =======================
Fri Jan 31 18:43:29 1997 --- Andreas Kupries <>
  • libdes.c, zlib.c: use library names without path, use OS facilities for searching (LD_LIBRARY_PATH,
  • tools/ldAout.tcl: search for symbols did not account for capitals. Found after building libz.a without zsymbols.c
  • digest.c: had unsigned <-> signed comparison.
Thu Jan 30 22:32:45 1997 --- Andreas Kupries <>
  • compat/tclLoadShl.c (dlopen): improved error messaging for HP-UX upon failed loads.
  • removed superfl. targets for 'zsymbols.o' and 'ld_sysmbols.o'.
  • use default (/usr/local) for prefix instead of NONE.
  • got patch from Jan fixing some minor things. see above ^.
Sun Jan 26 21:18:56 1997 --- Andreas Kupries <>
  • binio.c (FLIP (in ReorderBytes)): corrected wrong indexing in first assignment. (UnpackCmd): added format-length and 0-padding to hex conversions (%x -> %08x, %08lx, %04x).
  • tests/binio.test: added tests for 'binio'.
Mon Jan 20 23:07:01 1997 --- Andreas Kupries <>
  • binio.c (PackCmd, UnpackCmd): use Tcl_GetChannelByteorder to determine wether swapping is required or not. See entry at Jan 13, -> binio.c too.
  • added *.byteorder patches. These introduce a new channel attribute, the associated byteorder. It can be retrieved directly and via 'fconfigure'. Setting is possible by 'fconfigure' only. This is used by 'binio' to swap word information if required.
Wed Jan 15 19:07:12 1997 --- Andreas Kupries <>
  • -- all changes below by Jan Nijtmans. All of Monday, Jan 13 was covered by his patch too.
  • cipher.c: See Jan 5, (XX). Some remains of same thing.
  • digest.c (DecodeBuffer, l.674): See below, this time the first argument of 'memcpy'. Cause of (##) ?
  • registry.c (TrfInput, l. 683): Added () around 'trans->result + toRead', some compiler (which?) choked without.
  • (line 261): SHLIB_LD_ALL must be set in all cases. Without it "make libz" and "make libdes" will work on Ultrix, but not on other machines.
  • zip.c: See Jan 5, (XX). Some remains of same thing, forward declarations forgotten.
Tue Jan 14 21:57:19 1997 --- Andreas Kupries <>
  • (line 259): don't bother with -ltclX.Y if not running under AIX.
  • INSTALL: updated to reflect new search order.
  • changed search order: sibling directories before <prefix> paths. But commandline options (-with-tcl...) overide all.
  • all digests fail on HP A.09.04 (Bus error). Seems to be something in general code (dig_opt / digest). Had no time to study it further, but must be done. (##)
  • zip.c: See Jan 5, (XX). Some remains of same thing.
Mon Jan 13 21:41:33 1997 --- Andreas Kupries <>
  • haval/haval.c: Most of conversion was already done (See Jan 5), with the exception of a single place (haval_tailor).
  • blowfish/blowfish.*, idea/idea.*, md5/md5.*, rc4/rc4.*: See below. Most files integrated from external sources have this problem.
  • sha/sha.[ch]: added <tcl.h>, _ANSI_ARGS_ (), generally conform to JO's conventions for extension programming. Removed usage of ##-operator too (concatenates token processed by preprocessor). REASON: HP (uname -> 'A.09.04 B') choked on prototypes and the like.
  • (AC_PATH_PROG(MAKEDEPEND)): see below (-> depend). (sizeof int, long int): determine type sizes, required by 'binio'.
  • (BASE_SRC, BASE_OBJ): added 'binio'. (depend): changed 'makedepend' to '@MAKEDEPEND@', let configure determine its location. Use ':' if not found (as for the HP used by my employer).
  • binio.c: new file and command 'binio'. Based on Jacobs ( proposal. Exception: reordering of bytes (see ### BYTEORDER ###). Need a flag to tell me the byteorder associated to the used channels.
  • ======================= released 1.0b1 =======================
Fri Jan 10 12:48:13 1997 --- Andreas Kupries <>
  • registry.c (TrfInput): fixed error preventing read/gets from stacked channels to work properly (set trans->used to 0, then! used it, argh).
  • Added 8.0, 8.0a1 to search sequences.
  • doc/INSTALL, doc/INSTALL.optional, doc/man.tex: updated dependency information.
Mon Jan 6 19:14:20 1997 --- Andreas Kupries <>
  • patches/core7.6.patch, patches/core8.0a1.patch: Added patch files for tcl-core to remove dependency on plus-patches.
Sun Jan 5 22:26:46 1997 --- Andreas Kupries <>
  • --> Jan's patch integrated now.
  • adapted to changes in ''.
  • streamlined handling of Ultrix 4.4 and other Aout systems. External libraries now must have extension '.a'.
  • compat/tclLoadNone.c: changed to include all global symbols exported by libz and libdes resp. This forces static linkage on systems not supporting dynamic loading.
  • haval/haval.h, haval/haval.c: changed header prototypes to _ANSI_ARGS_-notation of Tcl. Changed prototypes to K&R style.
  • registry.c, unstack.c: Removed superfluous '&'s.
  • const -> CONST
  • asc85code.c, b64code.c, bincode.c, hexcode.c, octcode.c, (XX) uucode.c, rs_ecc.c, blockcipher.c, digest.c: I consistently used 'Trf_WriteProc fun' instead of 'Trf_WriteProc* fun' in declarations and definitions of 'Create(En/De)coder'. Severe case of cut/copy/paste disease. Found by an older compiler under Ultrix 4.1.
  • Back from christmas holiday. --> Integrate patch send by Jan at Dec 20, 1996.
Wed Dec 18 18:46:58 1996 --- Andreas Kupries <>
  • ======================= released 1.0a3 =======================
  • PREPARE: change title of MANIFEST.
  • (distclean): removed MANIFEST from list.
Tue Dec 17 17:35:13 1996 --- Andreas Kupries <>
  •, c_opt.c, rc4.c, templates/c_template.c: extended interface analogously to message digests, blockcipher to allow dynamic loading. RC4 does not require this, but later functionality might do.
  • (depend): added -D___MAKEDEPEND___, see below.
  • transformInt.h: use ___MAKEDEPEND__ to hide 'zlib.h', 'des.h' during makedepend runs.
  • tests/sha.test: see below, added expansion of file 'sha.test.vec'.
  • tests/sha.test.vec: reduced from 1e6 bytes to 1000 bytes. Will be blown up at test time! Should reduce distribution size about 100 K.
  • doc/INSTALL.optional: new file, instructions and comments related to building shared libraries for ZLIB and LIBDES. --==** Important **==--.
  • compat/ld_symbols.c: see below, copied and modified. valid for libdes 3.23.
  • compat/zsymbols.c: new file, contains functionality to enable dyn. loading for a.out (Ultrix). Got from Jan. Valid for zlib 1.0.4.
  • transformInt.h: HAVE_LIBDES_H -> HAVE_DES_H.
  • compat/tclLoadNone.c, compat/_eprintf.c: new files, for systems without dyn. loading, and to avoid problems with gcc and assert. Send in by Jan.
  • compat/tclLoadAout.c: new version from Jan, had problems on Ultrix due to some unknown symbols.
  • sha/sha.c (sha_final): removed superfluous '&' (sha_info->data, lines 170, 175, 177).
  • registry.c (TrfWatch): removed 'return' in void-procedure. Why did 'gcc -Wall' did not complain?
Mon Dec 16 18:29:27 1996 --- Andreas Kupries <>
  • des.c, bc_opt.c, transformInt.h, libdes.c: LIBDES will be loaded on demand now. Removed from distribution.
  • ZLIB removed from distribution, will be loaded if required (commands: adler, crc-zlib, zip).
  • adler.c, crc_zlib.c (MD_Check): checkProc searches and loads 'libz'.
  • sha.c, md5.c, crc.c, haval.c: no checkProc required.
  • dig_opt.c (checkOptions): Calls 'checkProc' now.
  • Extended interface to digests (Trf_MDCheck, checkProc).
  • zip_opt.c (checkOptions): load libz here.
  • (zlib): new target to make libz.
  • added code to enable generation of libz as shared library.
Sat Dec 14 19:17:56 1996 --- Andreas Kupries <>
  • integrated information from patch (*2) into and New directory 'compat' with dll-loading code for various OS (taken from tcl).
  • blowfish/blowfish.c (Blowfish_decipher): changed assignments 'Xl = *xl', 'Xr = *xr' to 'Xl.word = *xl', 'Xr.word = *xr'. The assigment to the union was accepted by gcc, but not Ultrix 4.4, cc3.0.
  • blowfish/bf_tab.h: The '\'s introduced by Jans patch (see *1) got through the Ultrix 4.4, cc3.0 preprocessor and let the compiler bark. Removed now.
  • blockcipher.c, bc_util.c, cipher.c, blowfish.c. zip.c: see below.
  • md5.c, haval.c, sha.c (MD_Update(Buf), MD_Final): see below.
  • digest.c: all allocs now cast to the correct type (there were some casts missing, causing ULTRIX 4.4, cc3.0 to barf).
  • hexcode.c, octcode.c, bincode.c: encode uses table-lookup now, no more bitfiddling.
Wed Dec 11 20:54:10 1996 --- Andreas Kupries <>
  • zip.c, rs_ecc.c: Done too.
  • Got patch from Jan Nijtmans (*2) to load arbitrary dynamic libraries, enabling me to remove 'zlib' and 'libdes' from distribution. Integration defered until all and everything is updated to handle character buffers.
  • blockcipher.c: Updated to handle character buffers as well.
Tue Dec 10 21:22:02 1996 --- Andreas Kupries <>
  • md5.c, crc.c, crc_zlib.c, haval.c: All updated to handle buffers containing more than one character. For speedups see doc/speed/*
  • sha.c (MD_UpdateBuf): New procedure to handle a buffer of characters. Depending on input-size 'sha' is now ~2-3 times as fast.
  • digest.c (Encode-, Decodebuffer): New procedures to convert complete buffers. Use a procedure to convert a buffer of characters, if defined by the digest.
  • registry.c (TransformImmediate): read 4K chunks of characters now, instead one by one. Use a procedure to convert a buffer of characters, if defined by the transformation.
Thu Dec 5 20:19:31 1996 --- Andreas Kupries <>
  • ======================= released 1.0a2 =======================
  • The last changes reworked the package installation to conform to the new standard set by the core: library and package index go into a subdirectory of the library directory (making it a sibling to tclX.Y).
  • (EXTENSION): set to Trf, the official name of this extension. (LIB_RUNTIME_DIR): use EXTENSION, VERSION to determine complete path. (install): target 'install-package' removed. (install-lib): install package index too.
  • got a patch from Jan Nijtmans (*1): - Addition of LIB_RUNTIME_DIR (needed for Solaris, otherwise the custom tclsh cannot find at run-time.) - Changed pkgIndex.tcl such that the library is only loaded when one of the commands are used for the first time (like memchan). - Add a Tcl_StaticPackage() call in tclAppInit.c - blowfish/bf_tab.h needs to be devided into 4 blocks with {}'s around it, otherwise a warning is given (gcc -Wall (aku)).
Wed Dec 4 20:18:20 1996 --- Andreas Kupries <>
  • registry.c (TrfWatch): now forwards request to parent too.
Tue Dec 3 22:38:05 1996 --- Andreas Kupries <>
  • digest.c: fixed problem regarding to 'XX->dest'. NULL's were not handled. Tripped by new 'TrfClose' in registry.c
  • tests: These were changed too, to use 'unstack $XX' instead of 'transform remove $XX head'.
  • registry.c: Twiddled with it the last 2 days to use the simpler Tcl_ReplaceChannel API, as propossed by J.Nijtmans. Now the package again compiles, links and passes all tests. // This is a branch //
Wed Oct 16 21:59:39 1996 --- Andreas Kupries <>
  • tools/md: new example for generation and check of message digests. supersedes example 'md5sum'. independent of external script libraries.
Tue Oct 15 00:06:20 1996 --- Andreas Kupries <>
  • init.c (Trf_Init): register new digests.
  • adler32.c, crc32.c: added message digests algorithm contained in zlib as separate commands.
  • templates/cvt_template.c: see below.
  • templates/opt_template.c: fixed errors in template (clientData).
  • init.c (Trf_Init): register compressor.
  • doc/man.tex: added description of "zip"-command, extended chapter containing the references to external copyrights.
  • zip_opt.c: option processor for compressor.
  • zip.c: added compressor based on zlib library (authors: Jean-Loup Gailly ( Mark Adler (
Mon Oct 7 22:55:44 1996 --- Andreas Kupries <>
  • Module ready for delivery. Starting official log now.

© Andreas Kupries
Last update at Sat Mar 31 22:40:23 CEST 2001