OpenSSL ohne IDEA support

Hallo alle zusammen,

bei der Installation von Mixmaster tritt bei mir ein Problem auf, welches ich nicht zu Lösen weiß.

Warning: Your Version of OpenSSL has been configured without IDEA support.
If you continue, Mixmaster will be installed with reduced functionality.
This means (among other things) that Mixmaster will not create an RSA
OpenPGP key (to avoid mail loss in the Type I system). You may want to
re-install OpenSSL before proceeding.

This will not concern you if you only plan to run a type II remailer or
simply want a type II client.

Ein reinstall von OpenSSL bringt rein gar nichts.

Auch wäre meine Frage an dieser Stelle, ob diese Version von OpenSSL auch AES unterstützt?

Mit bestem Dank!

Richtig. openSUSE’s openSSL wurde ohne IDEA kompiliert.
Vom .spec File:

config_flags="threads shared no-rc5 no-idea

Vermutlich wegen eventueller Probleme mit Software-Patenten, wie hier erwähnt:
http://de.wikipedia.org/wiki/International_Data_Encryption_Algorithm#Sicherheit

Auch wäre meine Frage an dieser Stelle, ob diese Version von OpenSSL auch AES unterstützt?

AES sollte unterstützt sein, laut /usr/share/doc/packages/openssl/AVAILABLE_CIPHERS (diese Datei wird beim Bauen des Paketes dynamisch generiert)…

Hast du diesmal auch eine Idee, wie ich aber trotzdem Mixmaster sauber installieren kann?

Nein. Ich kenne Mixmaster nicht (noch nie was davon gehört), also weiß ich auch nicht was diese “reduced functionality” bedeutet und wie man sie umgehen könnte.

Natürlich wäre eine Möglichkeit, openssl am OBS zu branchen bzw. lokal zu bauen, mit IDEA.

Aber warum sollte Mixmaster gerade auf IDEA angewiesen sein?

Mixmaster dient zum anonymen E-Mail-Versand über Remailer. Ich habe mich über Unterschied zwischen Typ-1 und Typ-2 schlau gemacht, weshalb ich getrost auf Typ-1 verzichten kann.

Warum es dabei ausgerechnet auf IDEA angewiesen ist, weiß ich nicht.

Jetzt habe ich aber ein anderes Problem. Das Install-File wurde anscheinend für Debian geschrieben und enthält einen Befehl gcc den SUSE nicht erkennt und deshalb auch kein Makefile kompilieren kann. Die Ausgabe heißt folgendermaßen:

Zeile 918: gcc: Kommando nicht gefunden.
done
Generating Makefile.
Compiling. Please wait.
gcc I/usr/include -I/usr/include/ncurses -DUSE_ZLIB -DUSE_PCRE -DUSE_AES -DUSE_NCURSES -DUSE_SOCK -DSPOOL=‘“$HOME/.Mix”’ -g -Wall -c -o mix.o mix.c
make: gcc: Kommando nicht gefunden
make: *** [mix.o] Fehler 127
Error: The compilation failed. Please consult the documentation (section ‘Installation problems’).
Remove the old Makefile? [y]

gcc ist nichts Debian-spezifisches, sondern das ist der eigentliche Compiler.

Den musst du vermutlich erst installieren, da er bei openSUSE standardmäßig nicht installiert wird (wird auch nicht benötigt, wenn du nur fertige Pakete verwendest). Das Paket heißt (überraschenderweise :wink: ) “gcc”.
Am besten du installierst das Schema “Grundlegende Entwicklungsumgebung” mit YaST. (auf “Anzeigen” klicken und “Schemata” bzw “Patterns” wählen)

Super Sache.

Noch immer erscheint ein Fehler. Diesmal etwas mit pgp, aber auch diesmal hab ich kein Ahnung wo ich Ansätzen soll, um das Problem zu lösen.

gcc I/usr/include -I/usr/include/ncurses -DUSE_ZLIB -DUSE_PCRE -DUSE_AES -DUSE_NCURSES -DUSE_SOCK -DSPOOL=‘“$HOME/.Mix”’ -g -Wall -c -o pgp.o pgp.c
pgp.c: In function pgp_armor:
pgp.c:405:31: error: #elif with no expression
#elif MIMIC /* end of CLOAK */

make: *** [pgp.o] Fehler 1
Error: The compilation failed. Please consult the documentation (section ‘Installation problems’).
Remove the old Makefile? [y]

Tja, das ist scheinbar ein Fehler im Source-Code bzw. im Build-Prozess.
Wenn MIMIC nicht definiert ist, kann “#elif MIMIC” nicht funktionieren.
Oder das funktionierte mal mit älteren gcc Versionen (die letzte Version von Mixmaster ist aus 2008! Das ist eine kleine Ewigkeit…) bzw. funktioniert mit anderen Compilern.
Probier mal, das “#elif MIMIC” in der Datei Src/php.c, Zeile 405 zu ändern in:

#else
#ifdef MIMIC

Ja das stimmt, leider ist es wirklich eine Weile her, dass das gepflegt wurde. Ich wünschte es gäbe eine aktuellere Version.

Nachdem ich die genannte Modifizierung vornehmen, bekomme ich folgende Meldung:

In file included from /usr/include/endian.h:60:0,
from /usr/include/bits/waitstatus.h:64,
from /usr/include/stdlib.h:42,
from tmptst.c:2:
/usr/include/bits/byteswap.h: In function ‘main’:
/usr/include/bits/byteswap.h:45:1: error: invalid storage class for function ‘__bswap_32’
__bswap_32 (unsigned int __bsx)
^
/usr/include/bits/byteswap.h:109:1: error: invalid storage class for function ‘__bswap_64’
__bswap_64 (__uint64_t __bsx)
^
done
Generating Makefile.
Compiling. Please wait.
gcc -I/usr/include -I/usr/include/ncurses -DUSE_ZLIB -DUSE_PCRE -DUSE_AES -DUSE_NCURSES -DUSE_SOCK -DSPOOL=‘“$HOME/.Mix”’ -g -Wall -c -o pgp.o pgp.c
pgp.c: In function ‘pgp_armor’:
pgp.c:13:0: error: unterminated #ifdef
#ifdef USE_PGP
^
pgp.c:404:3: error: expected expression at end of input
else
^
pgp.c:404:3: error: expected declaration or statement at end of input
pgp.c:386:17: warning: variable ‘crc’ set but not used -Wunused-but-set-variable]
unsigned long crc;
^
pgp.c:404:3: warning: control reaches end of non-void function -Wreturn-type]
else
^
make: *** [pgp.o] Fehler 1
Error: The compilation failed. Please consult the documentation (section
`Installation problems’).
Remove the old Makefile? [y]

Dann musst du irgendwas falsch gemacht haben. Poste vielleicht mal ein paar Zeilen rund um #404.

Im trunk (also dem aktuellen Entwicklungszweig) ist das übrigens so behoben worden (vor 6 Jahren!):
http://anonscm.debian.org/viewvc/pkg-mixmaster/trunk/Mix/Src/pgp.c?r1=934&r2=1008

Also statt “#elif MIMIC” sollte das “#elif defined(MIMIC)” sein.

Ich empfehle als erstes ein openSSL-Update.
Anschließend würde ich an Deiner Stelle mit find nach der Datei openssl.spec suchen und no-idea dort löschen.
Das wird unter http://compgroups.net/comp.os.linux/mixmaster-2.9.0-openssl-install-warning/2054945 auch gemacht.

Genau das war die Lösung :wink: Super! Wie immer besten Dank!

Ich denke, dass dies völlig sinnlos ist und man den letzten Post unter dem Link beachten sollte.