Zip-Archive mit Rexx bearbeiten

(DE) System, Installation, Konfiguration, Hardware, Treiber, Netzwerk, Virtualisierung, etc.
(EN) System, Installation, Configuration, Hardware, Drivers, Network, Virtualisation, etc.
Benutzeravatar
DonLucio
Beiträge: 421
Registriert: So 29. Dez 2013, 01:14
Wohnort: Hamburg

Zip-Archive mit Rexx bearbeiten

Beitrag von DonLucio » Fr 31. Mai 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

Benutzeravatar
LotharS
Beiträge: 559
Registriert: So 29. Dez 2013, 20:07
Wohnort: Düsseldorf

Beitrag von LotharS » Sa 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.

Benutzeravatar
DonLucio
Beiträge: 421
Registriert: So 29. Dez 2013, 01:14
Wohnort: Hamburg

Beitrag von DonLucio » Sa 1. Jun 2019, 17:25

LotharS hat geschrieben:
Sa 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 hat geschrieben:
Sa 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
Beiträge: 171
Registriert: Fr 27. Jun 2014, 10:57

Beitrag von _diver » Sa 1. Jun 2019, 19:51

DonLucio hat geschrieben:
Sa 1. Jun 2019, 17:25
LotharS hat geschrieben:
Sa 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 hat geschrieben:
Sa 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

Benutzeravatar
LotharS
Beiträge: 559
Registriert: So 29. Dez 2013, 20:07
Wohnort: Düsseldorf

Beitrag von LotharS » Sa 1. Jun 2019, 19:58

DonLucio hat geschrieben:
Sa 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...
Zuletzt geändert von LotharS am Sa 1. Jun 2019, 19:59, insgesamt 1-mal geändert.

Benutzeravatar
LotharS
Beiträge: 559
Registriert: So 29. Dez 2013, 20:07
Wohnort: Düsseldorf

Beitrag von LotharS » Sa 1. Jun 2019, 20:34

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

ehemaliger
Beiträge: 72
Registriert: Mi 22. Nov 2017, 23:46

Beitrag von ehemaliger » Sa 1. Jun 2019, 21:30

LotharS hat geschrieben:
Sa 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.
Zuletzt geändert von ehemaliger am Sa 1. Jun 2019, 21:30, insgesamt 1-mal geändert.

Benutzeravatar
DonLucio
Beiträge: 421
Registriert: So 29. Dez 2013, 01:14
Wohnort: Hamburg

Beitrag von DonLucio » Sa 1. Jun 2019, 23:01

_diver hat geschrieben:
Sa 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: Alles auswählen

■■■»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
Zuletzt geändert von DonLucio am Sa 1. Jun 2019, 23:05, insgesamt 1-mal geändert.

Benutzeravatar
DonLucio
Beiträge: 421
Registriert: So 29. Dez 2013, 01:14
Wohnort: Hamburg

Beitrag von DonLucio » Sa 1. Jun 2019, 23:34

ehemaliger hat geschrieben:
Sa 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

Benutzeravatar
DonLucio
Beiträge: 421
Registriert: So 29. Dez 2013, 01:14
Wohnort: Hamburg

Beitrag von DonLucio » Sa 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.

Benutzeravatar
LotharS
Beiträge: 559
Registriert: So 29. Dez 2013, 20:07
Wohnort: Düsseldorf

Beitrag von LotharS » So 2. Jun 2019, 00:45

DonLucio hat geschrieben:
Sa 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...

Benutzeravatar
DonLucio
Beiträge: 421
Registriert: So 29. Dez 2013, 01:14
Wohnort: Hamburg

Beitrag von DonLucio » So 2. Jun 2019, 00:59

LotharS hat geschrieben:
So 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