| ================= |
| /proc/sys/crypto/ |
| ================= |
| |
| These files show up in ``/proc/sys/crypto/``, depending on the |
| kernel configuration: |
| |
| .. contents:: :local: |
| |
| .. _af_alg_restrict: |
| |
| af_alg_restrict |
| =============== |
| |
| Controls the level of restriction of AF_ALG. |
| |
| AF_ALG is a deprecated and rarely-used userspace interface that is a |
| frequent source of vulnerabilities. It also unnecessarily exposes a |
| large number of kernel implementation details. For more information |
| about AF_ALG, see :ref:`Documentation/crypto/userspace-if.rst |
| <crypto_userspace_interface>`. |
| |
| Starting in Linux v7.3, AF_ALG supports only a limited set of |
| algorithms by default. This sysctl allows the system administrator to |
| remove this restriction when needed for compatibility reasons, or to |
| go further and disable AF_ALG entirely. The default value is 1. |
| |
| === ================================================================== |
| 0 AF_ALG is unrestricted. |
| |
| 1 AF_ALG is supported with a limited list of algorithms. The list |
| is designed for compatibility with known users such as iwd and |
| bluez that haven't yet been fixed to use userspace crypto code. |
| |
| Specifically, there is an allowlist for unprivileged processes |
| and a somewhat longer allowlist for processes that hold |
| CAP_SYS_ADMIN or CAP_NET_ADMIN in the initial user namespace. |
| |
| Attempts to bind() an AF_ALG socket with a disallowed algorithm |
| fail with ENOENT. |
| |
| 2 AF_ALG is completely disabled. Attempts to create an AF_ALG |
| socket fail with EAFNOSUPPORT. |
| === ================================================================== |
| |
| fips_enabled |
| ============ |
| |
| Read-only flag that indicates whether FIPS mode is enabled. |
| |
| - ``0``: FIPS mode is disabled (default). |
| - ``1``: FIPS mode is enabled. |
| |
| This value is set at boot time via the ``fips=1`` kernel command line |
| parameter. When enabled, the cryptographic API will restrict the use |
| of certain algorithms and perform self-tests to ensure compliance with |
| FIPS (Federal Information Processing Standards) requirements, such as |
| FIPS 140-2 and the newer FIPS 140-3, depending on the kernel |
| configuration and the module in use. |
| |
| fips_name |
| ========= |
| |
| Read-only file that contains the name of the FIPS module currently in use. |
| The value is typically configured via the ``CONFIG_CRYPTO_FIPS_NAME`` |
| kernel configuration option. |
| |
| fips_version |
| ============ |
| |
| Read-only file that contains the version string of the FIPS module. |
| If ``CONFIG_CRYPTO_FIPS_CUSTOM_VERSION`` is set, it uses the value from |
| ``CONFIG_CRYPTO_FIPS_VERSION``. Otherwise, it defaults to the kernel |
| release version (``UTS_RELEASE``). |
| |
| Copyright (c) 2026, Shubham Chakraborty <chakrabortyshubham66@gmail.com> |
| |
| For general info and legal blurb, please look in |
| Documentation/admin-guide/sysctl/index.rst. |
| |
| .. See scripts/check-sysctl-docs to keep this up to date: |
| .. scripts/check-sysctl-docs -vtable="crypto" \ |
| .. $(git grep -l register_sysctl_) |