[Top][All Lists]

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

ANNOUNCE: Nettle-3.1

From: Niels Möller
Subject: ANNOUNCE: Nettle-3.1
Date: Tue, 07 Apr 2015 21:38:50 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (usg-unix-v)

I'm happy to announce a new version of GNU Nettle, a low-level
cryptographics library.

The Nettle home page can be found at, and the manual at

NEWS for the Nettle 3.1 release

        This release adds a couple of new features.

        The library is mostly source-level compatible with nettle-3.0.
        It is however not binary compatible, due to the introduction
        of versioned symbols, and extensions to the base64 context
        structs. The shared library names are and, with sonames and

        Bug fixes:

        * Fixed a missing include of <limits.h>, which made the
          camellia implementation fail on all 64-bit non-x86

        * Eliminate out-of-bounds reads in the C implementation of
          memxor (related to valgrind's --partial-loads-ok flag).

        Interface changes:

        * Declarations of many internal functions are moved from ecc.h
          to ecc-internal.h. The functions are undocumented, and
          luckily they're apparently also unused by applications, so I
          don't expect any problems from this change.

        New features:

        * Support for curve25519 and for EdDSA25519 signatures.

        * Support for "fat builds" on x86_64 and arm, where the
          implementation of certain functions is selected at run-time
          depending on available cpu features. Configure with
          --enable-fat to try this out. If it turns out to work well
          enough, it will likely be enabled by default in later

        * Support for building the hogweed library (public key
          support) using "mini-gmp", a small but slower implementation
          of a subset of the GMP interfaces. Note that builds using
          mini-gmp are *not* binary compatible with regular builds,
          and more likely to leak side-channel information.

          One intended use-case is for small embedded applications
          which need to verify digital signatures.

        * The shared libraries are now built with versioned symbols.
          Should reduce problems in case a program links explicitly to
          nettle and/or hogweed, and to gnutls, and the program and
          gnutls expect different versions.

        * Support for "URL-safe" base64 encoding and decoding, as
          specified in RFC 4648. Contributed by Amos Jeffries.


        * New x86_64 implementation of AES, using the "aesni"
          instructions. Autodetected in fat builds. In non-fat builds,
          it has to be enabled explicitly with --enable-x86-aesni.

        Build system:

        * Use the same object files for both static and shared
          libraries. This eliminates the *.po object files which were
          confusing to some tools (as well as humans). Like before,
          PIC code is used by default; to build a non-pic static
          library, configure with --disable-pic --disable-shared.


        * Made type-checking hack in CBC_ENCRYPT and similar macros
          stricter, to generate warnings if they are used with
          functions which have a length argument smaller than size_t.

Available at: (soon)

Happy hacking,
/Niels Möller

Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
Internet email is subject to wholesale government surveillance.

Attachment: pgpkY1ea2pFbo.pgp
Description: PGP signature

reply via email to

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