.. _mozilla_projects_nss_nss_3_72_release_notes:

NSS 3.72 release notes
======================

`Introduction <#introduction>`__
--------------------------------

.. container::

   Network Security Services (NSS) 3.72 was released on **28 October 2021**.

.. _distribution_information:

`Distribution Information <#distribution_information>`__
--------------------------------------------------------

.. container::

   The HG tag is NSS_3_72_RTM. NSS 3.72 requires NSPR 4.32 or newer.

   NSS 3.72 source distributions are available on ftp.mozilla.org for secure HTTPS download:

   -  Source tarballs:
      https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_72_RTM/src/

   Other releases are available :ref:`mozilla_projects_nss_releases`.

.. _changes_in_nss_3.72:

`Changes in NSS 3.72 <#changes_in_nss_3.72>`__
----------------------------------------------------

.. container::

   - Documentation: release notes for NSS 3.72
   - Documentation: release notes for NSS 3.71
   - Remove newline at the end of coreconf.dep
   - Bug 1731911 - Fix nsinstall parallel failure.
   - Bug 1729930 - Increase KDF cache size to mitigate perf regression in about:logins.

`Compatibility <#compatibility>`__
----------------------------------

.. container::

   NSS 3.72 shared libraries are backwards-compatible with all older NSS 3.x shared
   libraries. A program linked with older NSS 3.x shared libraries will work with
   this new version of the shared libraries without recompiling or
   relinking. Furthermore, applications that restrict their use of NSS APIs to the
   functions listed in NSS Public Functions will remain compatible with future
   versions of the NSS shared libraries.

`Feedback <#feedback>`__
------------------------

.. container::

   Bugs discovered should be reported by filing a bug report on
   `bugzilla.mozilla.org <https://bugzilla.mozilla.org/enter_bug.cgi?product=NSS>`__ (product NSS).
