home *** CD-ROM | disk | FTP | other *** search
/ Shareware 1 2 the Maxx / sw_1.zip / sw_1 / UTILS / HPACK75.ZIP / HPACK.DOC next >
Text File  |  1992-01-12  |  62KB  |  1,244 lines

  1.  
  2.                          -=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  3.   Ver:0.75c0             HPACK - Multi-System Archiver                28/12/91
  4.                          -=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  5.  
  6.     The  HPACK  Multi-System Archiver is an archiver that was written to allow
  7.   the transfer of archived data to different systems.  In the  past  archivers
  8.   have  traditionally been available for single systems only, eg PKZIP(tm) and
  9.   LHARC for the PC, Larc for the Amiga,  StuffIt(tm)  and  Compactor  for  the
  10.   Macintosh,  and tar and compress for UNIX systems (while these archivers are
  11.   available on other systems, their use is not widespread).  It is intended to
  12.   make HPACK a more universal archiver by offering versions for the  following
  13.   computer systems:
  14.  
  15.       * MSDOS systems
  16.       * OS/2 systems (currently in development)
  17.       * Archimedes (currently in development)
  18.       * Macintosh (currently in development)
  19.       * Atari ST (planned)
  20.       * Commodore Amiga (planned)
  21.       * UNIX
  22.       * Apple IIgs (currently in development)
  23.       * VMS (planned)
  24.       * Primos (planned)
  25.       * Any other system which people offer to port it to
  26.  
  27. Using HPACK
  28. ===========
  29.  
  30.   HPACK is run with the following command:
  31.  
  32.     HPACK command [-options] archive [filenames.....][@scriptfiles.....]
  33.  
  34.   Allowed commands are:
  35.  
  36.     [A] - Add files to an archive.
  37.     [X] - Extract files from an archive.
  38.     [V] - Directory of files inside an archive.
  39.     [P] - View a file within an archive.
  40.     [T] - Test the integrity of an archive.
  41.     [D] - Delete files from an archive.
  42.     [F] - Freshen files to an archive.
  43.     [R] - Replace files in an archive.
  44.     [U] - Update files to an archive.
  45.  
  46.   Allowed options are:
  47.  
  48.     -b - Specify a base pathname for files.
  49.     -c - Encryption options.
  50.     -d - Directory options (Mkdir, Rmdir, Mvdir, path options etc).
  51.     -e - Add error recovery information.
  52.     -f - Store file attributes.
  53.     -i - Interactive mode - prompt for all files.
  54.     -k - Overwrite existing archives.
  55.     -m - Create multipart archive.
  56.     -o - Overwrite on extraction options (All, None, Smart).
  57.     -p - Store directories.
  58.     -r - Recurse through subdirectories.
  59.     -s - Stealth mode.
  60.     -t - Touch files on extraction.
  61.     -v - View files options (Files, Directories, All).
  62.     -w - Treat files as archive comments.
  63.     -x - Translate options for text files.
  64.     -z - Extended options (system-specific).
  65.  
  66.   Commands, options, and archive and file names may be given in upper or lower
  67.   case (they are given in uppercase in the examples which  follow  merely  for
  68.   consistency).   Options  may  be  lumped together or may be given seperately
  69.   preceded by the '-' delimiter.
  70.  
  71.   The  default  archive  extension  is  '.HPK'.   HPACK  will  always add this
  72.   extension, changing  any other given extension if necessary.  Note that some
  73.   quantum  physics theories  suggest  that  when  the  user  is  not  directly
  74.   observing the HPACK archive, it may  cease  to exist or will exist only in a
  75.   vague and indeterminate state; in  this  case  the existence  of  the '.HPK'
  76.   extension cannot be guaranteed.
  77.  
  78.   The filenames may be zero or more filenames, defaulting to all files  if  no
  79.   filenames  are  given  (in  other  words  archive  all  files in the current
  80.   directory,  or  dearchive/view  all  files  in  the  archive).   HPACK  uses
  81.   UNIX-style  wildcards  (which  are  described  in  more  detail below in the
  82.   section "HPACK Wildcards"), and will accept UNIX-style directory  seperators
  83.   in place of the usual ones used by the systems' command interpreter, so that
  84.   for example under MSDOS:
  85.  
  86.     HPACK A ARCHIVE /C/WORK/FILES
  87.  
  88.   is a perfectly acceptable alternative to the more usual:
  89.  
  90.     HPACK A ARCHIVE \C\WORK\FILES
  91.  
  92.   The  scriptfiles  are  names  of files preceded with an '@' character.  When
  93.   HPACK encounters one  of  these  it  will  treat  the  filename  as  a  file
  94.   containing  a  list  of files to process.  Script files and normal filenames
  95.   may be freely mixed on the command line.   See  the  section  "HPACK  Script
  96.   Files" below for more information.
  97.  
  98. HPACK Wildcards:
  99. ================
  100.  
  101.   When  HPACK scans  any filename  that  has  been  given to it, it will check
  102.   for the presence in the filename of any of the special characters:
  103.  
  104.     * ? [ ] \
  105.  
  106.   If one of these is detected, then the string of  characters  making  up  the
  107.   filename  will be treated as being a pattern for a filename, rather than the
  108.   name of a specific  file.   These  special  characters  have  the  following
  109.   meanings when used in a filename string:
  110.  
  111.     *       - Matches zero or more characters
  112.     ?       - Matches any one character
  113.     [...]   - Matches  any  of the enclosed range of characters '...' in turn.
  114.               If two characters appearing in the pattern in alphabetical order
  115.               are  seperated  by  a  dash  '-',  then  any  character  in  the
  116.               alphabetic  range  between these two characters will be matched.
  117.               This is a more selective version of the '?' form.
  118.     [^...]  - As above, but this time matches anything *not* in  the  enclosed
  119.               range of characters '...'.
  120.     \       - Treat the next character as a normal character rather  than  one
  121.               of the special characters.  This can be  used  to  override  the
  122.               usual  meaning  of the '*', '?', '[]', and '\' characters.  Note
  123.               that the MSDOS version of HPACK uses '#' instead  of  '\'  since
  124.               DOS uses '\' in its pathnames.
  125.  
  126.   The case-sensitivity when handling filenames depends on the operating system
  127.   HPACK  is  being  run  under.   Under  MSDOS,  filenames  are  converted  to
  128.   uppercase, but are not case-sensitive; under OS/2, filenames are left as is,
  129.   but are also not case sensitive (so that "FileName" will  match  "Filename",
  130.   "FILENAME",  and  "filename"); under Unix, filenames are left as is, and are
  131.   case sensitive, so that "makefile" and "Makefile" are  treated  as  seperate
  132.   names.
  133.  
  134.   These wildcards can be combined to create quite powerful  expressions.   For
  135.   example,  to  match  any  file  not beginning with an 'a', 'b', 'c', or 'f',
  136.   and containing at least two characters, the required expression would be:
  137.  
  138.     [^a-cf]?*
  139.  
  140.   where the [^a-cf] would match anything but 'a', 'b', 'c', or  'f';  the  '?'
  141.   would  match  the  second  character  required,  and the '*' would match any
  142.   remaining characters.
  143.  
  144.   For example, if we have an archive whose contents are:
  145.  
  146.     File1.Txt   File2.Txt   File3.Txt   File4.Txt   File5.Txt
  147.     File6.Txt   File7.Txt   File8.Txt   File9.Txt   Index.Txt
  148.  
  149.   we could perform the following file matches on it:
  150.  
  151.   Expression:       Matches files:
  152.  
  153.   *                 File1.Txt   File2.Txt   File3.Txt   File4.Txt   File5.Txt
  154.                     File6.Txt   File7.Txt   File8.Txt   File9.Txt   Index.Txt
  155.  
  156.   F*                File1.Txt   File2.Txt   File3.Txt   File4.Txt   File5.Txt
  157.                     File6.Txt   File7.Txt   File8.Txt   File9.Txt
  158.  
  159.   *4*               File4.Txt
  160.  
  161.   FILE?.TXT         File1.Txt   File2.Txt   File3.Txt   File4.Txt   File5.Txt
  162.                     File6.Txt   File7.Txt   File8.Txt   File9.Txt
  163.  
  164.   FILE[1-4].TXT     File1.Txt   File2.Txt   File3.Txt   File4.Txt
  165.  
  166.   FILE[^1-4].TXT    File5.Txt   File6.Txt   File7.Txt   File8.Txt   File9.Txt
  167.  
  168.   FILE[1-46].TXT    File1.Txt   File2.Txt   File3.Txt   File4.Txt   File6.Txt
  169.  
  170.   FILE[^13-5].TXT   File2.Txt   File6.Txt   File7.Txt   File8.Txt   File9.Txt
  171.  
  172.   Finally, note that these wildcards may not perform quite like  the  standard
  173.   wildcards used by the system's command interpreter.  For example under MSDOS
  174.   to  specify  all files in a directory or archive, it is not necessary to use
  175.   the usual sequence of "*.*".  Instead simply typing "*" will match  all  the
  176.   files  in  the  archive (the DOS wildcards are in fact a bit of a hack - for
  177.   example "*abc.*" will (incorrectly) match "*.*").   The  extended  wildcards
  178.   act  as  true  wildcards, so that "FILE.*" will not match "FILE" as it would
  179.   under DOS, since there is a spurious "." in the DOS wildcard matching. These
  180.   extended wildcards can be useful when extracting files which cannot normally
  181.   be handled by the command interpreter from archives, for example to  extract
  182.   the  file  "Filename with spaces in it"  from  the  archive ARCHIVE.HPK, you
  183.   would type:
  184.  
  185.     HPACK X ARCHIVE FILENAME?WITH?SPACES?IN?IT
  186.  
  187.   where the '?' wildcard will match the spaces.  Alternatively  you  can  just
  188.   type:
  189.  
  190.     HPACK X ARCHIVE FILENAME*
  191.  
  192.   which will do the same thing with a lot less typing involved.
  193.  
  194.   Another  point  is  that  these  wildcards  cannot be used to represent full
  195.   regular expressions (the idea behind HPACK was to create an archiver, not  a
  196.   regular  expression  parser), so that, for example, '*?' will not work as an
  197.   expression, and that they cannot  be  used  inside  pathnames  (for  example
  198.   DATA/S*/FILE)  as  the UNIX wildcards can (adding this capability is in fact
  199.   trivial, but since the extended wildcards are built  on  top  of  the  usual
  200.   operating system ones the resulting system runs very slowly).
  201.  
  202. HPACK Commands:
  203. ===============
  204.  
  205.   [A] - Add  files  to  an  archive.  The archive given in the command-line is
  206.         opened, or created if it doesn't  already  exist,  and  is  given  the
  207.         extension  '.HPK' if this is not explicitly specified.  Then all files
  208.         given  in  the  list of filenames are added to to it.
  209.  
  210.         Example: To add all files  in the  current directory  to  the  archive
  211.         ARCHIVE.HPK in the current directory:
  212.  
  213.         HPACK A ARCHIVE
  214.  
  215.   [X] - Extract  files from  an archive.  All  files are  extracted  from  the
  216.         archive given in the command line to the current  directory.   If  the
  217.         file already exists and no overwrite  options  are  given  (these  are
  218.         explained  in the section "HPACK Options" below), you will be asked if
  219.         you wish to overwrite it:
  220.  
  221.           File already exists - overwrite [y/n/a]
  222.  
  223.         'Y' will replace the file with the file from  the  archive,  'N'  will
  224.         skip  the extraction of this file, and 'A' will process all files from
  225.         this point (in other words it will assume a 'Y' answer for  each  file
  226.         from  this  point).  In some cases the name of the file extracted will
  227.         need  to  be  translated  to  allow  for  the  naming  conventions  of
  228.         differnent  operating  systems.  In these cases the original name will
  229.         be printed, followed by the name it will be extracted under.
  230.  
  231.         On Apple systems data is divided into two sections in a file, a  "data
  232.         fork" and a "resource fork".  Under DOS  only  the  data fork  will be
  233.         extracted from an archive: the resource fork (which only Apple systems
  234.         can make any use of) will be skipped.
  235.  
  236.         Example: To extract all files in ARCHIVE.HPK not  beginning with an 'A'
  237.         to the current directory:
  238.  
  239.         HPACK X ARCHIVE [^A]*
  240.  
  241.   [V] - Directory of which files are in an archive.  If no  view  options  are
  242.         given  (these  are explained in the section "HPACK Options" below),  a
  243.         listing in the following format is produced:
  244.  
  245.     HPACK - The multi-system archiver Version 0.75c0 (shareware version)
  246.     For MSDOS, OS/2, Macintosh, Apple IIgs, and UNIX
  247.     Copyright (c) Peter Gutmann 1989 - 1991.  Release date: 28/12/91
  248.  
  249.     Archive is 'ARCHIVE.HPK'
  250.  
  251.     System Length  Size  Ratio   Date     Time    Name
  252.     ------ ------  ----- -----   ----     ----    ----
  253.      MSDOS  18537   6217  66%  04/05/90 11:32:48  README.TXT
  254.      MSDOS   8301   3169  74%  27/12/90 21:02:39  LZSS.EXE
  255.      UNIX   30061   9127  70%  24/11/89 16:52:57  compr.method.txt
  256.       Mac    8481   3282  61%  22/12/90 08:58:52  Fast LZ Decoder using Bin...
  257.      OS/2       0      0   0%  01/07/91 18:20:20  Comp.Test
  258.     ------ ------ ------ -----                    ----
  259.             65380  21795  67%                     Total of 4 files
  260.  
  261.     Done
  262.  
  263.         The archive used is displayed, followed by a list  of  all  the  files
  264.         within  the  archive.  The fields for each file inside the archive are
  265.         as follows:
  266.  
  267.         System: The system the file was archived under.
  268.  
  269.         Length: The length of the file when unarchived.
  270.  
  271.         Size: The size of the compressed file within the archive.
  272.  
  273.         Ratio: The ratio of the compressed file to the uncompressed file.
  274.  
  275.         Date: The creation date of the file within the archive.
  276.  
  277.         Time: The creation time of the file within the archive.
  278.  
  279.         Name: The name of the file within the archive.  If  the  name  is  too
  280.               long  to  fit  on the screen then a '..' is appended to indicate
  281.               this.  In addition files may have a single  character  prepended
  282.               to  them:  an  asterisk  '*' before the name indicates that this
  283.               file has been encrypted, a dash '-' indicates that  it  includes
  284.               authentication  information, and a hash '#' indicates that it is
  285.               both encrypted and includes  authentication  information.   Note
  286.               that the name within the archive may not be the same as the name
  287.               given  to the unarchived file since translation may be necessary
  288.               to allow for  the  naming  conventions  of  different  operating
  289.               systems.
  290.  
  291.         Finally the total length of all files within the archive, uncompressed
  292.         and compressed, the overall compression ratio for the archive, and the
  293.         number of files within the archive, is given.  If  any  filespecs  are
  294.         given,  only  files  which  match  those  filespecs will be displayed.
  295.         This is useful when you only want to extract certain files  and  would
  296.         like to see how much space they will use.
  297.  
  298.         If more than one archive is viewed, a grand  total  of  the  size  and
  299.         number of files in all the archives viewed is printed.   The  type  of
  300.         information printed may be controlled by using the view options (which
  301.         are  explained  in the section "HPACK Options" below).  The default is
  302.         to  print  all files in the root directory of an archive.  If the root
  303.         directory contains no files, the error message "Nothing to do" will be
  304.         printed.  To recursively display the contents of  all  subdirectories,
  305.         the [-r]ecurse subdirectories option should be used.
  306.  
  307.         Example:  To view the contents of any archives on drive A:
  308.  
  309.         HPACK V A:*
  310.  
  311.   [P] - Display  files  from  within  an archive.  This option will output the
  312.         contents of one or more files within an archive,  with  a  prompt  for
  313.         more  between  files.   The  output  can be redirected in the standard
  314.         manner, for example:
  315.  
  316.         HPACK P DATA CONTENTS.DOC > PRN:
  317.  
  318.         will  send  the  file CONTENTS.DOC from within the archive DATA.HPK to
  319.         the printer, and:
  320.  
  321.         HPACK P DATA DESCRIPTION.DOC | MORE
  322.  
  323.         will display the file DESCRIPTION.DOC with page breaks on your screen.
  324.  
  325.         Example:   To  display  the  file  README.TXT  from within the archive
  326.         ARCHIVE.HPK:
  327.  
  328.         HPACK P ARCHIVE README.TXT
  329.  
  330.   [T] - Test the integrity of  an  archive.   HPACK  will  display  the  usual
  331.         messages about extracting data as it unpacks and tests the  data,  and
  332.         if any computed checksums do not  match  the checksum  stored with the
  333.         file when it was archived, will issue the following warning message:
  334.  
  335.           Warning: File checksum does not match computed checksum
  336.  
  337.         Otherwise HPACK will display:
  338.  
  339.           File tested OK
  340.  
  341.         Note  that  this  test is also performed automatically on extracting a
  342.         file from an archive.
  343.  
  344.         Example:  To test the integrity of all executable files in the archive
  345.         ARCHIVE.HPK:
  346.  
  347.         HPACK T ARCHIVE *.COM *.EXE
  348.  
  349.   [D] - Delete  file from an archive.  All files given in the command-line are
  350.         deleted from the given archive.
  351.  
  352.         Example:   To  delete  all  Pascal  program  files  from  the  archive
  353.         ARCHIVE.HPK:
  354.  
  355.         HPACK D ARCHIVE *PAS
  356.  
  357.   [F] - Freshen files in an archive.  The dates of all  specified files in the
  358.         archive are compared with the dates of the same files on disk.  If the
  359.         version on disk is more recent than the  stored  version,  the  stored
  360.         version is replaced by the version on disk.
  361.  
  362.         Example:  To freshen all files in the archive ARCHIVE.HPK:
  363.  
  364.         HPACK F ARCHIVE.HPK
  365.  
  366.   [R] - Replace files in an archive.  All  given  files  in  the  archive  are
  367.         replaced by their counterparts on disk.
  368.  
  369.         Example:  To replace the all files which begin with the letters A-G in
  370.         the archive ARCHIVE.HPK with their couterparts on disk:
  371.  
  372.         HPACK R ARCHIVE [A-G]*
  373.  
  374.   [U] - Update an archive.  All specified files not already in the archive are
  375.         added  to  the  archive,  and  all  files  already  in the archive are
  376.         replaced if the version on  disk  is  more  recent  than  the  version
  377.         already in the archive.
  378.  
  379.         Example:   To  update  the archive ARCHIVE.HPK with all files from the
  380.         directory B:/DATA/JUNK:
  381.  
  382.         HPACK U ARCHIVE B:/DATA/JUNK
  383.  
  384.   Note that the last four options need to create temporary work files on disk.
  385.   Thus it is necessary to have at least twice as much free disk  space to work
  386.   with as the total length of  the archive.  All  other  options use only  the
  387.   archive  file,  so  it is possible to use them with minimal free disk space.
  388.  
  389. HPACK Options:
  390. ==============
  391.  
  392.   -b - Specify  a base pathname for all files.  This option is followed by the
  393.        pathname which HPACK will use as a base path for all files to be  added
  394.        to  or  extracted from an archive.  This option is very convenient when
  395.        adding a number of files in the same directory to an  archive  or  when
  396.        extracting  an  archive  to  a  directory  which is not the same as the
  397.        current  directory.   It  is  also  useful  for handling archives which
  398.        contain subdirectories.  To add files to a subdirectory  within  HPACK,
  399.        the base pathname is used to specify the path to the subdirectory, with
  400.        the actual file pathname given being the path inside HPACK in which the
  401.        file will be stored.  In this case the argument given with the  [-b]ase
  402.        path  option  is  the part of the pathname outside the archive, and the
  403.        file pathname is the part of the pathname inside the archive.
  404.  
  405.        Example: To extract  all  files  in  the  archive  ARCHIVE.HPK  to  the
  406.        directory D:/OUTPUT/DATA:
  407.  
  408.        HPACK X -BD:/OUTPUT/DATA ARCHIVE
  409.  
  410.        Example: To add the files FILE1, FILE2, TEXT, and PROGRAM.EXE,  all  in
  411.        the directory D:/JUNK/DATA, to the archive ARCHIVE.HPK:
  412.  
  413.        HPACK A -BD:/JUNK/DATA ARCHIVE FILE[1-2] TEXT PROGRAM.EXE
  414.  
  415.        Example: To  add  the  files  in   C:/JUNK/DATA/FILES  to  the  archive
  416.        ARCHIVE.HPK inside the archive directory DATA/FILES:
  417.  
  418.        HPACK A -BC:/JUNK ARCHIVE DATA/FILES/*
  419.  
  420.   -c - Encrypt/decrypt   files  in  the  archive  using  the  NSEA  encryption
  421.        algorithm.   This  has an optional parameter of '1' or '2' which can be
  422.        used to specify the level of encryption, defaulting to Level  1  if  no
  423.        parameter is given.  Level 1 is adequate for most purposes, while Level
  424.        2  is  recommended  for  high-security applications.  Using this option
  425.        will prompt for a passphrase before any files are added, followed by  a
  426.        request  to  retype  the  passphrase  for security if the data is being
  427.        encrypted.   The  passphrase, which is not echoed to the screen, should
  428.        be a minimum of six and a maximum of fifty  characters  long,  and  may
  429.        contain  any  combination  of  upper  and  lowercase  letters, numbers,
  430.        spaces, and punctuation symbols.  Be warned that forgetting  or  losing
  431.        this  key  will  present  you  with  a  fairly  substantial exercise in
  432.        cryptography.  Note that using the encryption feature  will  result  in
  433.        the  compressed  file  expanding  by  between  0 and 7 bytes due to the
  434.        necessity of padding the data out with random noise to the  block  size
  435.        used by the NSEA encryption algorithm.
  436.  
  437.        Example: To encrypt all files to be added to  the  archive  ARCHIVE.HPK
  438.        with an encryption level of 2:
  439.  
  440.        HPACK A -C2 ARCHIVE
  441.  
  442.        In addition, HPACK allows entire archives (rather than just the files in
  443.        them) to be encrypted, meaning that not even the archive  directory  can
  444.        be  read  by  someone  who  does not have the decryption password.  This
  445.        feature is present but not currently supported.
  446.  
  447.        In order to comply with US export restrictions  on encryption  software
  448.        HPACK has  currently  had  the encryption code removed (see the section
  449.        "HPACK Archive/Data Authentication" below).  In  future a  version with
  450.        full encryption may be available from non-US sites.
  451.  
  452.   -d - Directory  options.   This  hideously  complicated  command has a large
  453.        number of suboptions, which are as follows:
  454.        <Note: Some of these aren't implemented yet:  Feedback  on whether this
  455.               way of doing things is a good idea or not would be appreciated>.
  456.  
  457.        -dm - Mkdir: Create the given directories.
  458.              <Not yet implemented - if  necessary  this  can be faked by using
  459.               'hpack a -da <path> <non-matching filespec>' where path  is  the
  460.               new directory to add and the  non-matching filespec ensures that
  461.               only the new directory,  but none of the files in it, are added>
  462.        -dr - Rmdir: Delete the given directories.
  463.              <Not yet implemented>
  464.        -dv - Mvdir:  Move the given directory into the second given directory.
  465.              Warning:   Through injudicious use of this command it is possible
  466.              to create circular directory references, or  to  cut  off  entire
  467.              directory   trees.    Do   not   try  to  move  directories  into
  468.              subdirectories of themselves! (Or should HPACK check for this??)
  469.              <Not yet implemented>
  470.        -da - Store  all  directories  scanned,  even if they contain no files.
  471.              This option is  useful  for  storing  entire  filesystems  inside
  472.              archives.
  473.        -dn - Do  not  create  the  directory  inside the archive if it doesn't
  474.              already exist.  If an  attempt  is  made  to  add  a  file  to  a
  475.              nonexistant directory, HPACK will exit with an error message.
  476.  
  477.        Example: To  delete  the  directory   DATA/JUNK  inside   the   archive
  478.        ARCHIVE.HPK:
  479.  
  480.        HPACK A -DR ARCHIVE DATA/JUNK
  481.  
  482.        Note the use of the [A]dd command as a dummy command: In this case  the
  483.        main command is ignored and only the directory option is used (ICK!).
  484.  
  485.        Example: To move all directories below and including DATA/JUNK  in  the
  486.        archive ARCHIVE.HPK into the directory STUFF:
  487.  
  488.        HPACK A -DV ARCHIVE DATA/JUNK STUFF
  489.  
  490.        Example: To add all files and directories  (even  empty  ones)  in  and
  491.        below the current directory to the archive ARCHIVE.HPK:
  492.  
  493.        HPACK A -RPDA ARCHIVE
  494.  
  495.   -e - Add  error recovery information to the archive.  HPACK will write extra
  496.        information with the file data which may be used to recover the data if
  497.        the  main  archive  directory  is  seriously  damaged.   This  recovery
  498.        information will increase the amount of data stored for  each  file  by
  499.        about 20-25 bytes.
  500.  
  501.        Example: To add all text files in  the  directory  A:/DATA  to  archive
  502.        ARCHIVE.HPK, adding error recovery information for each file:
  503.  
  504.        HPACK -E ARCHIVE A:/DATA/*.TXT
  505.  
  506.   -f - Store  file  attributes.   Many operating systems support two levels of
  507.        files, those classed  as  'normal',  and  those  classed  as  'hidden',
  508.        'invisible',  'system  files', and so on (for example the Macintosh and
  509.        MSDOS both have these file types).  By  default  HPACK  will  only  add
  510.        normal  files to an archive.  However using the [-f]ile attributes flag
  511.        allows archiving of files with  special  attributes  as  well  as  full
  512.        restoration  of  attributes  when archives are extracted.  In addition,
  513.        HPACK will attempt to translate the attributes of files from  different
  514.        systems into equivalent file attributes for the local system.  This has
  515.        varying  degrees  of  effectiveness:  Many of the Macintosh, MSDOS, and
  516.        Apple  IIgs  attributes  are  equivalent  so  a  direct  translation is
  517.        possible; UNIX, the Archimedes, and the Apple IIgs also  have  some  of
  518.        the  read/write  attributes in common, and have a rough equivalent of a
  519.        read-only file attribute in these attributes; and QNX has no equivalent
  520.        file attributes.
  521.  
  522.        If  the  [-p]ath  store  option is used HPACK will also store directory
  523.        attributes, and set the directory attributes to the stored values  when
  524.        creating the directories on extraction.
  525.  
  526.        Example:  To  extract  all  files  in the root directory of the archive
  527.        ARCHIVE.HPK, restoring all possible attribute information:
  528.  
  529.        HPACK X -F ARCHIVE
  530.  
  531.   -i - Interactive  mode  - prompt for each file before it is processed.  This
  532.        options works for all commands except [V]iew files (for which it  would
  533.        be pointless). Before the file is processed, HPACK will ask whether you
  534.        wish to process this file; answering 'Y' will handle the file, 'N' will
  535.        skip the file, and 'A' will process all files from this point (in other
  536.        words it will assume a 'Y' answer for each file from this point).
  537.  
  538.        Example:  To  add  all  files  in  the current directory to the archive
  539.        ARCHIVE.HPK, prompting for each file before adding it:
  540.  
  541.        HPACK A -I ARCHIVE *
  542.  
  543.   -k - Overwrite the archive if it already exists.  This only works  with  the
  544.        [A]dd command.  Normally, using the [A]dd  command  will  add  any  new
  545.        files  to  the  end  of  an existing archive.  Using the [-k]ill switch
  546.        will erase the old archive and create a new one.
  547.  
  548.        Example:  To create the archive ARCHIVE.HPK on drive A:, overwriting it
  549.        if it already exists, and add all files in the current directory to it:
  550.  
  551.        HPACK A -K A:ARCHIVE
  552.  
  553.   -m - Create a multipart archive.  Normally when HPACK runs out of disk space
  554.        it will exit with an error message.  When this  option  is  used  HPACK
  555.        will  instead  prompt  for another disk and continue the archive on the
  556.        new  disk.   In  this manner it is possible to  spread an archive which
  557.        would  be  too  large for a single disk  over  several  disks.   Due to
  558.        their rather special nature, multipart  archives  do  not  support  the
  559.        [D]elete,  [F]reshen,  [R]eplace,  or  [U]pdate  commands  (since,  for
  560.        example, deleting a file from the middle of an archive which  stretches
  561.        over 15 disks would be quite time-consuming).  All other operations are
  562.        supported however.
  563.  
  564.        Example:  To fully back up hard drive C: onto drive A:
  565.  
  566.        HPACK A -KMFRPDA A:ARCHIVE C:/*
  567.  
  568.        This will create the archive ARCHIVE.HPK on one or more disks in  drive
  569.        A:  containing  the complete contents of the drive C: (the options used
  570.        are [-k]ill existing archive, [-m]ultipart archive, store  [-f]ile  and
  571.        directory attributes, [-r]ecurse through all subdirectories, store file
  572.        [-p]aths, and for [-d]irectories store [a]ll of them, even empty ones).
  573.        Once each disk has been completely filled, HPACK will prompt:
  574.  
  575.          Please insert the next disk and press a key
  576.  
  577.        followed by the message:
  578.  
  579.          Continuing...
  580.  
  581.        as it continues the archive on the next disk inserted.  Note the use of
  582.        the  [-k]ill  existing archive option to overwrite any existing archive
  583.        of the same name which may already exist on the disk - if  HPACK  finds
  584.        an  archive  of  the  given  name  already  on the disk and the [-k]ill
  585.        option is not specified, it will not,  by  default,  overwrite  it  but
  586.        will exit with an error message.
  587.  
  588.        Multipart archives have a minimum size of around 500 bytes (roughly the
  589.        size  of a disk sector for many disk formats - storing archive parts of
  590.        less than 500-odd bytes would be pointless).  If a section of a  multi-
  591.        part  archive  is  less than approximately 500 bytes HPACK will skip it
  592.        and move it to the next (hopefully less full) disk after  printing  the
  593.        following warning:
  594.  
  595.          Warning: Archive section too short, skipping...
  596.  
  597.        If a multipart archive is small enough to fit onto a single disk, HPACK
  598.        will  store  the  archive  as a standard archive instead of a multipart
  599.        one.
  600.  
  601.        Example: To view the files in the previously created multipart archive:
  602.  
  603.        HPACK V A:ARCHIVE
  604.  
  605.        HPACK will automatically determine whether the archive is  a  multipart
  606.        archive  or  not  so  the  [-m]ultipart  command is only necessary when
  607.        creating the archive.  Since HPACK stores its directory information  at
  608.        the end of the archive, only the last disk or disks of the archive must
  609.        be  read  to  obtain  the  archive  directory.   Initially  HPACK  will
  610.        prompt:
  611.  
  612.          Please insert the disk containing the last part of this archive and
  613.            press a key.
  614.  
  615.        If the wrong disk is inserted, HPACK will prompt:
  616.  
  617.          This is part <n> of a multipart archive.
  618.          Please insert the disk containing the last part of this archive and
  619.            press a key.
  620.  
  621.        where <n> is the part number of this section of the archive.
  622.  
  623.        Example: To extract the single  file  LETTER.TXT  from  the  previously
  624.        created archive:
  625.  
  626.        HPACK X A:ARCHIVE LETTER.TXT
  627.  
  628.        HPACK will then prompt for the disk which contains the file LETTER.TXT:
  629.  
  630.          Please insert the disk containing part <n> of this archive and press
  631.            a key.
  632.  
  633.        where <n> is the part number of  the  archive  section  which  contains
  634.        LETTER.TXT.
  635.  
  636.        Example:  To  fully  restore  hard drive C: from the previously created
  637.        archive:
  638.  
  639.        HPACK X -RP A:ARCHIVE
  640.  
  641.        HPACK  will  prompt  for the last part of the archive as usual and then
  642.        for each disk in turn as it extracts the files from the archive.
  643.  
  644.   -o - Specify overwrite options for file  extraction.   Normally  when  HPACK
  645.        tries  to  extract  a  file  which  already  exists, it will prompt for
  646.        whether the existing file should be  overwritten  or  not.   With  this
  647.        switch  it  is possible to specify a default action to be taken.  There
  648.        are three possibilities:
  649.  
  650.        -oa - Automatically overwrite [A]ll existing files on extraction.
  651.        -on - Automatically  overwrite  [N]one  of  the   existing   files   on
  652.              extraction.
  653.        -os - [S]mart overwrite.  HPACK will change the extension of  the  file
  654.              to  be  extracted  to ".000", and try to extract this file.  If a
  655.              file  of  this name already exists, the extension will be changed
  656.              to ".001" and so on until it is possible  to  extract  the  file.
  657.              This option is very useful for files that have been archived on a
  658.              system  which  allows  filenames which are longer or more complex
  659.              than those allowed by the local  system  and  which  due  to  the
  660.              filename  being  truncated  or  translated  end up with identical
  661.              names.
  662.        -op - [P]rompt for new filename.  HPACK will ask for a new filename and
  663.              try to use that name, repeating until a non-conflicting  filename
  664.              is given.
  665.  
  666.        Example: To extract all files  from  the  archive  ARCHIVE.HPK  to  the
  667.        current directory, skipping any files that already exist:
  668.  
  669.        HPACK X -ON ARCHIVE
  670.  
  671.   -p - Store  directories.   This  will  create directories inside the archive
  672.        corresponding to the directories containing the file(s) being archived,
  673.        in effect allowing you to archive entire directory trees.
  674.  
  675.        HPACK  will add directories traversed only if there are files contained
  676.        in them.  To add all directories regardless  of  whether  they  contain
  677.        files  or  not,  use the [-d]irectories [a]ll option (see section on -d
  678.        options above).
  679.  
  680.        Example: To  add  all  files  in  all  directories,  along   with   the
  681.        directories themselves, in and  below  the  current  directory  to  the
  682.        archive ARCHIVE.HPK:
  683.  
  684.        HPACK A -RP ARCHIVE *
  685.  
  686.   -r - Recurse through subdirectories.   HPACK  will  step  through  all  sub-
  687.        directories of the current directory, and  add  all  files  with  names
  688.        matching those given on the command line.
  689.  
  690.        Example: To add all files in all directories in and below  the  current
  691.        directory to the archive ARCHIVE.HPK:
  692.  
  693.        HPACK A -R ARCHIVE *
  694.  
  695.   -s - Run  in  stealth mode.  All messages except warnings and error messages
  696.        are suppressed.  HPACK will automatically turn on stealth  mode  if  it
  697.        detects  it  is  running  in  the background on operating systems which
  698.        support background operation.
  699.  
  700.        Example: To add all files in the current directory to all  archives  in
  701.        the  current  directory, without printing the usual progress reports to
  702.        the screen:
  703.  
  704.        HPACK A -S *
  705.  
  706.   -t - Touch  all files and directories on extraction.  All file and directory
  707.        dates and times will be  set  to  the  date/time  they  were  extracted
  708.        instead of the time they were archived.
  709.  
  710.        Example: To extract all files from the archive  /DATA/ARCHIVE.HPK,  and
  711.        leave the file dates as the time of extraction:
  712.  
  713.        HPACK X -T DATA/ARCHIVE
  714.  
  715.   -v - View options.  Normally when the [V]iew command  is  used,  HPACK  will
  716.        print  all  the directories and files in an archive.  With this options
  717.        it is possible to specify which parts of the archive are to be  viewed.
  718.        There are three possible options:
  719.  
  720.        -vf - Display only the files within the archive.
  721.        -vd - Display only the directories within the archive.
  722.        -va - Display all files, directories, and subdirectories of directories
  723.              within  the  archive.   This is the same as a recursive directory
  724.              command.
  725.        -vs - Sort  files.   Normally files are displayed in the order in which
  726.              they are stored within the archive.  Using this option will  sort
  727.              the files by name before displaying them.
  728.  
  729.        Example: To  print  all  the  files,   but  not  any   directories   or
  730.        subdirectories, in the archive ARCHIVE.HPK:
  731.  
  732.        HPACK V -VF ARCHIVE.HPK
  733.  
  734.   -w - Treat  file(s)  as  archive  comments.  This makes the [A]dd, [D]elete,
  735.        [F]reshen, [R]eplace, and [U]pdate commands work for  archive  comments
  736.        instead  of  normal  files.   Archive  comments  are  files  which  are
  737.        displayed when the [V]iew archive command is used, and may contain text
  738.        describing the contents  of  the  archive,  ANSI  extended  characters,
  739.        graphics,  digitised sound, and so on.  The MSDOS version of HPACK will
  740.        currently only handle the displaying of plain text and  ANSI-text  type
  741.        archive  comments.  Comments can be added, deleted, replaced, and so on
  742.        just like normal files.  Subdirectories can contain their own comments,
  743.        and each directory can contain multiple  comment  files.   In  addition
  744.        comment  filenames  are  not  treated as normal archive filenames, so a
  745.        directory can contain a comment file and a normal archived file of  the
  746.        same  name.  Possible archive comment types are:
  747.  
  748.        -w  - Plain text comment.  This can be entered in free-form since HPACK
  749.              will automatically word wrap the text to  fit  the  screen  size.
  750.              Plain  text  comments  may also contain formatting commands which
  751.              control the way the text is displayed.  For more  information  on
  752.              formatting the text comments, see the extended documentation file
  753.              HPACKEXT.DOC.
  754.        -wa - ANSI text comment.  This type of comment can contain the extended
  755.              character set used by IBM PC's, as well as ANSI escape codes.  No
  756.              reformatting of any type is done on ANSI comments.  Note that the
  757.              plain  text  comment type is preferred, since many systems cannot
  758.              display the extended ANSI character set or interpret ANSI  escape
  759.              codes.  Also note that if an ANSI comment is stored as plain text
  760.              HPACK will quietly delete all extended characters and ANSI escape
  761.              codes  when  it  displays  the comment, to make it conform to the
  762.              ASCII character set.
  763.        -wg - GIF format graphics comment.  Display of  this comment  format is
  764.              generally only suported on systems  running  graphics-based  user
  765.              interfaces.
  766.  
  767.        Example: To view all comment-type files in the archive  ARCHIVE.HPK  as
  768.        files instead of displaying them as comments:
  769.  
  770.        HPACK V -W ARCHIVE.HPK
  771.  
  772.   -x - Text  file  translate  options.   Different systems store text files in
  773.        different  formats,  for  example under Unix, these are stored in ASCII
  774.        format with a linefeed at the end of each line; under MSDOS, there  are
  775.        carriage  return/linefeed  pairs  at  the  end of each line; and on the
  776.        Macintosh, there are carriage returns at the end of  each  line.   Some
  777.        systems  store  text  in  a non-ANSI format altogether, for example IBM
  778.        systems which use the EBCDIC character set, and Prime systems which use
  779.        their own bizarre text encoding technique.  Using  this  option  it  is
  780.        possible  to  specify  translation  of  different character systems and
  781.        end-of-line markers to the one used  by  the  local  system.   In  most
  782.        cases  the  [-x]late  option  will  suffice,  however it is possible to
  783.        override the translation using the following options:
  784.  
  785.        -x  - Smart translate.  HPACK will attempt to translate  all  files  it
  786.              recognises  as  text  files  from the textfile format used on the
  787.              system the file was archived on.  In most cases this option  will
  788.              be the only one necessary.
  789.        -xr - Treat carriage return (ASCII  13)  as  end-of-line  marker.   The
  790.              Macintosh stores text this way.
  791.        -xl - Treat linefeed (ASCII 10) as end-of-line marker.  Text  on Amigas
  792.              and UNIX systems is stored in this manner.
  793.        -xc - Treat carriage return/linefeed pairs as end-of-line marker. MSDOS
  794.              and OS/2 store text files like this.
  795.        -xxnn-Treat the one- or two-character hexadecimal value 'n' or 'nn'  as
  796.              the  character  to use as the end-of-line delimiter.  For example
  797.              when moving textfiles from  a  QNX  system  (which  uses  the  RS
  798.              character, ASCII 30 or 1E hex), the option would be -xx1e.
  799.        -xe - Translate  the  character  set from EBCDIC to ASCII.  Text on IBM
  800.              systems is stored this way.
  801.        -xp - Translate the character encoding from that used on Prime  systems
  802.              to ASCII.
  803.        -xa - Translate from ASCII to ASCII.
  804.  
  805.        The textfile translation works by first  translating  entire  character
  806.        sets  (either  ASCII,  Prime  ASCII  or  EBCDIC) if necessary, and then
  807.        translating  the  end-of-line  characters,  depending  on  the  options
  808.        specified.
  809.  
  810.        The end-of-line translation options are only available where they would
  811.        make  sense  (for example the ability to translate linefeed to linefeed
  812.        isn't particularly useful).  The possible translation options are shown
  813.        below, with LF being the linefeed character, CR being carriage  return,
  814.        and CRLF being carriage return/linefeed pairs:
  815.  
  816.               To |    MSDOS           Unix            Macintosh
  817.          From    |    OS/2            Amiga
  818.        ----------+-----------------------------------------------
  819.          MSDOS   |                    [-xc]              [-xc]
  820.          OS/2    |     ---         CRLF -> LF         CRLF -> CR
  821.                  |
  822.          Unix    |    [-xl]                              [-xl]
  823.          Amiga   |  LF -> CRLF         ---              LF -> CR
  824.                  |
  825.                  |    [-xr]           [-xr]
  826.        Macintosh |  CR -> CRLF       CR -> LF             ---
  827.                  |
  828.  
  829.        Example: To extract all files with the extension .TXT from the  archive
  830.        ARCHIVE.HPK,  translating linefeed characters into whatever end-of-line
  831.        character the local system uses:
  832.  
  833.        HPACK X -XL ARCHIVE *.TXT
  834.  
  835.        Example: To extract all files with the extension .TXT from the  archive
  836.        ARCHIVE.HPK,   translating   the   files  from  EBCDIC  to  ASCII,  and
  837.        translating all carriage return characters to the end-of-line character
  838.        used by the local system:
  839.  
  840.        HPACK X -XEXR ARCHIVE *.TXT
  841.  
  842.   -z - Extended options.  These are highly system-specific and in general will
  843.        only be present on  one  particular  version  of  HPACK.   They  either
  844.        support   the  storing/extraction  of  system-specific  information  in
  845.        archives, or the special handling of data which has  been  archived  on
  846.        another system.  The recognised options are:
  847.  
  848.        -zlower - UNIX  version  only.  Force  all  file and directory names to
  849.                  lowercase.  Some systems store file and  directory  names  in
  850.                  uppercase   only.   Using  this  option  all  names  will  be
  851.                  converted to lowercase before any operations (such as  [V]iew
  852.                  archive,  [X]tract from archive, and so on), are performed on
  853.                  them.   When  processing MSDOS archives under UNIX the use of
  854.                  the -[zlower] option is recommended.
  855.  
  856.        -s - MSDOS version only.  Check all files for [s]afe extraction.  MSDOS
  857.             has  a serious problem in that when a file with the same name as a
  858.             device driver is extracted (for example 'CON', 'COM1', or  'LPT1')
  859.             it  will  force  the contents of that file into the device driver.
  860.             The damage can be minor for devices like 'CLOCK$' (it  will  at  a
  861.             minimum mangle the system date and time, perhaps scramble the CMOS
  862.             ram, or cause the system to hang - even  the  changing  of  system
  863.             dates  can  cause problems on a system running a computer bulletin
  864.             board which relies on correct timestamps), all the way through  to
  865.             very serious for devices like 'SMARTAAR' (it will corrupt the disk
  866.             cache and therefore corrupt the drives being cached).
  867.  
  868.             The [s]afe option will check each file before extracting  it,  and
  869.             if it corresponds to a device driver will print the warning:
  870.  
  871.               File corresponds to device driver - skipping
  872.  
  873.             and  move  on  to the next file.  The only way in which HPACK will
  874.             allow a file of  this  type  to  be  extracted  is  by  using  the
  875.             [o]verwrite  [p]rompt  option, in which you will be prompted for a
  876.             new filename to extract under.  Even [o]verwrite [s]mart is unsafe
  877.             since the peculiar handling of device drivers  by  DOS  makes  the
  878.             automatic substitution of a new filename very difficult.
  879.  
  880.             Filenames  which can cause these problems are virtually unheard-of
  881.             - they would have to be created deliberately by a malicious  user,
  882.             in  which  case  there are few limits on the potential damage they
  883.             can cause.
  884.  
  885. HPACK Script Files:
  886. ===================
  887.  
  888.     Whenever HPACK encounters a filename beginning with an '@' char it  treats
  889.   the  rest  of  the  filename as a file containing a list of files to process
  890.   combined with commands which control the operation of  HPACK.  Script  files
  891.   have the following format:
  892.  
  893.     - Leading spaces/tabs (whitespace) are ignored.
  894.  
  895.     - Lines with a '#' as the  first  non-whitespace character  followed by at
  896.       least one whitespace  character  are  treated  as  comment  lines.   For
  897.       compatibility with future versions of HPACK which will include scripting
  898.       there  should always be at least one whitespace character after the '#'.
  899.       If HPACK finds a non-whitespace character following a '#', it  will  try
  900.       and  interpret  it  as  a  script  command.   If it cannot interpret the
  901.       command, it will warn:
  902.  
  903.         Warning: Unknown script command
  904.  
  905.     - All other lines are treated as filenames for HPACK to process.
  906.  
  907.     - Lines  may  be  terminated  by  either  linefeeds,  carriage returns, or
  908.       carriage return/linefeed pairs (the latter being the DOS default  method
  909.       of storing text files).
  910.  
  911.   A sample script is:
  912.  
  913.     # Sample script file
  914.  
  915.     # Save latest work
  916.     c:/users/peterg/hpack/src/*.c
  917.     c:/users/peterg/hpack/src/*.h
  918.     c:/users/peterg/hpack/src/asm/*.asm
  919.  
  920.     # Save correspondence
  921.     d:/spool/mail/*
  922.  
  923.   Note that the script files themselves are not subject to being overridden by
  924.   the  base  path  specified  with  the -b option (see "HPACK Options" above).
  925.   However  filenames  given  within  the script file will be overridden by the
  926.   base path.
  927.  
  928.   Example:  To freshen the archive ARCHIVE.HPK with all the files in the files
  929.   matching SCRIPT* as well as MAIL.TXT and COMPMAIL.TXT:
  930.  
  931.   HPACK F ARCHIVE MAIL.TXT @SCRIPT* COMPMAIL.TXT
  932.  
  933. HPACK Archive Integrity:
  934. ========================
  935.  
  936.     HPACK checks the integrity of files stored within an archive by encoding a
  937.   continuous checksum as part of each file when it is archived,  and  decoding
  938.   it  as  the  file  is  extracted.  As soon as an error is encountered, HPACK
  939.   will skip over the rest of the file and move on to the  next  one.   If  the
  940.   file  checksums  differ  then  it may be reasonably assumed that there is an
  941.   error in the  extracted  data.   This  is  important:  The  entire  physical
  942.   universe,  including  HPACK  itself,  may  one  day  collapse  back  into an
  943.   infinitely small space. Should another universe subsequently re-emerge,  the
  944.   integrity of HPACK archives in that universe cannot be guaranteed.
  945.  
  946.   HPACK  also  checksums  the  archive directory.  If an error is found in the
  947.   directory information, the message:
  948.  
  949.     Warning: Archive directory corrupted.  Continue (y/n)
  950.  
  951.   will  be  displayed.   Hitting  'N' at this point will abort any attempts to
  952.   process the archive, hitting 'Y' will process the (damaged) archive.   HPACK
  953.   will  attempt  some  error  recovery  in  this  case  (for example files and
  954.   directories which seem to be in impossible directories will  be  moved  into
  955.   the  root  directory), and some files may be able to be recovered.  If error
  956.   recovery information (specified  with  the  [-e]rror  recovery  option  (see
  957.   "HPACK  Options"  above))  is  present,  chances  of recovering data from an
  958.   archive with a corrupted directory are greatly enhanced.
  959.  
  960. HPACK Archive/Data Authentication:
  961. ==================================
  962.  
  963.     HPACK includes provisions for authenticating archived  data  by  adding  a
  964.   unique  digital  signature  to  either  entire  archives or individual files
  965.   within an archive.  This works exactly like a normal signature on a piece of
  966.   paper, proving that the sender was  the  true  originator  of  the  file  or
  967.   archive.   Forgery  of  a  digital signature of this sort is computationally
  968.   infeasible, and once the data  has  been  signed  the  sender  cannot  later
  969.   disavow  his  or her signature.  In addition a cryptographic checksum of the
  970.   data or archive is made and included as  part  of  the  signature  to  allow
  971.   detection  of  any  attempts  to  tamper  with  the  data.   Like  forging a
  972.   signature, defeating the checksum is computationally infeasible.
  973.  
  974.     When  the  data  in  an archive with authentication information present is
  975.   extracted or tested, an authentication check is  performed  for  the  entire
  976.   archive  before it is processed.  The authentication system used is based on
  977.   Philip Zimmermanns excellent PGP encryption software and uses the same  data
  978.   formats  as PGP.  In order for the authenticity check to be possible, a file
  979.   called  KEYRING.PUB  which  contains  the  public  key  of  the  person   or
  980.   organization who signed the file or archive is needed.  Like PGP, HPACK will
  981.   either  search for this file in the current directory or use the environment
  982.   variable PGPPATH to look for the file.  The PGPPATH variable should  contain
  983.   the  path  to the KEYRING.PUB file, so for example if KEYRING.PUB was in the
  984.   directory C:/UTILS/PGP, then PGPPATH should be set with:
  985.  
  986.     set PGPPATH=C:/UTILS/PGP/
  987.  
  988.     If the PGPPATH directory exists and there is a KEYRING.PUB file present in
  989.   both the current and the PGPPATH directories, the  keyring  in  the  PGPPATH
  990.   directory  will be searched first, and if no matching key is found the local
  991.   keyring will be checked.  This means that by default the master  keyring  is
  992.   always used, overriding any local keys if necessary.
  993.  
  994.     The  data  in the archive, or the archive itself, will then be checked for
  995.   validity using this key.  If the authentication check succeeds, the message:
  996.  
  997.     Good signature from <name>.
  998.     Signature made on <date>.
  999.  
  1000.   will  be displayed, with <name> being the name of the person or organization
  1001.   who made the signature, and <date> being the date the signature was made (on
  1002.   MSDOS systems the signature time may be off by a few hours since DOS doesn't
  1003.   adjust the time for time zones).  If the check fails, the message:
  1004.  
  1005.     Warning: Bad signature, doesn't match file contents.
  1006.     Bad signature from <name>.
  1007.     Signature made on <date>.
  1008.  
  1009.   If  the  archive  is a multipart archive (for which the authentication check
  1010.   can take some time since an archive stretching over several disks  needs  to
  1011.   be processed), the message:
  1012.  
  1013.     Verify multipart archive authenticity [y/n]
  1014.  
  1015.   is displayed.  'Y' will check the authenticity of the archive, 'N' will skip
  1016.   the authenticity check and continue with processing the archive.
  1017.  
  1018.   The  signature  scheme  used  is  the  RSA public key cryptosystem (for more
  1019.   information on  this  and  the  PGP  encryption  package  see  the  extended
  1020.   documentation  HPACKEXT.DOC).  This scheme involves the manipulation of very
  1021.   large numbers, which can be quite time-consuming on slow systems, where  the
  1022.   signature check can take several minutes.
  1023.  
  1024.   Unlike encryption software, authentication  code  is  not  export-restricted
  1025.   from  the US.  The U.S. Code of Federal Regulations, Title 22 which includes
  1026.   sub-chapter M, "International Traffic in Arms Regulations" (ITAR),  makes an
  1027.   exception for software that can only be used for authentication purposes and
  1028.   cannot not be used for general-purpose encipherment  and decipherment, as is
  1029.   the case for HPACK in its current state with the encryption code removed.
  1030.  
  1031. HPACK Error Messages:
  1032. =====================
  1033.  
  1034.   The error messages given by HPACK are the following:
  1035.  
  1036.   [ Nothing to do ]
  1037.     The command you  have  given resulted  in no  changes  being  made to  the
  1038.     archive(s) specified.  There can be several reasons for  this:  The  files
  1039.     you specified were not on the disk; there were no matching files to freshen
  1040.     /update; or there were no  matching files  in  the  root directory  of  the
  1041.     archive (HPACK  will not,  by  default,  check subdirectories:   To  handle
  1042.     subdirectories you  must either  give  the full path within the archive, or
  1043.     use the [-r]ecurse subdirectories option).
  1044.  
  1045.   [ Out of disk space ]
  1046.     There   is not enough  room  on the  current  disk  to  finish  archiving/
  1047.     unarchiving a file.
  1048.  
  1049.   [ Unknown command ]
  1050.     You  have  given  HPACK  a command which it doesn't understand.  Check the
  1051.     section "HPACK Commands" for valid HPACK commands.
  1052.  
  1053.   [ Unknown option ]
  1054.     You have given HPACK an option which it  doesn't  understand.   Check  the
  1055.     section "HPACK Options" for valid HPACK options.
  1056.  
  1057.   [ Unknown overwrite option ]
  1058.     You  have  specified  an unknown option for the -o overwrite switch.  This
  1059.     error may also be caused by  forgetting  to  specify  an  option  for  the
  1060.     switch,  in  which case HPACK will treat the character following the -o as
  1061.     the option.
  1062.  
  1063.   [ Unknown view option ]
  1064.     You have specified an unknown option for the -o view options switch.  This
  1065.     error  may  also  be  caused  by  forgetting  to specify an option for the
  1066.     switch, in which case HPACK will treat the character following the  -v  as
  1067.     the option.
  1068.  
  1069.   [ Unknown directory option ]
  1070.     You have specified an unknown option for the -d directory options  switch.
  1071.     This  error  may also be caused by forgetting to specify an option for the
  1072.     switch, in which case HPACK will treat the character following the  -d  as
  1073.     the option.
  1074.  
  1075.   [ Bad wildcard format ]
  1076.     You have used an incorrect format when using wildcards in filenames.
  1077.  
  1078.   [ Wildcard expression too complex ]
  1079.     You have used a very complex wildcard sequence,  and  HPACK  doesn't  have
  1080.     enough room to process it fully.  Try simplifying the expression, or break
  1081.     it up into seperate simpler expressions.
  1082.  
  1083.   [ Not an HPACK archive ]
  1084.     The supposed archive file does not appear to  be  an  archive  created  by
  1085.     HPACK.
  1086.  
  1087.   [ Cannot open archive file ]
  1088.     HPACK cannot open the archive file.
  1089.  
  1090.   [ Cannot open data file ]
  1091.     HPACK cannot open the data file to dearchive data to.
  1092.  
  1093.   [ Cannot open temp file ]
  1094.     HPACK cannot open the temporary work  file  it  needs  for  the  [D]elete,
  1095.     [F]reshen, [R]eplace, or [U]pdate commands.
  1096.  
  1097.   [ Cannot open script file ]
  1098.     HPACK  cannot open the script file containing the list of files to process
  1099.     and HPACK control commands.
  1100.  
  1101.   [ Cannot access base directory ]
  1102.     The base directory you have specified does not exist.
  1103.  
  1104.   [ Cannot create directory ]
  1105.     HPACK cannot create a directory to unarchive files into.
  1106.  
  1107.   [ Cannot override base path ]
  1108.     This error message arises when using the -b base path option and either  a
  1109.     drive specifier is given in the pathname of one of the files to process or
  1110.     the base path includes an actual path and the file pathname  is  specified
  1111.     as being off the root directory.  Since the base path is prepended to  the
  1112.     pathname of the file,  the  pathname cannot  contain a drive  specifier or
  1113.     absolute directory reference in it.
  1114.  
  1115.   [ Unknown archiving method - skipping ]
  1116.     The version of HPACK you are using is unfamiliar with the archiving method
  1117.     used for this file, and is skipping to the next file.
  1118.  
  1119.   [ Data is encrypted - skipping ]
  1120.     The  data  in  this file is encrypted, and no means of decryption has been
  1121.     supplied  by  the user; therefore HPACK cannot process it and will move on
  1122.     to the next file.
  1123.  
  1124.   [ Cannot read encrypted archive ]
  1125.     The  entire  archive  (rather  than just the data in it) is encrypted, and
  1126.     HPACK cannot decrypt it to read it.
  1127.  
  1128.   [ Cannot update deleted archive ]
  1129.     You  have  used  the  [-k]ill  original  archive  option  along  with  the
  1130.     [R]eplace, [F]reshen, or [U]pdate options.
  1131.  
  1132.   [ Passwords not the same ]
  1133.     When  encrypting  data,  HPACK  will  ask  you  to retype the password for
  1134.     security.  If the second password doesn't match the first  password,  this
  1135.     error message is issued.
  1136.  
  1137.   [ Password must be between 6 and 50 characters long ]
  1138.     The passphrase you have entered is either less than six characters (making
  1139.     it dangerously short), or more than 50 characters (making  it  excessively
  1140.     long).
  1141.  
  1142.   [ Bad keyfile ]
  1143.     The keyfile containing the keys used for decrypting/authenticating data is
  1144.     corrupted.
  1145.  
  1146.   [ Bad security information ]
  1147.     The  information  used  for authenticating the data in an archive has been
  1148.     corrupted.
  1149.  
  1150.   [ Out of memory ]
  1151.     There is not enough memory available for HPACK to continue.
  1152.  
  1153.   [ Path too long ]
  1154.     You  have  used  more  than  63  characters (the limit set by MS-DOS) in a
  1155.     pathname.
  1156.  
  1157.   [ Path not found ]
  1158.     You have asked HPACK to  add a file to a  nonexistant  directory inside an
  1159.     archive.
  1160.  
  1161.   [ Bad character in filename ]
  1162.     Input  lines  in  script  files  are  given  a basic check for being valid
  1163.     filenames.  If blatantly incorrect characters are discovered in a line  of
  1164.     input this warning will be printed.
  1165.  
  1166.   [ Errors detected in script file ]
  1167.     Errors  (either  illegal  characters  or  too-long  pathnames)  have  been
  1168.     detected in the script file.
  1169.  
  1170.   [ Maximum level of errors detected in script file ]
  1171.     More than 10 errors have been detected in the  script  file.   This  error
  1172.     message generally results from erroneously specifying a non-script file as
  1173.     a script file.
  1174.  
  1175.   [ Too many levels of directory nesting ]
  1176.     You have tried to go down through more than 15  levels  of  subdirectories
  1177.     using the [-r]ecurse subdirectories option.
  1178.  
  1179.   [ Too much auxiliary data ]
  1180.     This file has too much auxiliary data attached to it (comments, attributes,
  1181.     icons, security information, and so on).  Each file  can have a  maximum of
  1182.     64K of auxiliary data attached.
  1183.  
  1184.   [ Stopped at user request ]
  1185.     The user pressed Ctrl-Break during the archiving process.
  1186.  
  1187.   [ Warning: Truncated EOF padding ]
  1188.     In  some  implementations of the Xmodem and Ymodem transfer protocols, CPM
  1189.     end-of-file  characters  (Ctrl-Z's)  are  appended  to  the  end  of   the
  1190.     transmitted file.  When HPACK detects these spurious characters on the end
  1191.     of an archive, it will truncate the archive to its correct size and  issue
  1192.     this warning message.
  1193.  
  1194.   [ Warning: Archive section too short, skipping... ]
  1195.     If part of a multipart archive is less than approximately 100  bytes long,
  1196.     HPACK will not attempt to create the archive but will move the data to the
  1197.     next, hopefully less full, disk.
  1198.  
  1199.   [ File error ]
  1200.     A  miscellaneous  type of file error occurred during the archiving process
  1201.     (for example some sort of network error).  The message itself will contain
  1202.     more detail about the precise type of error.
  1203.  
  1204.   [ Internal error ]
  1205.     Some form of internal error occurred in HPACK.  Contact the author.
  1206.  
  1207.   [ Long argument format not supported in DOS version ]
  1208.     Some versions of HPACK,  notably the  UNIX one,  support a  long  argument
  1209.     format signalled by the -z  switch,  which is  used to handle  OS-specific
  1210.     options.  The DOS version of HPACK does not support  this argument  format
  1211.     since there is no need for it under DOS.
  1212.  
  1213.                                    Disclaimer
  1214.                                    -=-=-=-=-=
  1215.  
  1216.     This  program  is  guaranteed  to perform as claimed, excluding any delays
  1217.   caused or enhanced by war, civil commotion, or  rioting,  whether  declared,
  1218.   spontaneous,  reprehensible,  or  justified; undue pressure to perform, from
  1219.   whatsoever source; mal de mer, mal de pays, mal de siecle, mal de code,  mal
  1220.   de machine, or any force majeure not pretofore invoked.
  1221.  
  1222.     The program warranty is void in case of nuclear war, whether caused by the
  1223.   program or not.
  1224.  
  1225.                                    Trademarks
  1226.                                    -=-=-=-=-=
  1227.  
  1228.   Amiga is a tm of Commodore Business Machines.
  1229.   Archimedes is a tm of Acorn Computers.
  1230.   GIF is a tm of Compuserve Inc.
  1231.   IBM is a tm of International Business Machines Corp.
  1232.   Macintosh is a tm of Apple Computer Inc.
  1233.   MSDOS is a tm of Microsoft Inc.
  1234.   OS/2 is a tm of International Business Machines Corp.
  1235.   PKZIP is a tm of PKWare Inc.
  1236.   Prime and Primos are a tm's of Prime Computer Corp.
  1237.   QNX is a tm of <someone>.
  1238.   Rolemaster is a tm of Iron Crown Enterprises Inc.
  1239.   StuffIt is a tm of Raymond Lau and Aladdin Systems.
  1240.   UNIX is both a tm and a footnote of AT&T.
  1241.  
  1242.   "Good compression isn't a matter of life and death - it's far more important
  1243.                                      than that"
  1244.