Zip-Archive mit Rexx bearbeiten

(DE) System, Installation, Konfiguration, Hardware, Treiber, Netzwerk, Virtualisierung, etc.
(EN) System, Installation, Configuration, Hardware, Drivers, Network, Virtualisation, etc.
User avatar
DonLucio
Posts: 401
Joined: Sun 29. Dec 2013, 01:14
Location: Hamburg

Zip-Archive mit Rexx bearbeiten

Post by DonLucio » Fri 31. May 2019, 23:33

Ich suche eine Rexx-Bibliothek, mit der man eine ZIP-Datei erstellen und auch wieder auspacken kann.

Das einzige, was ich gefunden habe, ist RXGZLIB. Diese Bibliothek hat aber afaik zwei Nachteile:
1) Format *.gz ist wohl nicht kompatibel mit *.zip ?
2) In der RXGZLIB-Bibliothek finde ich keine Funktion, die das Setzen eine Passwortes unterstützt.

Frage also: Gibt es so etwas wie eine INFOZIP.DLL?

Danke,
Lutz Wagner

User avatar
LotharS
Posts: 529
Joined: Sun 29. Dec 2013, 20:07
Location: Düsseldorf

Post by LotharS » Sat 1. Jun 2019, 09:26

Zum _Auspacken_ habe ich diese DLL gefunden. Keine Ahnung, was sie kann und tut...
Ich habe in dieser bescheidenen Anwendung lieber meine eigenen Funktionen und Bugs eingebaut 8-), sieht aber m.E. dank VisproRexx nicht ganz übel aus. War auch nur Freizeitbeschäftigung mit Rexx und virtuellem (produktiv noch:) eCS. :geek:

Übrigens: ZIP-Passwort setzen ist eigentlich Unfug. Was verschlüsselt wird, sind die gepackten Dateien darin, und wirkt bei deren Auspacken. Der Inhalt des Archivs _als Liste_ lässt sich trotzdem anzeigen (doch wen geht's was an?...). Viel besser wäre da sowas wie PGP aufs fertige Archiv.

User avatar
DonLucio
Posts: 401
Joined: Sun 29. Dec 2013, 01:14
Location: Hamburg

Post by DonLucio » Sat 1. Jun 2019, 17:25

LotharS wrote:
Sat 1. Jun 2019, 09:26
Zum _Auspacken_ habe ich diese DLL gefunden. Keine Ahnung, was sie kann und tut...
Naja, wie du schon gesagt hast: Man kann damit aus einer Rexx-Umgebung heraus ZIP-Archive ansehen und auspacken. Leider ist das Erstellen eines ZIP-Archives damit nicht möglich.

LotharS wrote:
Sat 1. Jun 2019, 09:26
Ich habe in dieser bescheidenen Anwendung lieber meine eigenen Funktionen und Bugs eingebaut 8-),
Hab ich mir mal installiert. Und wurde neugierig, als ich sah, dass dein Programm auch das *Erstellen* von Archiven anbietet, sogar mit Passwort (encrypted). Das ist ja genau das, wonach ich suche.

Wie ich deinem Readme.1st entnehme, benutzt du aber in deinem Visprorexx-Programm keine DLL, sondern die auf jedem OS/2-System vorhandenen Kommandozeilen-Programme zip.exe und unzip.exe. D.h. du machst in deinem Rexx eine Kommandozeilen-Session auf (Shell oder wie man das nennt) und rufst somit [un]zip.exe mit entsprechenden Parametern auf.

Ist das korrekt?

Wenn ja, hätte ich eine weitere Frage:
Wie hast du es geschafft, zip.exe mit der Encrypt-Option aufzurufen, ohne dass das zip.exe dich promptet "Enter passwort:", und gleich zweimal.

Ich bin daran gescheitert. Ich habe es mit Umleitung versucht, etwa so: "zip -e NewZipfile x:\source-dir\*.* < Passwordfile". Das funzt bei mir aber nicht. Meine per "<" Operator angegebene Datei, die das Passwort enthält, wird ignoriert und stattdessen erhalte ich den zweimaligen Prompt des zip.exe

Verrätst du mir dein kleines Geheimnis ? :-)

Danke,
Lutz Wagner

_diver
Posts: 165
Joined: Fri 27. Jun 2014, 10:57

Post by _diver » Sat 1. Jun 2019, 19:51

DonLucio wrote:
Sat 1. Jun 2019, 17:25
LotharS wrote:
Sat 1. Jun 2019, 09:26
Zum _Auspacken_ habe ich diese DLL gefunden. Keine Ahnung, was sie kann und tut...
Naja, wie du schon gesagt hast: Man kann damit aus einer Rexx-Umgebung heraus ZIP-Archive ansehen und auspacken. Leider ist das Erstellen eines ZIP-Archives damit nicht möglich.

