Home GnuPG

md: Add Whirlpool bug emulation feature.
77f28793481dUnpublished

Unpublished Commit · Learn More

Not On Permanent Ref: This commit is not an ancestor of any permanent ref.

Description

md: Add Whirlpool bug emulation feature.

* src/gcrypt.h.in (GCRY_MD_FLAG_BUGEMU1): New.
* src/cipher-proto.h (gcry_md_init_t): Add arg FLAGS.  Change all code
to implement that flag.
* cipher/md.c (gcry_md_context):  Replace SECURE and FINALIZED by bit
field FLAGS.  Add flag BUGEMU1.  Change all users.
(md_open): Replace args SECURE and HMAC by FLAGS.  Init flags.bugemu1.
(_gcry_md_open): Add for GCRY_MD_FLAG_BUGEMU1.
(md_enable): Pass bugemu1 flag to the hash init function.
(_gcry_md_reset): Ditto.

This problem is for example exhibited in the Linux cryptsetup tool.
See https://bbs.archlinux.org/viewtopic.php?id=175737 . It has
been tracked down by Milan Broz.

The suggested way of using the flag is:

if (whirlpool_bug_assumed)
  {

#if GCRYPT_VERSION_NUMBER >= 0x010601

err = gcry_md_open (&hd, GCRY_MD_WHIRLPOOL, GCRY_MD_FLAG_BUGEMU1)
if (gpg_err_code (err) == GPG_ERR_INV_ARG)
   error ("Need at least Libggcrypt 1.6.1 for the fix");
else
   {
      do_hash (hd);
      gcry_md_close (hd);
    }

#endif

}

(cherry picked from commit 94030e44aaff805d754e368507f16dd51a531b72)

Reolved conflicts:
NEWS
cipher/whirlpool.c: Remove NBLOCKS arg from whirlpool_transform.

  • Signed-off-by: Werner Koch <wk@gnupg.org>

Details

Provenance
wernerAuthored on Jan 9 2014, 7:14 PM
Parents
rCead3a097a9ee: PBKDF2: Use gcry_md_reset to speed up calculation.
Branches
Unknown
Tags
Unknown

Event Timeline

Werner Koch <wk@gnupg.org> committed rC77f28793481d: md: Add Whirlpool bug emulation feature. (authored by Werner Koch <wk@gnupg.org>).Jan 20 2014, 10:06 AM