<varlistentry>
  <term>
    <emphasis remap='B'>esp</emphasis>
  </term>
  <listitem>
    <para>
      Specifies the algorithms that will be offered/accepted when
      negotiating a a Child SA.  The general syntax is:
      <programlisting>
	ESP = PROPOSAL[,PROPOSAL...]
	PROPOSAL = ENCRYPT_ALGS[-INTEG_ALGS[-DH_ALGS]]
	ENCRYPT_ALGS = ENCRYPT_ALG[+ENCRYPT_ALG...]
	INTEG_ALGS = INTEG_ALG[+INTEG_ALG...]
	DH_ALGS = DH_ALG[+DH_ALG...]
      </programlisting>
      During startup,
      <citerefentry>
	<refentrytitle>ipsec_pluto</refentrytitle>
	<manvolnum>8</manvolnum>
      </citerefentry>
      will log all supported ESP algorithms.
    </para>
    <para>
      Specifying the DH algorithms explicitly is
      <emphasis>not</emphasis> recommended.  When PFS is enabled, and
      the DH algorithms are omitted, each PROPOSAL will automatically
      include the DH algorithm negotiated during the IKE exchange.
    </para>
    <para>
      AEAD algorithms such as AES_GCM and AES_CCM no not require a
      separate integrity algorithm.  For example <emphasis
      remap='I'>esp=aes_gcm256</emphasis> or <emphasis
      remap='I'>esp=aes_ccm</emphasis>.
    </para>
    <para>
      For instance:
      <programlisting>
	esp=aes_gcm,aes128+aes256-sha2_512+sha2_256-dh14+dh19
	esp=aes128-sha2_512-dh14+dh19
      </programlisting>
      If not specified, a secure set of defaults will be used.  The
      program:
      <programlisting>
	ipsec algparse esp=...
      </programlisting>
      can be used to query these defaults.
    </para>
  </listitem>
</varlistentry>
