Add missing full stops in smime_keys.man page.

Thanks to hmartink and the manpage-l10n project for pointing out the
Remove casts for mutt_random_bytes() argument.

Unneeded casts can hide issues later on, so take them out.
Remove message-id security leaks section of manual.

The message-id generator has been changed to use a combination of time
and random components for the left side.
Change Message-ID to be more unique and leak less information

A Message-ID should be globally unique. Currently mutt generates this ID
based on the current date and time, followed by ".G", followed by a letter
A to Z (A for the 1st and 27th email sent, Z for the 26th, etc.), followed
by the pid of the active mutt process, followed by "@" and the configured

This can lead to information being leaked as to an users email habits and
activities, which might be undesirable.

By replacing everything left of the "@" in the Message-ID with a Base64
encoded timestamp and 64 bits of randomness, we no longer include this
Use PRIu64 macro as format when printing uint64_t values
Implement LFRS113 PRNG functions

- Instead of relying on random() implementations which can be of
questionable quality or relying on the presence of /dev/urandom, we
implement our own PRNG implementation that uses the LFRS113 PRNG algorithm
by Pierre L'Ecuyer.

We seed this PRNG with values based on time, pid and ppid. It is OK if not
all seeds are of the highest quality as all four seeds would have to be
known to predict the numbers generated. In addition to this, we also use
/dev/urandom values (if available) that we mix into our four seeds.

In case we are reseeding we will also reuse our existing state information
for setting the new seed values.

- Add a function to Base64 encode 96 random bits
56de020a — isdtor 6 days ago
Add note about $smime_default_key to use with GPGME.

When using GPGME for S/MIME, the key id used should be the id
displayed by "gpgsm --list-keys".
Block signals during mbox-append operation.

I first noticed this back in 2017, but no one replied to my query to
mutt-dev and I forgot about it too.

Thanks to Oswald Buddenhagen for the followup when he was going
through the mailing list archives, confirming the mistake.

I've also reviewed MUTT_APPEND and MUTT_NEWFOLDER uses to make sure
the context is properly closed (and the signals restored).
Removed unused mutt_expand_path()

All usages now call mutt_buffer_expand_path().
Convert _mutt_enter_string() to use buffer expand_path function.

This is the last usage of mutt_expand_path().  Converting all of
_mutt_enter_string() is a large project, so instead just localize to
use a BUFFER for the mutt_expand_path() call.
Remove unused mutt_quote_filename().

All callers now call the buffer function instead.
Convert mutt_create_alias and helpers to use buffer pool.

This is working towards removing a few of the partially converted path
functions, such as mutt_expand_path().
2d9c05c9 — Olaf Hering 12 days ago
Fix typos in de.po

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Use muttmua ubuntu image for shellcheck.
Turn off shellcheck unused var warning for doc/instdoc.sh.
Disable relative expansion for signature and source pipes.

Relative expansion shouldn't be performed when those values are to be
executed as a pipe for the output.

I believe this issue only affects $signature and the source command,
so for now I'm disabling relative expansion for those two cases.  If
there is too much more breakage, I will consider backing out the
relative expansion and disabling the :cd command.

Thanks to Aaron Schrab for reporting this issue.
Normalize expanded paths with '.' or '..' in them.

This usage is not too likely, but to prevent strange looking mailbox
paths, make sure the path is normalized after being expanded.
Remove relative path expansion for some cases.

Some paths, such as the folder browser, or certain hook values,
should be expanded for shortcuts, but not for relative paths.

Configuration variables that hold commands that search by PATH should
also not be expanded.

Create a separate call, and a separate data type for config vars.
Change expand_path() to expand relative paths.

The introduction of the "cd" command can make relative paths
unreliable.  Change expand_path() to expand relative paths.

Change pretty_mailbox() to contract relative paths, but only when the
folder is outside of homedir, or when cwd is underneath the homedir.

To try and keep the sidebar from changing, use the pretty_mailbox code
to contract relative paths only.
Merge branch 'stable' into master
automatic post-release commit for mutt-1.14.7