LotharS wrote:
Sat 1. Jun 2019, 09:26
Ich habe in dieser bescheidenen Anwendung lieber meine eigenen Funktionen und Bugs eingebaut 8-),
Hab ich mir mal installiert. Und wurde neugierig, als ich sah, dass dein Programm auch das *Erstellen* von Archiven anbietet, sogar mit Passwort (encrypted). Das ist ja genau das, wonach ich suche.

Wie ich deinem Readme.1st entnehme, benutzt du aber in deinem Visprorexx-Programm keine DLL, sondern die auf jedem OS/2-System vorhandenen Kommandozeilen-Programme zip.exe und unzip.exe. D.h. du machst in deinem Rexx eine Kommandozeilen-Session auf (Shell oder wie man das nennt) und rufst somit [un]zip.exe mit entsprechenden Parametern auf.

Ist das korrekt?

Wenn ja, hätte ich eine weitere Frage:
Wie hast du es geschafft, zip.exe mit der Encrypt-Option aufzurufen, ohne dass das zip.exe dich promptet "Enter passwort:", und gleich zweimal.

Ich bin daran gescheitert. Ich habe es mit Umleitung versucht, etwa so: "zip -e NewZipfile x:\source-dir\*.* < Passwordfile". Das funzt bei mir aber nicht. Meine per "<" Operator angegebene Datei, die das Passwort enthält, wird ignoriert und stattdessen erhalte ich den zweimaligen Prompt des zip.exe

Verrätst du mir dein kleines Geheimnis ? :-)

Danke,
Lutz Wagner
Mal zip --help angeschaut? --password oder -P

User avatar
LotharS
Posts: 529
Joined: Sun 29. Dec 2013, 20:07
Location: Düsseldorf

Post by LotharS » Sat 1. Jun 2019, 19:58

DonLucio wrote:
Sat 1. Jun 2019, 17:25
Wie ich deinem Readme.1st entnehme, benutzt du aber in deinem Visprorexx-Programm keine DLL, sondern die auf jedem OS/2-System vorhandenen Kommandozeilen-Programme zip.exe und unzip.exe. D.h. du machst in deinem Rexx eine Kommandozeilen-Session auf (Shell oder wie man das nennt) und rufst somit [un]zip.exe mit entsprechenden Parametern auf.

Ist das korrekt?
Genau: address CMD "@zip..." usw. Abgesehen von VisproRexx ist absichtlich alles simples classic Rexx (tut aber auch mit ORexx).
Verrätst du mir dein kleines Geheimnis ?
Das Programm merkt sich zunächst, ob ich in der Session "encrypten" möchte (neben den anderen Wünschen). Habe ich endlich alles gesammelt und drücke "Zip", so erfragt das Programm in einem Mini-Subdialog das gewünschte Passwort (plus Bestätigung) und überträgt dessen Rückgabe mit in die zip.exe-Parameterleiste. Normalerweise ist der Parameter '-P' nicht da. Die Funktion habe ich nur im ausführlichen Fall "Compress extended" vorgesehen, um nicht gleich abzuschrecken :)

Verrückt an der zip-"Verschlüsselung" ist auch, dass sich dem Archiv später hinzugefügte Dateien sogar anders verschlüsseln lassen (oder ohne). Quatsch aber funktioniert, wer's denn braucht... Welche Dateien sich in Archiv befinden (und von wann und wie groß) bleibt trotzdem für jedermann sichtbar. "Verschlüsselung" stelle ich mir eher anders vor.
Ursprünglich sollte das Programm bloß zufällig "verschlüsselte" Archive auspacken können. Der o.a. Mini-Subdialog im Verbund mit den Auspack-Routinen kurvt dann halt andersrum...
Last edited by LotharS on Sat 1. Jun 2019, 19:59, edited 1 time in total.

User avatar
LotharS
Posts: 529
Joined: Sun 29. Dec 2013, 20:07
Location: Düsseldorf

Post by LotharS » Sat 1. Jun 2019, 20:34

_diver wrote:
Sat 1. Jun 2019, 19:51
<... snip ...>
Mal zip --help angeschaut? --password oder -P
Von --password oder -P steht nur im Manual.

ehemaliger
Posts: 64
Joined: Wed 22. Nov 2017, 23:46

Post by ehemaliger » Sat 1. Jun 2019, 21:30

LotharS wrote:
Sat 1. Jun 2019, 19:58
Welche Dateien sich in Archiv befinden (und von wann und wie groß) bleibt trotzdem für jedermann sichtbar. "Verschlüsselung" stelle ich mir eher anders vor.
Der übliche Workaround dafür ist ein ZIP-im-ZIP. Oder man nimmt gleich 7zip, daß - zumindest bei der Verwendung des ohnehin deutlich effizienteren 7z-Formats (Lempel-Ziv-Markov) - ermöglicht, auch das "Inhaltsverzeichnis" mit dem gegenüber dem normalen ZIP stärkeren AES256-Verfahren zu verschlüsseln.
Last edited by ehemaliger on Sat 1. Jun 2019, 21:30, edited 1 time in total.

User avatar
DonLucio
Posts: 401
Joined: Sun 29. Dec 2013, 01:14
Location: Hamburg

