)]}'
{
  "commit": "69e95ae7a51d73b85fef3a2d1af9e0fc08e8ab00",
  "tree": "b5ffcd56a085b6ee5dd6129d8e59b19d0582181d",
  "parents": [
    "af0e5d529b860caf31c785df3e6e3d65c45e2d9f"
  ],
  "author": {
    "name": "Michael Brown",
    "email": "mcb30@ipxe.org",
    "time": "Thu Jun 18 14:21:08 2026 +0100"
  },
  "committer": {
    "name": "Michael Brown",
    "email": "mcb30@ipxe.org",
    "time": "Thu Jun 18 14:31:29 2026 +0100"
  },
  "message": "[crypto] Generalise notion of uncompressed elliptic curve points\n\nWith algorithm private data pointers now available, the general\nmechanism for key exchange using uncompressed elliptic curve points\ncan be separated from the Weierstrass curve implementation.\n\nGeneralise the mechanism for performing elliptic curve key exchange\nusing uncompressed affine co-ordinates.\n\nSigned-off-by: Michael Brown \u003cmcb30@ipxe.org\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "75b8ba0689c2e05ab4dc23353223f3b4ab6a265c",
      "new_mode": 33188,
      "new_path": "src/crypto/elliptic.c"
    },
    {
      "type": "modify",
      "old_id": "074f3c79ffcbf36288bf97544f1cebfc75a90547",
      "old_mode": 33188,
      "old_path": "src/crypto/p256.c",
      "new_id": "e6ea902f978906eaccde3cbf1a8c07e10840d6e5",
      "new_mode": 33188,
      "new_path": "src/crypto/p256.c"
    },
    {
      "type": "modify",
      "old_id": "fe49adc8c6d645833c04200ec39eb371a0a6cf64",
      "old_mode": 33188,
      "old_path": "src/crypto/p384.c",
      "new_id": "d5cfa1c68c01443c79e298288537f2f060b63766",
      "new_mode": 33188,
      "new_path": "src/crypto/p384.c"
    },
    {
      "type": "modify",
      "old_id": "d669b9a73ae13b714ecd6fceb4bc931ee85d9f08",
      "old_mode": 33188,
      "old_path": "src/crypto/weierstrass.c",
      "new_id": "1f84919eb935c350d1ee957f74a04599867ab871",
      "new_mode": 33188,
      "new_path": "src/crypto/weierstrass.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ff316510173cdcbb607d047448ec436d87228497",
      "new_mode": 33188,
      "new_path": "src/include/ipxe/elliptic.h"
    },
    {
      "type": "modify",
      "old_id": "1398346e09851f152bb8b3994b5fa1768cc08afa",
      "old_mode": 33188,
      "old_path": "src/include/ipxe/errfile.h",
      "new_id": "9f4661790d584be2240f5c90a666a52684f19f64",
      "new_mode": 33188,
      "new_path": "src/include/ipxe/errfile.h"
    },
    {
      "type": "modify",
      "old_id": "9e9514d9a09ef3ec2a8dd62f311a8f082f67e6c9",
      "old_mode": 33188,
      "old_path": "src/include/ipxe/weierstrass.h",
      "new_id": "005f713f4418a76949baad04e4a978ca79383564",
      "new_mode": 33188,
      "new_path": "src/include/ipxe/weierstrass.h"
    }
  ]
}
