cryptix.tools
Class Scar
java.lang.Object
|
+--java.lang.Thread
|
+--cryptix.tools.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:
scar.header
The text that will be enclosed between a pair of ----- to visually
indicate the start of an asciified scar. Current default is "BEGIN
SCAR ARCHIVE".
scar.comment
A text that will follow the text "Comment: " in a line following
scar version information in an asciified scar. Current default is
"scar by Cryptix...".
scar.footer
The text that will be enclosed between a pair of ----- to visually
indicate the end of an asciified scar. Current default is "END SCAR
ARCHIVE."
scar.cipher.algorithm
The name of a symmetric cipher algorithm installed and accessible
by the user Java VM. Current default is "Square". Square is a
symmetric block cipher algorithm developed by Joan Daemen
and Vincent Rijmen
.
scar.passphrase
The text to use as the pass-phrase. This pass-phrase will be used
as the basis for computing a session key. The algorithms used to
generate a session key from the pass-phrase are an implementation
of the proposed S2K Simple, Salted, Iterated and Salted-Iterated
variations described in the OpenPGP IETF draft document dated
November 1997. The current default is "sub rosa."
scar.md.algorithm
The Message Digest algorithm used in the S2K algorithms. "RIPEMD-160"
Is the default. RIPEMD-160 is designed by Hans Dobbertin, Antoon
Bosselaers and Bart Preneel.
scar.md.salt
A salt value to use in S2K Salted and Iterated-Salted variants.
Current value is "Cryptix Development Team".
scar.md.iterations
A positive integer to use in S2K Iterated and Salted-Iterated
variants. Current default value is 7.
To do:
- Add an option to allow use in distribution applications ('JAR' format
with manifest file).
- ...
Note: this is an alpha release of scar. The format of
encrypted archives may (and probably will) change incompatibly in future
releases..
Copyright © 1997, 1998
Systemics Ltd on behalf of the
Cryptix Development Team.
All rights reserved.
$Revision: 1.3 $
- Author:
- Raif S. Naffah
Field Summary |
static boolean |
DEBUG
|
Constructor Summary |
Scar()
|
Method Summary |
static void |
main(String[] args)
|
void |
processOptions(String[] args)
Process command line arguments. |
void |
run()
main action. |
void |
unzip(java.util.zip.ZipInputStream zip,
java.io.File dest)
unzip files and/or directories to a destination. |
void |
zip(java.io.File source,
java.util.zip.ZipOutputStream zip,
int level)
Zip files and/or directories to a ZipOutputStream. |
Methods inherited from class java.lang.Thread |
activeCount,
checkAccess,
countStackFrames,
currentThread,
destroy,
dumpStack,
enumerate,
getContextClassLoader,
getName,
getPriority,
getThreadGroup,
interrupt,
interrupted,
isAlive,
isDaemon,
isInterrupted,
join,
join,
join,
resume,
setContextClassLoader,
setDaemon,
setName,
setPriority,
sleep,
sleep,
start,
stop,
stop,
suspend,
toString,
yield |
DEBUG
public static boolean DEBUG
Scar
public Scar()
main
public static void main(String[] args)
processOptions
public void processOptions(String[] args)
- Process command line arguments.
run
public void run()
- main action.
- Overrides:
- run in class Thread
zip
public void zip(java.io.File source,
java.util.zip.ZipOutputStream zip,
int level)
throws java.io.FileNotFoundException,
java.io.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).- Throws:
- java.io.IOException - if operation fails
unzip
public void unzip(java.util.zip.ZipInputStream zip,
java.io.File dest)
throws java.io.FileNotFoundException,
java.io.IOException
- unzip files and/or directories to a destination.
- Parameters:
src
- source zip stream.dest
- destination File object.- Throws:
- java.io.IOException - if operation fails
Copyright (C) 1995-2000 The Cryptix Foundation Ltd. All rights reserved.