bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#58472: [PATCH] Make `message-unique-id' less prone to collisions


From: Paul Eggert
Subject: bug#58472: [PATCH] Make `message-unique-id' less prone to collisions
Date: Thu, 13 Oct 2022 09:21:05 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2

On 2022-10-12 19:46, Stefan Kangas wrote:

The main goal is to avoid collisions, but using the time also gives an
idea of when the message was sent, which is kind of nice.

That info is in the Date: line, along with zillions of other Received: lines. There should be no need to repeat it in the Message-ID line.

Time also
guarantees a somewhat unique value even if the user has happened to set
the random seed.

If that's a concern, we should be using more-random data, e.g., with

   (base64-encode-string
    (secure-hash 'md5 'iv-auto 128 nil t))

if we want 128 bits of randomness (this yields a string like "B8a3usyu5QSE/rTLu0nIHg==").

As an aside, it's weird that there's no easy way to ask Emacs for an N-bit random integer, where the randomness is taken from system entropy. Shouldn't we extend Emacs to support that? E.g., (make-string 128 'iv-auto) could give you an N-byte entropy-derived random string, or (random -N) could give you an N-bit entropy-derived random nonnegative integer, or something like that. Then we could write something like this:

  (base64-encode-string (make-string 16 'iv-auto))

to get a Message-ID component with 16 bytes (128 bits) of entropy.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]