BenBE - Di 07.04.09 12:56
Für Email-Verschlüsslung gibt es mindestens 3 Möglichkeiten:
1. GnuPG mit PGP/MIME (Kann Outlook nicht, bzw. interpretiert das falsch, kann dafür Attachments mit verschlüsseln)
2. GnuPG inline im Text (Recht gebräuchlich, erlaubt aber keine Verschlüsslung von Anhängen)
3. S/MIME mit X.509-Zertifikat (Können fast alle Programme, X.509-Zert benötigt*, erlaubt verschlüsselte Anhänge)
Je nach dem, mit wem ich Kommuniziere, nutz ich meist S/MIME mit GnuPG inline, da ein Empfänger somit beide meine Identitäten überprüfen kann (S/MIME verifiziert hier die Signatur von GnuPG, S/MIME wird über die CA geprüft).
Zu deiner Frage, wie man das nun mit den Indys macht: Für Inline GnuPG nimmst Du deinen Text, rufst das GnuPG Binary auf und pipest deinen Text rein. Als Antwort erhälst Du die unterschriebene Inline-Nachricht, die Du als Message Body sendest. Keine Anhänge wie gesagt.
Für S/MIME könnte es sein, dass die Indys da was haben, aber k.A. Ansonsten siehe
RFC 2633 [
http://www.faqs.org/rfcs/rfc2633.html]
Für PGP/MIME kann man im Prinzip das gleiche machen wie für Inline, muss jedoch Detached signieren statt inline UND muss an die inneren Header kommen. Hierzu verweise ich mal auf das entsprechende
RFC 3156 [
http://www.faqs.org/rfcs/rfc3156.html].
*z.B. bei
CAcert [
http://cacert.org]** erhältlich
**Zur Verifikation wird ein zusätzliches Root-Zertifikat bei Sender und Empfänger benötigt, da die Signaturen sonst nicht als Vertrauenswürdig angezeigt werden
curtiss - Di 07.04.09 16:33
hab das mit der gpg.exe mal gemacht. allerdings find ich meine Lösung rechtunschön:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| PGPmessage := TStringList.Create; AssignFile(f,'mail.txt'); Rewrite(f); for i:= 0 to MemMessage.Lines.Count do begin write(f, MemMessage.lines[i]) end; Closefile(f); Shellexecute(handle,'open','cmd',pchar(' /c start gpg.exe --clearsign c:\mail.txt julian'), 'c:\programme\GNU\GnuPG\', SW_HIDE); AssignFile(f, 'mail.txt.asc'); Reset(f); while not Eof(f) do begin Readln(f,BuffStr); PGPmessage.Add(BuffStr); end; CloseFile(f); result := PGPmessage; |
es is relativ unschön, das immer die Kommandozeile aufpoppt. Und was meinst du mit Pipen? Kann ich damit den Datei Quatsch weglassen ?
Aber erstmal danke! ^^