cryptix.tools

Class Scar


public class Scar
extends Thread

A command line utility to (a) compress, encrypt and asciify files and/or directories (with or without directory recursion), and (b) accomplish the inverse with user-specified option for recreating a source tree directory.

Uses java.zip tools to deflate and inflate data, Cryptix IJCE for the cipher and message digest (used to compute cipher keys from user plain ascii passphrase) algorithms, and a PGP-style Base-64 armour with P. R. Zimmermann 24-bit CRC method (PRZ24 class) for the [de-]asciification.

Hard-wired default values for cipher (Square) and Simple String To Key (S2K) specifier with message digest (RIPEMD-160) algorithms are used. These and other default values can be individually modified for each user by setting the appropriate properties in a scar.properties file placed in the user's home directory.

Current scar properties that the user can alter are:

<Daemen.J@banksys.com><vincent.rijmen@esat.kuleuven.ac.be>
Note: this is an alpha release of scar. The format of encrypted archives may (and probably will) change incompatibly in future releases.

CopyrightSystemics LtdCryptix Development Team

$Revision: 1.4 $

Author:
Raif S. Naffah

Nested Class Summary

(package private) class
Scar.ScarInputStream
(package private) class
Scar.ScarOutputStream

Field Summary

(package private) static char[]
BASE64
(package private) static int
CONV_OTHER
(package private) static int
CONV_PAD
(package private) static int
CONV_WHITE
static boolean
DEBUG
(package private) static String
DEFAULT_CIPHER
(package private) static String
DEFAULT_COMMENT
(package private) static String
DEFAULT_FOOTER
(package private) static String
DEFAULT_HEADER
Default default values!
(package private) static int
DEFAULT_ITERATIONS
(package private) static String
DEFAULT_MD
(package private) static String
DEFAULT_PASS_PHRASE
(package private) static String
DEFAULT_SALT
(package private) static boolean
IN
(package private) static int
MAX_LINE_LENGTH
(package private) static boolean
OUT
(package private) static char
PADDING
(package private) static boolean
TRACE
(package private) static String
VERSION
(package private) String
comment
Comment data.
(package private) static int
debuglevel
(package private) static PrintWriter
err
(package private) String
footer
Footer info following ----- in an asciified scar file.
(package private) static String
fs
User runtime jvm host file separator.
(package private) String
header
Header info following ----- in an asciified scar file.
(package private) PropertyResourceBundle
properties
User ResourceBundle file for his/her scar.properties.
(package private) static SecureRandom
random
Source of randomness.

Constructor Summary

Scar()

Method Summary

(package private) static void
debug(String s)
(package private) void
initDefaults()
Set default properties.
static void
main(String[] args)
void
processOptions(String[] args)
Process command line arguments.
void
run()
main action.
(package private) static void
trace(String s)
(package private) static void
trace(boolean in, String s)
void
unzip(ZipInputStream zip, File dest)
unzip files and/or directories to a destination.
void
zip(File source, ZipOutputStream zip, int level)
Zip files and/or directories to a ZipOutputStream.

Field Details

BASE64

(package private) static final char[] BASE64

CONV_OTHER

(package private) static final int CONV_OTHER
Field Value:
-3

CONV_PAD

(package private) static final int CONV_PAD
Field Value:
-2

CONV_WHITE

(package private) static final int CONV_WHITE
Field Value:
-1

DEBUG

public static boolean DEBUG

DEFAULT_CIPHER

(package private) static final String DEFAULT_CIPHER

DEFAULT_COMMENT

(package private) static final String DEFAULT_COMMENT

DEFAULT_FOOTER

(package private) static final String DEFAULT_FOOTER

DEFAULT_HEADER

(package private) static final String DEFAULT_HEADER
Default default values!

DEFAULT_ITERATIONS

(package private) static final int DEFAULT_ITERATIONS
Field Value:
7

DEFAULT_MD

(package private) static final String DEFAULT_MD

DEFAULT_PASS_PHRASE

(package private) static final String DEFAULT_PASS_PHRASE

DEFAULT_SALT

(package private) static final String DEFAULT_SALT

IN

(package private) static final boolean IN
Field Value:
true

MAX_LINE_LENGTH

(package private) static final int MAX_LINE_LENGTH
Field Value:
64

OUT

(package private) static final boolean OUT
Field Value:
false

PADDING

(package private) static final char PADDING
Field Value:
'='

TRACE

(package private) static final boolean TRACE
Field Value:
false

VERSION

(package private) static final String VERSION

comment

(package private)  String comment
Comment data.

debuglevel

(package private) static int debuglevel

err

(package private) static final PrintWriter err

footer

(package private)  String footer
Footer info following ----- in an asciified scar file.

fs

(package private) static String fs
User runtime jvm host file separator.

header

(package private)  String header
Header info following ----- in an asciified scar file.

properties

(package private)  PropertyResourceBundle properties
User ResourceBundle file for his/her scar.properties. Only user home directory is searched for this properties file.

random

(package private) static final SecureRandom random
Source of randomness.

Constructor Details

Scar

public Scar()

Method Details

debug

(package private) static void debug(String s)

initDefaults

(package private)  void initDefaults()
Set default properties.

main

public static void main(String[] args)

processOptions

public void processOptions(String[] args)
Process command line arguments.

run

public void run()
main action.

trace

(package private) static void trace(String s)

trace

(package private) static void trace(boolean in,
                                    String s)

unzip

public void unzip(ZipInputStream zip,
                  File dest)
            throws FileNotFoundException,
                   IOException
unzip files and/or directories to a destination.
Parameters:
dest - destination File object.

zip

public void zip(File source,
                ZipOutputStream zip,
                int level)
            throws FileNotFoundException,
                   IOException
Zip files and/or directories to a ZipOutputStream.
Parameters:
source - source file or directory.
zip - destination zip output stream.
level - depth level in the recursion tree of this method. Used to distinguish top level directory from sub- directories (whether to apply recursion or not).