So, also nochmal ein richtiger Versuch.
Hier erstmal der erste Text, der durch das Macro erkannt werden sollte:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
mal sehen, ob er das hier signiert
-----BEGIN PGP SIGNATURE-----
Version: 6.5.8ckt http://www.ipgpp.com/
iQA/AwUBQALMsgv7TqD42I2fEQLKcgCfZGjsjTxMzMB37r0+JqGHWUw/idEAoNyF
qy2JVZrfJ1Q+4W2Fhjpx/h9e
=GHdT
-----END PGP SIGNATURE-----
und hier der 2te:
***[06.02.2004 03:58:24] PGP Signature Status: good
***[06.02.2004 03:58:24] Hash: SHA1
***[06.02.2004 03:58:24] Signer: irgendwer <irgendwo@daheim.net>
***[06.02.2004 03:58:24] Signer Key ID: 0xF9E88D9F
***[06.02.2004 03:58:24] Signer Key Fingerprint: 3D19 8999 E127 BDA2 C379 3360 2BFB 4EA0 F8D8 8D9F
***[06.02.2004 03:58:24] Signed: 12.01.2004 19:06:54
***[06.02.2004 03:58:24] Verified: 06.02.2004 03:58:24
***[06.02.2004 03:58:24] Cipher: 3DES
***[06.02.2004 03:58:24] BEGIN PGP DECRYPTED/VERIFIED MESSAGE ***
meine Hacke, das sollte doch eigentlich funktionieren
------ original message [Montag, 12. Januar 2004, 19:01] -----
> doh und was nu?
> kann wohl doch nicht sein
***[06.02.2004 03:58:24] END PGP DECRYPTED/VERIFIED MESSAGE ***
die Möglichkeit, die Signatur zu strippen, haben wir schon in diesem Beispiel:
%QUOTES="%SETPATTREGEXP=""(?is)(-----BEGIN PGP SIGNED.*?\n(Hash:.*?\n)?\s*)?(.*?)(^(- --|--\n|-----BEGIN PGP SIGNATURE)|\z)""%REGEXPBLINDMATCH=""%text""%SUBPATT=""3"""
(?is)^(-----BE...
Wenn ich an dem Subpattern 1 noch ein ^ voranstelle, wird das Ganze nur dann gefunden, sollte es am Anfang der Zeile stehen. Das funktioniert auch im RegEx Test. Subpattern etc. bleiben bestehen. (Ist aber nur optional, um nix kaputtzufummeln, belasse ich das RegEx so, wäre nur eine Alternative, damit nicht aus Versehen die Stelle '-----BEGIN...' mittem im Text gefunden wird, den ich evtl. doch behalten möchte.)
Versuchen wir uns also an dem Decrypted Text:
(?is)^(\*{3}\[.*?\] PGP Signature Status:.*?\n(\*{3}\[.*?\] Hash:.*?\n(\*{3}\[.*?\] Signer:.*?\n(\*{3}\[.*?\] Signer Key ID:.*?\n(\*{3}\[.*?\] Signer Key Fingerprint:.*?\n(\*{3}\[.*?\] Signed:.*?\n(\*{3}\[.*?\] Verified:.*?\n(\*{3}\[.*?\] Cipher:.*?\n(\*{3}\[.*?\] BEGIN PGP .*? MESSAGE \*{3}\n)?)?)?)?)?)?)?)?\s*)?(.*?)
So, dieses RegEx findet schonmal die ersten PGP Zeilen, die Patterns bis 10 (also das:
(?is)^(\*{3}\[.*?\] PGP Signature Status:.*?\n(\*{3}\[.*?\] Hash:.*?\n(\*{3}\[.*?\] Signer:.*?\n(\*{3}\[.*?\] Signer Key ID:.*?\n(\*{3}\[.*?\] Signer Key Fingerprint:.*?\n(\*{3}\[.*?\] Signed:.*?\n(\*{3}\[.*?\] Verified:.*?\n(\*{3}\[.*?\] Cipher:.*?\n(\*{3}\[.*?\] BEGIN PGP .*? MESSAGE \*{3}\n)?)?)?)?)?)?)?)?\s*)?(.*?)
sind am Ende mit einem Fragezeichen versehen, damit der komplette Pattern auch nicht vorkommen muss...
Eine Frage besteht noch:
(?is)^(\*{3}\[.*?\] PGP Signature Status:.*?\n(\*{3}\[.*?\] Hash:.*?\n(\*{3}\[.*?\] Signer:.*?\n(\*{3}\[.*?\] Signer Key ID:.*?\n(\*{3}\[.*?\] Signer Key Fingerprint:.*?\n(\*{3}\[.*?\] Signed:.*?\n(\*{3}\[.*?\] Verified:.*?\n(\*{3}\[.*?\] Cipher:.*?\n(\*{3}\[.*?\] BEGIN PGP .*? MESSAGE \*{3}\n)?)?)?)?)?)?)?)?\s*)?(.*?)
\s*) hier oder \s* hier setzen, damit nach BEGIN PGP beliebige Rückläufe mit erkannt werden... funktionierte im RegEx Tester beides problemlos.
(^(\n*\*{3}\[.*?\] END PGP .*? MESSAGE \*{3})|\z)?
(^(\n*\*{3}\[.*?\] END PGP .*? MESSAGE \*{3})|\z)
Das gäbe dem RegEx dann einen Pattern, der am Anfang einer Zeile stehen muss, 3 * eine Klammer [ dazwischen beliebig viele Zeichen dann noch eine ] END PGP ::: MESSAGE nochmal 3 * oder Patternende hergibt, das Ganze entweder 1 mal oder garnicht.
Der komplette Pattern wurde aber noch einmal abgeändert:
(?is)^(\*{3}\[.*?\] PGP Signature Status:.*?\n(\*{3}\[.*?\] Hash:.*?\n(\*{3}\[.*?\] Signer:.*?\n(\*{3}\[.*?\] Signer Key ID:.*?\n(\*{3}\[.*?\] Signer Key Fingerprint:.*?\n(\*{3}\[.*?\] Signed:.*?\n(\*{3}\[.*?\] Verified:.*?\n(\*{3}\[.*?\] Cipher:.*?\n(\*{3}\[.*?\] BEGIN PGP .*? MESSAGE \*{3}\n)?)?)?)?)?)?)?)?\s*)?(.*?)(^(\n*\*{3}\[.*?\] END PGP .*? MESSAGE \*{3})|\z)
und 2.)
(?is)^(\*{3}\[.*?\] PGP Signature Status:.*?\n(\*{3}\[.*?\] Hash:.*?\n(\*{3}\[.*?\] Signer:.*?\n(\*{3}\[.*?\] Signer Key ID:.*?\n(\*{3}\[.*?\] Signer Key Fingerprint:.*?\n(\*{3}\[.*?\] Signed:.*?\n(\*{3}\[.*?\] Verified:.*?\n(\*{3}\[.*?\] Cipher:.*?\n(\*{3}\[.*?\] BEGIN PGP .*? MESSAGE \*{3}\n*)?)?)?)?)?)?)?)?)?(.*?)(^(\n*\*{3}\[.*?\] END PGP .*? MESSAGE \*{3})|\z)
Wobei die 2te Variante anstelle von \s* nur \n berücksichtigt.
Und noch eine 3.)
(?is)^(\*{3}\[.*?\] PGP Signature Status:.*?\n(\*{3}\[.*?\] Hash:.*?\n(\*{3}\[.*?\] Signer:.*?\n(\*{3}\[.*?\] Signer Key ID:.*?\n(\*{3}\[.*?\] Signer Key Fingerprint:.*?\n(\*{3}\[.*?\] Signed:.*?\n(\*{3}\[.*?\] Verified:.*?\n(\*{3}\[.*?\] Cipher:.*?\n(\*{3}\[.*?\] BEGIN PGP .*? MESSAGE \*{3}\n)?)?)?)?)?)?)?)?)?\s*(.*?)(^(\n*\*{3}\[.*?\] END PGP .*? MESSAGE \*{3})|\z)
Im RegEx Tester sieht das alles ziemlich gut aus, wir haben also einmal das RegEx
(?is)(-----BEGIN PGP SIGNED.*?\n(Hash:.*?\n)?\s*)?(.*?)(^(- --|--\n|-----BEGIN PGP SIGNATURE)|\z)
, um signierten Text zu strippen und
(?is)^(\*{3}\[.*?\] PGP Signature Status:.*?\n(\*{3}\[.*?\] Hash:.*?\n(\*{3}\[.*?\] Signer:.*?\n(\*{3}\[.*?\] Signer Key ID:.*?\n(\*{3}\[.*?\] Signer Key Fingerprint:.*?\n(\*{3}\[.*?\] Signed:.*?\n(\*{3}\[.*?\] Verified:.*?\n(\*{3}\[.*?\] Cipher:.*?\n(\*{3}\[.*?\] BEGIN PGP .*? MESSAGE \*{3}\n)?)?)?)?)?)?)?)?\s*)?(.*?)(^(\n*\*{3}\[.*?\] END PGP .*? MESSAGE \*{3})|\z)
um verschlüsselten Text zu strippen.
Test:
die beiden Patterns werden mal im The Bat getestet, nur um zu sehen, ob das, was im RegEx Tester funktioniert, auch in The Bat seinen Dienst tut.
Also erstellen wir mal Folgendes: (wichtig: Subpattern auf 10 stellen, sonst findet er die richtige Stelle nicht!)
%QUOTES="%SETPATTREGEXP=""(?is)^(\*{3}\[.*?\] PGP Signature Status:.*?\n(\*{3}\[.*?\] Hash:.*?\n(\*{3}\[.*?\] Signer:.*?\n(\*{3}\[.*?\] Signer Key ID:.*?\n(\*{3}\[.*?\] Signer Key Fingerprint:.*?\n(\*{3}\[.*?\] Signed:.*?\n(\*{3}\[.*?\] Verified:.*?\n(\*{3}\[.*?\] Cipher:.*?\n(\*{3}\[.*?\] BEGIN PGP .*? MESSAGE \*{3}\n)?)?)?)?)?)?)?)?)?\s*(.*?)(^(\n*\*{3}\[.*?\] END PGP .*? MESSAGE \*{3})|\z)""%REGEXPBLINDMATCH=""%text""%SUBPATT=""10"""
So. moep. Da geht nix mehr... Er findet weder die PGP Zeilen noch überhaupt irgendeinen Text, obwohl im RegEx Tester alles korrekt angezeigt bzw. ausgegeben wurde. Wo liegt also mein Denkfehler?
Also noch die andere Möglichkeit getestet, vielleicht verhaspelt er sich ja am Wagenrücklauf oder so:
%QUOTES="%SETPATTREGEXP=""(?is)^(\*{3}\[.*?\] PGP Signature Status:.*?\n(\*{3}\[.*?\] Hash:.*?\n(\*{3}\[.*?\] Signer:.*?\n(\*{3}\[.*?\] Signer Key ID:.*?\n(\*{3}\[.*?\] Signer Key Fingerprint:.*?\n(\*{3}\[.*?\] Signed:.*?\n(\*{3}\[.*?\] Verified:.*?\n(\*{3}\[.*?\] Cipher:.*?\n(\*{3}\[.*?\] BEGIN PGP .*? MESSAGE \*{3}\n)?)?)?)?)?)?)?)?)?\s*(.*?)(^(\n*\*{3}\[.*?\] END PGP .*? MESSAGE \*{3})|\z)""%REGEXPBLINDMATCH=""%text""%SUBPATT=""10"""
Hilft aber auch nix.
Also gibt er immer im RegEx Tester die richtigen Subpatterns aus, so, wie ich das haben möchte, binde ich den aber ein, vermurkst mir the Bat das...
Wäre echt lieb, wenn mir da einer auf die Sprünge helfen könnte, hinterher kann man die PGP Strips vom signierten und vom entschlüsselten Text in ein | Konstrukt sezten, damit hätte man dann nicht nur den PGP schrömmel aus signierten mails entfernt, sondern jegliche PGP Fetzen. Ist ja nur ein Notbehelf, solange die *hust* OE User noch kein PGP/Mime können
Ich für meinen Teil beisse auf jeden nochmal in die Tasta, wenn das so weiter geht
lg
joki