)]}'
{
  "commit": "37225fa9cd6c2491f779cd9d37f2ddd1b6700bad",
  "tree": "0142695603867bc0f689e43c516e50cfb814c66f",
  "parents": [
    "eaef9a0742b0b4527d3111000b99e1eb770db468"
  ],
  "author": {
    "name": "Michael Brown",
    "email": "mcb30@ipxe.org",
    "time": "Tue Jun 30 14:58:33 2026 +0100"
  },
  "committer": {
    "name": "Michael Brown",
    "email": "mcb30@ipxe.org",
    "time": "Thu Jul 02 11:43:04 2026 +0100"
  },
  "message": "[crypto] Define a structure for holding hybrid MD5+SHA1 HMAC keys\n\nThe hybrid PRF used in TLS version 1.1 and earlier does not use HMAC\nwith the hybrid MD5+SHA1 algorithm: it uses separate invocations of\nHMAC-MD5 and HMAC-SHA1.\n\nUsing hmac_keysize(\u0026md5_sha1_algorithm) would produce a size too small\nto hold the combined HMAC-MD5 and HMAC-SHA1 keys.  One option would be\nto set the (currently unused) MD5+SHA1 block size to 128, thereby\nensuring that hmac_keysize() would happen to return a length large\nenough to hold both HMAC keys.  This would avoid the need to\nspecial-case the MD5+SHA1 algorithm when calculating the required HMAC\nkey size for the PRF, but would inevitably cause confusion in future.\n\nSet the MD5+SHA1 block size to 64 (since both algorithms have the same\nunderlying block size, and this would therefore produce the \"correct\"\nresult if anything were ever to use HMAC directly with the hybrid\nMD5+SHA1 algorithm), and define a separate structure for holding the\nseparated HMAC keys used by the PRF in TLS version 1.1 and earlier.\n\nSigned-off-by: Michael Brown \u003cmcb30@ipxe.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "88f4668bbaf9cad99ffa73c517b4962b2489d838",
      "old_mode": 33188,
      "old_path": "src/crypto/md5_sha1.c",
      "new_id": "9d66e4dc6752be0ba6aa91419f67627eb9744263",
      "new_mode": 33188,
      "new_path": "src/crypto/md5_sha1.c"
    },
    {
      "type": "modify",
      "old_id": "110e0b47fa616aaf1b6d21fd8451baaa97c3991c",
      "old_mode": 33188,
      "old_path": "src/include/ipxe/md5_sha1.h",
      "new_id": "6b186a875888442101edc38911e540d22adf0fb7",
      "new_mode": 33188,
      "new_path": "src/include/ipxe/md5_sha1.h"
    }
  ]
}
