Tines icon CTClib - PGP-compatible software.

This page

Available applications

(NEW) For Java 5+ for with pre-built Windows support

Currently in early beta (code is usable but is only at the first stable point of a significant refactoring and restructuring exercise) is a rework of the UI to use the now long established Java Swing UI widget set. With broadband now widespread, keeping to the <3Mb Java 1.1 run-time is less of a constraint than it was around the turn of the millennium.

CTCJava 2.0 beta GUI

The Beta 2 of CTCJava 2.0 release. The main feature of this release is simply the replacement of the UI widgets with Java Swing components; and the start of a rework of the way in which multiple open files are managed.

The release archive contains a 7-zip archive with detached signature; within that 4 other such archives, each containing a file and its detached signature. The files in the innermost archives, the ones with accompanying signature, are:

  1. CTCJava.jar — the compiled file including icons (Both the “Dean's icons” set used before, and the preferred Tango Project set).
  2. java.zip — the refactored source code
  3. ctcjlib.dll — version 2.3.2192.30638; modified from the previous version to take into account changes in the names of classes and methods in the Java code
  4. ctcjlib-src.zip — the modified source of the JNI layer used to build the above.

This is almost entirely a refactoring release - changing the UI widgets, renaming classes, and adjusting data encapsulation and class responsibilities (and tidying up a modiucum of the crap-ness of my last-century code).

There is no installer as such. Just place the .dll on the path and the jar on the classpath. If you unpack them to say C:\CTCJava, then a .bat file

cd C:\CTCJava
start javaw -cp ctcjava.jar com.ravnaandtines.ctcjava.CTC ctcjava.ini

with the path to your CTC config file (compatible from version 1.x) as the argument (ctcjava.ini, here) will do the job.


Maintenance information

Bug fixes in version 2.3.2178.34472

Remove the line

#define SMALL_MEM 

in ctccpa/gzip.h; and insert it here

#include <stdio.h>

/* this value matches that in ziputils.c - keep it that way.  --Tines 1-1-97 */
#define BITS 15

/* The following is necessary for use with the PGPclassic WSIZE of 0x2000.
** The buffer size comparison checks later in deflate.c are NOT adequate.
**   --Tines 17-Dec-05 */
#define SMALL_MEM

#define NO_ASM

#include "tailor.h"
#ifdef unix
  #include "gzip.h_ux"
#else
  #include "gzip.h"
#endif

in ctccpa/deflate.c. This allows inflate to use a 32k history buffer, while we stick with the PGP-compatible 8k while compressing

Bug fixes since 2.3 (in version 2.3.1044.27931)

Bug fixes since 2.2

Bug fixes since 2.1

Bug fixes since 2.0

Known bugs and omissions - CTClib 2.3


Mainstream source

This code is all freeware, with the source library offered under the conditions of the GPL "COPYING" (or in the case of some of the Java GUI code, under the GLPL "COPYING.LIB" ) : cryptographic software needs to be available for full public review, not hidden in anonymous commercial products. The code is broken into folders as follows

Source archives are available as follows:-

I would urge people who do download this source library to compile with NO_IDEA defined (which expunges all references to that algorithm) : they can then still communicate with PGP 5 users, without being in technical infringement of patent restrictions. If CTCjlib is built in this configuration, then the Java code will detect it and adjust itself accordingly.

Also available, but long abandoned

These are effectively orphaned, and may cease to work as the core library evolves.

Future plans

Further enhancements would include