Libdes für den Mac

Nachdem ich ja nun seit einiger Zeit auch einen Mac besitze. Ohne kann man ja leider nicht für das iPhone Entwickeln… habe ich ständig kleinere und größere Problem, die mir das Leben nicht leichter machen. Ein Problem ist, dass ich viele Archive mit der libdes verschlüsselt habe und nun von meinem Mac aus darauf zugreifen möchte. Ja ja, ich weiß. Die libdes ist überholt und selbst Suse hat die libdes nicht mehr in der Distribution. Egal, ich habe viele alte shell Scripte die mit der libdes arbeiten und ich habe noch mehr alte Archive die mit des verschlüsselt wurden. Da libdes ja im Sourcecode vorliegt und MacOS ja irgendwie auch ein Linux/Unix ist, habe ich dann also einfach auf Basis der libdes scr Pakete von http://rpm.pbone.net/index.php3/stat/4/idpl/516492/com/libdes-4.04b-2.i386.rpm.html eine Mac Version der libdes erstellt. Da make und gcc installiert sind ist das kein großes Problem. Ich musste nur ein wenig mit der termio.h machen. Die es bei MacOS leider nicht gibt. Dafür gibt es aber termios.h und die kann man bei der libdes auch verwenden.

read_pwd.c:109:20: error: termio.h: No such file or directory
read_pwd.c: In function ‘des_read_pw’:
read_pwd.c:218: error: storage size of ‘tty_orig’ isn’t known
read_pwd.c:218: error: storage size of ‘tty_new’ isn’t known
read_pwd.c:238: error: ‘TCGETA’ undeclared (first use in this function)
read_pwd.c:238: error: (Each undeclared identifier is reported only once
read_pwd.c:238: error: for each function it appears in.)
read_pwd.c:274: error: ‘ECHO’ undeclared (first use in this function)
read_pwd.c:278: error: ‘TCSETA’ undeclared (first use in this function)

Nachdem ich also die include Datei geändert habe, kann ich auch auf meinem MAC Mini das des Kommando aufrufen :-) .

Michael-Jentschs-Mac-mini:des Michael$ ./des
des
[input-file [output-file]]
options:
-v : des(1) version number
-e : encrypt using sunOS compatible user key to DES key conversion.
-E : encrypt
-d : decrypt using sunOS compatible user key to DES key conversion.
-D : decrypt
-c[ckname] : generate a cbc_cksum using sunOS compatible user key to
DES key conversion and output to ckname (stdout default,
stderr if data being output on stdout). The checksum is
generated before encryption and after decryption if used
in conjunction with -[eEdD].
-C[ckname] : generate a cbc_cksum as for -c but compatible with -[ED].
-k key : use key ‘key’
-h : the key that is entered will be a hexidecimal number
that is used directly as the des key
-u[uuname] : input file is uudecoded if -[dD] or output uuencoded data if -[eE]
(uuname is the filename to put in the uuencode header).
-b : encrypt using DES in ecb encryption mode, the defaut is cbc mode.
-3 : encrypt using tripple DES encryption. This uses 2 keys
generated from the input key. If the input key is less
than 8 characters long, this is equivelent to normal
encryption. Default is tripple cbc, -b makes it tripple ecb.

Da ich euch die Mac Version meiner libdes nicht vorenthalten möchte, findet Ihr unter
http://m-software.de/uploads/libdes/
die folgenden 3 Dateien:
libdes-4.04b-1.src.rpm Dies ist die Ursprungsdatei von RPM Search.
libdes.tgz Das ist die Linux Version, die ich für Suse übersetzt habe.
libdes-mac.tgz Das ist dann die Version für den Mac die eine ausführbare “des” Datei enthält.

So, das war es erst mal. Also wieder ein Problem weniger mit meinem Mac Mini. Mal sehen, was noch alles auf mich zukommt…