On Nov 02, 2011, at 12:00 PM, Chris Clark wrote:

>If a header is going to contain data that is generated from non-trivial
>processing I think it would be good form to include the algorithm name in the
>header.

The idea behind the header is to enhance RFC 5064 so that the MLM can
pre-calculate Archived-At for the destination archive, without any interaction
from that archiver.  It also enables users to do the same.

Message-ID-Hash is primarily a convenience value which provides the last
component in Archived-At.  Thus Archived-At is calculated as
<base_url>/<mid_hash> where <base_url> is typically the List-Archive header
value and <mid_hash> is Message-ID-Hash.

The choice of Base 32 was deliberate.  It's seen as a trade-off between
uniqueness and (potentially <wink>) human readable.

http://wiki.list.org/display/DEV/Stable+URLs

The reason you do not want variability in the algorithm is because you want to
be able to calculate the Archived-At value given only the Message-ID and the
archiver base url.  Having to also exchange knowledge of the algorithm used
would make this less usable IMO.

Let's say I know that messages to mailman-developers are archived at
mail.python.org, gmane.org and www.mail-archive.com, and I somehow know that
your original message has Message-ID: <[email protected]>, I don't
need anything else to find your message:

    >>> from hashlib import sha1
    >>> from base64 import b32encode
    >>> mid_hash = b32encode(sha1('<[email protected]>').digest())
    >>> mid_hash
    'ANDJGXNCTPGVTF5F2WROKOOKXGKZDBC6'
    >>> for base in ('gmane.org', 'mail-archive.com', 'mail.python.org'):
    ...   print 'http://{0}/{1}'.format(base, mid_hash)
    ... 
    http://gmane.org/ANDJGXNCTPGVTF5F2WROKOOKXGKZDBC6
    http://mail-archive.com/ANDJGXNCTPGVTF5F2WROKOOKXGKZDBC6
    http://mail.python.org/ANDJGXNCTPGVTF5F2WROKOOKXGKZDBC6

That's the compelling argument behind the *concept* of Message-ID-Hash, but as
you can see, it's easy to calculate with just two pieces of information, one
of which is static and the other which is fairly easy to convey.

Cheers,
-Barry

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Mailman-Developers mailing list
[email protected]
http://mail.python.org/mailman/listinfo/mailman-developers
Mailman FAQ: http://wiki.list.org/x/AgA3
Searchable Archives: 
http://www.mail-archive.com/mailman-developers%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-developers/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9

Reply via email to