 ============
 AmigaSafe2.0
 ============

- Zweck und Funktion:
  AmigaSafe verschlüsselt beliebige Dateien mittels eines Codes.
  Nur derjenige, der den Code kennt, hat die Möglichkeit wieder 
  das Original der jeweiligen Datei zu erhalten.
  Die verwendeten Codierungsverfahren arbeiten sehr schnell und
  zuverlässig. Der größte Teil der Zeit wird vom AmigaDos für`s
  Einlesen/Schreiben benötigt. Auf einem Standart-Amiga werden
  ca. 15000 Bytes pro Sekunde codiert (Ram Disk).
  Die Dateien werden durch das Verschlüsseln um 7 Bytes länger,
  damit erkannt werden kann, ob das File schon codiert wurde.
  Paßt aufgrund dieser 7 Bytes ein File nicht mehr auf Disk, 
  wird versucht es wieder im Original zurückzuschreiben.

- Sicherheit:
  Je länger der verwendete Code, desto schwieriger wird die 
  Entschlüsselung. Der Idealfall ist ein Code, der ebenso lang 
  ist wie die zu codierende Datei, was eine Entschlüsselung
  unmöglich macht. Dagegen ist ein Code von nur einem Zeichen
  Länge relativ leicht zu knacken, da alle Zeichen der Datei
  dann mittels des gleichen Zeichens codiert werden.
  Der Normalfall liegt irgendwo dazwischen und ist recht sicher.
  
- Bedienung:
  Das Programm besitzt eine graphische Schnittstelle. Es werden 
  verschiedene Gadgets angeboten:
  - Status: dieses Textgadget soll den User über den Betriebszu-
    stand des Programmes informieren (Waiting/Requesting/Working).
  - Key: in dieses Stringgadget geben Sie bitte den gewählten
    Code ein.
  - Dir: dieses Gadget steht für das aktuelle Verzeichnis.
  - File: dieses Gadget steht für die aktuelle Datei.
  - Ignore .info: ist die Checkbox angewählt, werden beim Datei-
    request mittels ASL keine .info -Dateien angezeigt.
    Außerdem werden beim Codieren ganzer Verzeichnisse  die
    .info -Dateien ingnoriert.
  - Ask first: ist die Checkbox angewählt, erfolgt erst eine
    Rückfrage, bevor die Codierung beginnt.
  - Do subdirs: ist die Checkbox angewählt, werden beim Codieren 
    ganzer Verzeichnisse auch deren Unterverzeichnisse codiert.
  - Code/Decode: soll ver- oder entschlüsselt werden ?
  - File/Dir: soll eine einzelne Datei oder ein ganzes Verzeichnis
    codiert werden ?
  - Asl: es erscheint ein Dateirequester zur Auswahl der aktuellen
    Datei.
  - Break: wenn das Programm läuft (Status: Working) kann mit 
    diesem Gadget der Codierungsvorgang abgebrochen werden. Dabei 
    wird die aktuelle Datei in ihrem Originalzustand belassen.
    Weil die Dateien in einem Stück gelesen/geschrieben werden, 
    kann der Abbruch eine Weile dauern.
  - Quit: Ende.
  - About: About.

- Arexx-Schnittstelle:
  Ein Beispielscript liegt bei.
  Die Port-Adresse lautet AmigaSafe.1 . Existiert schon ein Port 
  mit diesem Namen, wird einfach die Zahl am Ende um  eins erhöht.
  (AmigaSafe.2 , AmigaSafe.3 , ...)
  Es wird eine Textzeile als Message erwartet:

     -> CODE    <dir> <file> FILE NOINFO <key> NORETURN
  oder: DECODE               DIR  DOINFO       DORETURN
                             SUBS

  Die Schlüsselworter werden nur in Großbuchstaben akzeptiert.
  Zwischen den Paramtern steht genau eine Leerstelle.
  Es dürfen keine Paramter weggelassen werden.  

  Bedeutung:
  - CODE / DECODE : soll ver- oder entschlüsselt werden ?
  - <dir> : das Verzeichniss
  - <file>: die Datei bzw. irgendetwas, wenn das Verzeichnis
    codiert werden soll.             
  - FILE / DIR / SUBS : Bei FILE wird nur eine Datei codiert,
    bei DIR die komplette Schublade und bei SUBS auch die Unter-
    verzeichnisse.
  - DOINFO / NOINFO : Bei DOINFO werden .info -Dateien mitcodiert.
  - <key> : der zu verwendende Schlüssel.
  - NORETURN / DORETURN : treten beim Codieren von Verzeichnissen
    irgendwelche Fehler auf, wird bei DORETURN abgebrochen, bei 
    NORETURN weitergemacht. 
  
 Rückgabe:
  In der Variablen RC wird an Arexx zurückgegeben:
  0   alles O.k.
  5   Warnung: beim Codieren eines Verzeichnisses wurde abgebrochen,
      weil DORETURN eingestellt war und eine Datei 
      schon codiert/nicht codiert war.
  10  Fehler. Am besten nochmal von Hand probieren.

- Fehlermeldungen:
  1  Can`t open gadtools.library ->läuft erst ab OS2.0.
  2  Can`t open window -> Speicher ?
  3  Can`t make gadgets -> Speicher ?
  4  Can`t open asl.library -> ?
  5  Can`t make request -> Speicher ?
  6  Please enter key first -> eine Datei kann nicht ohne Schlüssel 
     codiert werden.
  7  Can`t open file -> eine Datei kann nicht geöffnet werden.
  8  Out of memory -> Speicher !
  9  File already coded -> Dateien können nicht doppelt codiert werden.
  10 Dos error. File may be corrupted -> beim Schrieben/Lesen ist ein
     Fehler aufgetreten.
  11 File not coded -> Eine nicht codierte Datei kann nicht decodiert 
     werden.
  12 User break. File remained untouched -> Der User hat auf das
     Break -Gadget geklickt.
  13 Can`t make filelist  -> Speicher ?
  14 Warning: Can`t open arexxport -> ?

  Bei Speicherknappheit kann nicht immer eine Fehlermeldung ausgegeben 
  werden.

- Sonstiges:
  Entwickelt unter OS2.1 auf 3 MB A500 mit Maxon C++.
  Autor: BS - Sigismund 9 - 96114 Hirschaid 
  Momentan keine Bugs bekannt.
