openssl: fix sysupgrade failure with devcrypto
authorEneas U de Queiroz <cotequeiroz@gmail.com>
Mon, 6 Mar 2023 14:58:56 +0000 (11:58 -0300)
committerEneas U de Queiroz <cotequeiroz@gmail.com>
Mon, 6 Mar 2023 21:09:13 +0000 (18:09 -0300)
commit387c2df15cbd7bfa3917209541e1cd94ddc885d0
treea06ca4c1db489e0e3b340ecd6928764ee25244fb
parenta03076cc392b67c8342aac2017f8ac903c983e59
openssl: fix sysupgrade failure with devcrypto

The bump to 3.0.8 inadvertently removed patches that are needed here,
but were not adopted upstream.  The most important one changes the
default value of the DIGESTS setting from ALL to NONE.  The absence of
this patch causes a sysupgrade failure while the engine is in use with
digests enabled.  When this happens, the system fails to boot with a
kernel panic.

Also, explicitly set DIGESTS to NONE in the provided config file, and
change the default ciphers setting to disable ECB, which has been
recommended for a long time and may cause trouble with some apps.

The config file change by itself is not enough because the config file
may be preserved during sysupgrade.

For people affected by this bug:

You can either:
1. remove, the libopenssl-devcrypto package
2. disable the engine in /etc/config/openssl;
3. change /etc/ssl/engines.cnf.d/devcrypto.cnf to set DIGESTS=NONE;
4. update libopenssl-devcrypto to >=3.0.8-3

However, after doing any of the above, **you must reboot the device
before running sysupgrade** to ensure no running application is using
the engine.  Running `/etc/init.d/openssl restart` is not enough.

Fixes: 7e7e76afca "openssl: bump to 3.0.8"
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
package/libs/openssl/Makefile
package/libs/openssl/files/devcrypto.cnf
package/libs/openssl/patches/500-e_devcrypto-default-to-not-use-digests-in-engine.patch [new file with mode: 0644]
package/libs/openssl/patches/510-e_devcrypto-ignore-error-when-closing-session.patch [new file with mode: 0644]