[crypto] Define a structure for holding hybrid MD5+SHA1 HMAC keys The hybrid PRF used in TLS version 1.1 and earlier does not use HMAC with the hybrid MD5+SHA1 algorithm: it uses separate invocations of HMAC-MD5 and HMAC-SHA1. Using hmac_keysize(&md5_sha1_algorithm) would produce a size too small to hold the combined HMAC-MD5 and HMAC-SHA1 keys. One option would be to set the (currently unused) MD5+SHA1 block size to 128, thereby ensuring that hmac_keysize() would happen to return a length large enough to hold both HMAC keys. This would avoid the need to special-case the MD5+SHA1 algorithm when calculating the required HMAC key size for the PRF, but would inevitably cause confusion in future. Set the MD5+SHA1 block size to 64 (since both algorithms have the same underlying block size, and this would therefore produce the "correct" result if anything were ever to use HMAC directly with the hybrid MD5+SHA1 algorithm), and define a separate structure for holding the separated HMAC keys used by the PRF in TLS version 1.1 and earlier. Signed-off-by: Michael Brown <mcb30@ipxe.org>
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.