mirror of
https://github.com/ipxe/ipxe
synced 2026-10-07 15:05:42 +03:00
42826fa9d9b8e37605427ec6cbd50f9e1167afca
All symbol references to the MD5+SHA1 algorithm will be eliminated if TLS_VERSION_MIN is set to a version greater than TLS version 1.1. However, the dummy RSA digestInfo prefix is retained since it is a linker table entry. This dummy prefix object holds a pointer to the MD5+SHA1 algorithm and so prevents it from being garbage collected by the linker. Remove the dummy empty RSA digestInfo prefix and instead allow a digest to be encoded without any prefix for the MD5+SHA1 digest algorithm. Use a custom test to allow the MD5+SHA1 algorithm to be identified without using a symbol reference to md5_sha1_algorithm, since even a weak reference would suffice to cause the symbol to be retained once some other object drags it in to the build, and this is essentially guaranteed to happen: tlskey_md5_sha1 drags in md5_sha1_algorithm, which causes any existing weak references to be promoted to strong references, and those strong references remain even if tlskey_md5_sha1 is later garbage collected. The custom test uses a one-byte sentinel in .bss to give us a unique value to place in digest->priv: this can then be used to identify MD5+SHA1 without any symbol reference to md5_sha1_algorithm. Signed-off-by: Michael Brown <mcb30@ipxe.org>
iPXE network bootloader
iPXE is the leading open source network boot firmware. It provides a full PXE implementation enhanced with additional features such as:
-
boot from a web server via HTTP or HTTPS,
-
boot from an iSCSI, FCoE, or AoE SAN,
-
control the boot process with a script,
You can use iPXE to replace the existing PXE ROM on your network card, or you can chainload into iPXE to obtain the features of iPXE without the hassle of reflashing.
iPXE is free, open-source software licensed under the GNU GPL (with some portions under GPL-compatible licences).
You can download the rolling release binaries (built from the latest commit), or use the most recent stable release.
For full documentation, visit the iPXE website.
Languages
C
98.5%
Assembly
0.6%
Python
0.3%
Perl
0.3%
Makefile
0.2%