Chris,
Having had extensive dealings with SRS over the last year, allow me to set
the record straight on a few things.
Roger Moser wrote:
> > SRS0 addresses have the form: SRS0=opaque-part@domain-part
> > where opaque-part may be defined by the SRS0 forwarder, and may only
> > be interpreted by this same host.
>
> So it is not possible to reconstruct the original email address.
Quite untrue. The 'opaque' part only refers to the hash. SRS0 addresses
are in the form of:
SRS0=HHH=TT=hostname=local-part@forward.com
In actuality, the srs.pdf as libsrs2.org says:
"SRS0=HHH=TT=hostname=local-part@LOCAL-PART"
(capitalization mine); which I'm sure is a typo. :) Consider the following
rewrite:
Input: tester@isp.nl
Output: SRS0=5QqmApog=OG=isp.nl=tester@asarian-host.net
As you can see, the original address can be trivially extracted.
Chris Drake wrote:
> I just want to extract the original senders email address, not verify
> anything at this stage. I know enough to work out that your simplistic
> overview is not helpful to me, since I read that "==" might be "=+" or
> "=-" depending one something I couldn't fathom,
It all sounds quite daunting; and this is compounded, I'm sure, by the
fact that some older docs of SRS still float about the net. Still, finding
a regex for SRS addresses is quite easy. In fact, I use such a regex
myself, in the 'reverse' call of SRS.pm:
sub reverse {
my ($self, $address) = @_;
$address =~ s/[<>]//g;
if ($address =~ /^SRS0[+-=]\S+=\S{2}=\S+=\S+\@\S+$/i) {
} elsif ($address =~ /^SRS1[+-=]\S+=\S+==\S+=\S{2}=\S+\@\S+$/i) {
} else {
return undef;
}
Mind you, my added address-test is NOT part of the distributed SRS.pm; I
just
added it myself, at some point, to have an early-out for non-SRS addresses,
and
to ensure the return of 'undef' in those cases.
Koen Martens wrote:
> AFAIK, SRS0 and SRS1 is all that is used. The number x in SRSx is _not_
> a hop counter. It is an enhanced version of the SRS rewriting schemes,
> that allows for shortcuts instead of stacking multiple SRS0 rewrites on
> top of each other. So from that perspective it is indeed a version
> indicator, where there are currently two versions: 0 and 1
Stacked SRS0 rewrites are no longer allowed/possible. Each SRS0 address you
rewrite, will automatically become a SRS1 address:
SRS0=5QqmApog=OG=isp.nl=tester@asarian-host.net
SRS1=CaygymUx=asarian-host.net==5QqmApog=OG=isp.nl=tester@asarian-host.net
As you can see, Chris, the original address can still be easily distilled.
Also, to take away another of your confusions, the double "==" only occurs
on SRS1 addresses.
Although only Shevek can make a statement like this with absolute
authority, the SRS protocol is pretty much fixed, and is likely to remain
unchanged.
Cheers,
- Mark
System Administrator Asarian-host.org
---
"If you were supposed to understand it,
we wouldn't call it code." - FedEx
-------
To unsubscribe, change your address, or temporarily deactivate your subscription,
please go to
http://v2.listbox.com/member/?listname=srs-discuss@v2.listbox.com