Home GnuPG

md: Add Whirlpool bug emulation feature.
94030e44aaffUnpublished

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 be
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

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

Details

Provenance
wernerAuthored on Jan 9 2014, 7:14 PM
Parents
rCc3b30bae7d1e: Actually check for uint64_t.
Branches
Unknown
Tags
Unknown

Event Timeline

Werner Koch <wk@gnupg.org> committed rC94030e44aaff: md: Add Whirlpool bug emulation feature. (authored by Werner Koch <wk@gnupg.org>).Jan 19 2014, 3:13 PM