diff --git a/ChangeLog b/ChangeLog
index 545a52fef075f65dd2d7dd3dda9bed58155f8982..3f0324b6c50cb98ed3dbab3cc4c5df2a5d619d5d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2014-04-27  Niels Möller  <nisse@lysator.liu.se>
+
+	* nettle.texinfo (Cipher modes): Subsection on AEAD constructions.
+
 2014-04-26  Niels Möller  <nisse@lysator.liu.se>
 
 	* nettle.texinfo: Update for introduction of nettle_cipher_func.
diff --git a/nettle.texinfo b/nettle.texinfo
index 3a01cca90da473741909a2495decd16e3f71dc84..df3e07f819c6b7ba49c54f10c39a2eed6863d9f8 100644
--- a/nettle.texinfo
+++ b/nettle.texinfo
@@ -1811,17 +1811,48 @@ Cipher modes of operation specifies the procedure to use when encrypting
 a message that is larger than the cipher's block size. As explained in
 @xref{Cipher functions}, splitting the message into blocks and
 processing them independently with the block cipher (Electronic Code
-Book mode, @acronym{ECB}) leaks information. Besides @acronym{ECB},
-Nettle provides three other modes of operation: Cipher Block Chaining
-(@acronym{CBC}), Counter mode (@acronym{CTR}), and Galois/Counter mode
-(@acronym{GCM}). @acronym{CBC} is widely used, but there are a few
-subtle issues of information leakage, see, e.g.,
+Book mode, @acronym{ECB}), leaks information.
+
+Besides @acronym{ECB}, Nettle provides a two other modes of operation:
+Cipher Block Chaining (@acronym{CBC}), Counter mode (@acronym{CTR}), and
+a couple of AEAD modes (see below). @acronym{CBC} is widely used, but
+there are a few subtle issues of information leakage, see, e.g.,
 @uref{http://www.kb.cert.org/vuls/id/958563, @acronym{SSH} @acronym{CBC}
-vulnerability}. @acronym{CTR} and @acronym{GCM}
-were standardized more recently, and are believed to be more secure.
-@acronym{GCM} includes message authentication; for the other modes, one
-should always use a @acronym{MAC} (@pxref{Keyed hash functions}) or
-signature to authenticate the message.
+vulnerability}. Today, @acronym{CTR} is usually preferred over @acronym{CBC}.
+
+Modes like @acronym{CBC} and @acronym{CTR} provide @emph{no} message
+authentication, and should always be used together with a @acronym{MAC}
+(@pxref{Keyed hash functions}) or signature to authenticate the message.
+
+@subsection Authenticated encryption with associated data
+@cindex AEAD
+@cindex Authenticated encryption
+
+Since there are some subtle design choices to be made when combining a
+block cipher mode with out authentication with a @acronym{MAC}. In
+recent years, several constructions that combine encryption and
+authentication have been defined. These constructions typically also
+have an additional input, the ``associated data'', which is
+authenticated but not included with the message. A simple example is an
+implicit message number which is available at both sender and receiver,
+and which needs authentication in order to detect deletions or replay of
+messages. This family of building blocks are therefore called
+@acronym{AEAD}, Authenticated encryption with associated data.
+
+The aim is to provide building blocks that it is easier for designers of
+protocols and applications to use correctly. There is also some
+potential for improved performance, if encryption and authentication can
+be done in a single step, although that ptotential is not realized for
+the constructions currently supported by Nettle.
+
+The supported @acronym{AEAD} constructions are Galois/Counter mode
+(@acronym{GCM}), @acronym{EAX}, and Counter with
+@acronym{CBC}-@acronym{MAC} (@acronym{CCM}). Of these, I recommend
+@acronym{EAX}. There are some weaknesses in @acronym{GCM}
+authentication, see
+@uref{http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/comments/CWC-GCM/Ferguson2.pdf}.
+@acronym{CCM} and @acronym{EAX} use the same building blocks, but
+the @acronym{EAX} design is simpler.
 
 @menu
 * CBC::                         
@@ -2202,6 +2233,10 @@ recommended by NIST in 2007,
 NIST Special Publication 800-38D}. It is constructed on top of a block
 cipher which must have a block size of 128 bits.
 
+The authentication in @acronym{GCM} has some known weaknesses, see
+@uref{http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/comments/CWC-GCM/Ferguson2.pdf}.
+In particular, don't use @acronym{GCM} with short authentication tags.
+
 @acronym{GCM} is applied to messages of arbitrary length. The inputs
 are:
 
@@ -2275,9 +2310,9 @@ a multiple of the block size.
 
 @deftypefun void gcm_digest (struct gcm_ctx *@var{ctx}, const struct gcm_key *@var{key}, const void *@var{cipher}, nettle_cipher_func *@var{f}, size_t @var{length}, uint8_t *@var{digest})
 Extracts the message digest (also known ``authentication tag''). This is
-the final operation when processing a message. @var{length} is usually
-equal to @code{GCM_DIGEST_SIZE}, but if you provide a smaller value,
-only the first @var{length} octets of the digest are written.
+the final operation when processing a message. It's strongly recommended
+that @var{length} is @code{GCM_DIGEST_SIZE}, but if you provide a smaller
+value, only the first @var{length} octets of the digest are written.
 @end deftypefun
 
 To encrypt a message using @acronym{GCM}, first initialize a context for