Post by DonLucio » Sat 1. Jun 2019, 23:01

_diver wrote:
Sat 1. Jun 2019, 19:51
Mal zip --help angeschaut? --password oder -P
Hmm ... das wäre schön. Danach habe ich im Help gesucht. Aber mein zip.exe liefert nur diese Optionen:

Code: Select all

■■■»zip
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
Zip 3.0 (July 5th 2008). Usage:
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
  The default action is to add or replace zipfile entries from list, which
  can include the special name - to compress standard input.
  If zipfile and list are omitted, zip compresses stdin to stdout.
  -f   freshen: only changed files  -u   update: only changed or new files
  -d   delete entries in zipfile    -m   move into zipfile (delete OS files)
  -r   recurse into directories     -j   junk (don't record) directory names
  -0   store only                   -l   convert LF to CR LF (-ll CR LF to LF)
  -1   compress faster              -9   compress better
  -q   quiet operation              -v   verbose operation/print version info
  -c   add one-line comments        -z   add zipfile comment
  -@   read names from stdin        -o   make zipfile as old as latest entry
  -x   exclude the following names  -i   include only the following names
  -F   fix zipfile (-FF try harder) -D   do not add directory entries
  -A   adjust self-extracting exe   -J   junk zipfile prefix (unzipsfx)
  -T   test zipfile integrity       -X   eXclude eXtra file attributes
  -E   use the .LONGNAME Extended attribute (if found) as filename
  -y   store symbolic links as the link instead of the referenced file
  -$   include volume label         -S   include system and hidden files
  -e   encrypt                      -n   don't compress these suffixes
  -h2  show more help
Man kann nur die Option -e angeben, woraufhin das Programm nach dem Passwort promptet. Zweimal.

Gibt's noch andere Versionen von zip.exe? Meines ist das mit ArcaOS mitgelieferte.

Uff! Nachtrag: Man kann auch in meiner zip.exe-Version mit -P ein Passwort eingeben! Es funktioniert! Warum ist das denn im -help nicht angegeben???

Danke für den Hinweis (Wissen ist Macht ...)


Gruß,
Lutz Wagner
Last edited by DonLucio on Sat 1. Jun 2019, 23:05, edited 1 time in total.

User avatar
DonLucio
Posts: 401
Joined: Sun 29. Dec 2013, 01:14
Location: Hamburg

Post by DonLucio » Sat 1. Jun 2019, 23:34

ehemaliger wrote:
Sat 1. Jun 2019, 21:30
Oder man nimmt gleich 7zip, daß - zumindest bei der Verwendung des ohnehin deutlich effizienteren 7z-Formats (Lempel-Ziv-Markov) - ermöglicht, auch das "Inhaltsverzeichnis" mit dem gegenüber dem normalen ZIP stärkeren AES256-Verfahren zu verschlüsseln.
Leider sind die 7zip-Archive nicht mit [un]zip lesbar. Das ist aber in meinem speziellen Fall Bedingung (Hintergrund: Ich möchte mein lokal erzeugtes Archiv auf meinen Webserver übertragen und dort mit PHP-Mitteln verwalten. Und afaik gibt es im aktuellen PHP 7.2 zwar Unterstützung für zip, aber nicht für 7zip.)

Gruß,
Lutz Wagner

User avatar
DonLucio
Posts: 401
Joined: Sun 29. Dec 2013, 01:14
Location: Hamburg

Post by DonLucio » Sat 1. Jun 2019, 23:38

Danke an alle, die mir hier geantwortet haben.
Mit der Aufdeckung des undokumentierten -P-Parameters in zip.exe ist mein Problem gelöst :P

Gruß,
Don Lucio.

User avatar
LotharS
Posts: 529
Joined: Sun 29. Dec 2013, 20:07
Location: Düsseldorf

Post by LotharS » Sun 2. Jun 2019, 00:45

DonLucio wrote:
Sat 1. Jun 2019, 23:38
Mit der Aufdeckung des undokumentierten -P-Parameters in zip.exe ist mein Problem gelöst :P
Prima! Nur, so ganz "undokumentiert" ist der Parameter nicht: 'zip -h2 > ziphelp2.txt' tut auch schon, muss man nur ahnen :P
Ich hatte vorsichtshalber lieber das ausführlichere 'Manual' in Zip v.2.31 (man schmeiße keine rostigen Nägel weg...) oder das Linux-Manual befragt...

User avatar
DonLucio
Posts: 401
Joined: Sun 29. Dec 2013, 01:14
Location: Hamburg

Post by DonLucio » Sun 2. Jun 2019, 00:59

LotharS wrote:
Sun 2. Jun 2019, 00:45
Prima! Nur, so ganz "undokumentiert" ist der Parameter nicht: 'zip -h2 > ziphelp2.txt' tut auch schon, muss man nur ahnen :P
Uff! Ja, tatsächlich war ich schon ein bißchen blind:
Die Option "-h2 show more help" hatte ich überlesen ... :ugeek:

Danke ....
Lutz Wagner