)]}'
{
  "log": [
    {
      "commit": "3c8347750791cfca9a755971847dc2a5e0fa785b",
      "tree": "14b3a6377f1c9b556beb155d6333bf2601b6fcff",
      "parents": [
        "effb73d4904b4f8b1c91641149fc05dc3043f8a6",
        "01833c73bea98d773d79318831900cea6ca9a5a5"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "92275829+valeriosetti@users.noreply.github.com",
        "time": "Wed Aug 12 09:20:33 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 09:20:33 2026 +0200"
      },
      "message": "Merge pull request #306 from gilles-peskine-arm/psa-hash-no-buffer-copy-framework\n\nframework: Don\u0027t copy buffers for low-risk PSA operations"
    },
    {
      "commit": "effb73d4904b4f8b1c91641149fc05dc3043f8a6",
      "tree": "d40fe618d206d10e70de37e195faec857c50e335",
      "parents": [
        "6d52dc02e763b317d9267160855fac4632a056e5",
        "9e9f977e32d51fb84daf82dbeed7d22e7190facf"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "gilles.peskine@arm.com",
        "time": "Wed Aug 05 13:29:07 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 05 13:29:07 2026 +0200"
      },
      "message": "Merge pull request #296 from gilles-peskine-arm/ssl_fork_server-rng-test-framework\n\nAdd SSL log validator script"
    },
    {
      "commit": "9e9f977e32d51fb84daf82dbeed7d22e7190facf",
      "tree": "d40fe618d206d10e70de37e195faec857c50e335",
      "parents": [
        "37e13da3c2909e8333eb5a6d4665234d2c97ec7c",
        "6d52dc02e763b317d9267160855fac4632a056e5"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Aug 05 08:57:02 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Aug 05 08:57:02 2026 +0200"
      },
      "message": "Merge remote-tracking branch \u0027main\u0027 into ssl_fork_server-rng-test-framework\n"
    },
    {
      "commit": "6d52dc02e763b317d9267160855fac4632a056e5",
      "tree": "b5256a32c9430a2ad768e2022f5d22578bf63afe",
      "parents": [
        "a3079552234917a9831dd70693983af5e62c70de",
        "79fd85d1e8b055b93dbb796d181c073b5973d628"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "gilles.peskine@arm.com",
        "time": "Fri Jul 31 18:32:01 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 18:32:01 2026 +0200"
      },
      "message": "Merge pull request #312 from gilles-peskine-arm/mldsa-driver-expanded-key-framework\n\nML-DSA test generator: support expanded and joined key formats"
    },
    {
      "commit": "01833c73bea98d773d79318831900cea6ca9a5a5",
      "tree": "03513781722b85207bfc23977bffc25b7b566ea0",
      "parents": [
        "9ffe13506d145203e4304b9d3a6d6ae4e12741e2"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Thu May 28 15:07:50 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Thu Jul 30 13:42:28 2026 +0200"
      },
      "message": "Declare more functions that do not need buffer copying\n\n`psa_random_reseed()` is privileged. Hash, MAC and XOF are low-risk\nper https://github.com/Mbed-TLS/TF-PSA-Crypto/issues/795 .\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "9ffe13506d145203e4304b9d3a6d6ae4e12741e2",
      "tree": "8474495849d62ad2dfdfa2312fb96d1133eb0867",
      "parents": [
        "a3079552234917a9831dd70693983af5e62c70de"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Thu May 28 15:07:09 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Thu Jul 30 13:42:28 2026 +0200"
      },
      "message": "Use regex to classify functions that do not need buffer copying\n\nNo behavior change.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "79fd85d1e8b055b93dbb796d181c073b5973d628",
      "tree": "b5256a32c9430a2ad768e2022f5d22578bf63afe",
      "parents": [
        "7268f9e92a8042832ed47f694a6c5fda1141d8e9"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Jul 28 19:50:12 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Jul 28 19:50:12 2026 +0200"
      },
      "message": "Clean up how private key formats are specified to DriverGenerator\n\nInstead of having `gen_all()` change the object state, have the constructor\nset the object field as desired. This doesn\u0027t change the runtime behavior\nsince we\u0027re only running `gen_all()` once after constructing the object,\nand nothing else. But do clean thing up, to avoid any surprises later.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "7268f9e92a8042832ed47f694a6c5fda1141d8e9",
      "tree": "565570345db876cef291595504037de2c0b53c21",
      "parents": [
        "836f4557bb92fc0d5c7b3dd88a66488b87980267"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Jul 28 19:48:39 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Jul 28 19:48:39 2026 +0200"
      },
      "message": "Fix test case descriptions with \"from seed key#{i} (joined)\"\n\nMake describe_private_key_formats() more flexible. Arrange to keep the\n\"from seed\" description format in test_suite_dispatch_transparent.dilithium_py\nto avoid a complaint from check_committed_generated_files.py.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "836f4557bb92fc0d5c7b3dd88a66488b87980267",
      "tree": "826542e337f6bfee07ac57095c4727b6a5c2a439",
      "parents": [
        "98fc1f179b6069ecd05eb99ec71d2ec53cf2becb"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Jul 22 09:06:59 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Jul 22 09:06:59 2026 +0200"
      },
      "message": "Also support multiple key formats for export_public_key tests\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "98fc1f179b6069ecd05eb99ec71d2ec53cf2becb",
      "tree": "6d89da1e7a4e5f56d3008b5f5823bbe838622c31",
      "parents": [
        "73b5c8ee6ce673f6b7853a94e0dfc37d7b4aafaf"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Jul 08 12:51:27 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Jul 08 18:26:05 2026 +0200"
      },
      "message": "Support multiple private key formats in DriverGenerator\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "73b5c8ee6ce673f6b7853a94e0dfc37d7b4aafaf",
      "tree": "14b5b61b333f0a18709d40841889d400af3c0f9e",
      "parents": [
        "3a975736b876c24baaaf84b15947f4a39c6e2809"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Jul 08 12:34:24 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Jul 08 18:26:05 2026 +0200"
      },
      "message": "Support multiple private key formats in generator classes\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "3a975736b876c24baaaf84b15947f4a39c6e2809",
      "tree": "b75961ee8b141b228a7408f9af2c027eb8753b99",
      "parents": [
        "a3079552234917a9831dd70693983af5e62c70de"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Mon Jun 22 17:05:47 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Jul 08 18:26:05 2026 +0200"
      },
      "message": "Ground support for multiple key formats\n\nPrepare to support 3 different private key representations: seed only,\nstandard expanded private key format, or joined (seed + expanded).\n\nThis commit only defines new auxiliary functions. Subsequent commits will\nuse these functions to simplify the code and support tuning the test data\nfor different formats.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "a3079552234917a9831dd70693983af5e62c70de",
      "tree": "d10e7e06e4caf350f138921fb7fa0e43447e23f5",
      "parents": [
        "68d1ffec3ae1747a413b79def1b0068336a8784d",
        "647db42ee72e41cb9b864dd4807b52d8694aa65e"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "gilles.peskine@arm.com",
        "time": "Tue Jul 07 22:04:12 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 22:04:12 2026 +0200"
      },
      "message": "Merge pull request #311 from Mbed-TLS/framework_mergeback\n\nMbedTLS 4.2.0 \u0026 TF-PSA-Crypto 1.2.0 Framework mergeback"
    },
    {
      "commit": "647db42ee72e41cb9b864dd4807b52d8694aa65e",
      "tree": "d10e7e06e4caf350f138921fb7fa0e43447e23f5",
      "parents": [
        "68d1ffec3ae1747a413b79def1b0068336a8784d",
        "dde0c4a0e448a0552f18817dcea633bb851fd288"
      ],
      "author": {
        "name": "Minos Galanakis",
        "email": "minos.galanakis@arm.com",
        "time": "Tue Jul 07 16:36:37 2026 +0100"
      },
      "committer": {
        "name": "Minos Galanakis",
        "email": "minos.galanakis@arm.com",
        "time": "Tue Jul 07 16:36:37 2026 +0100"
      },
      "message": "Merge tag \u0027mbedtls-4.2.0_tf-psa-crypto-1.2.0\u0027 into framework_mergeback\n\nSigned-off-by: Minos Galanakis \u003cminos.galanakis@arm.com\u003e\n"
    },
    {
      "commit": "68d1ffec3ae1747a413b79def1b0068336a8784d",
      "tree": "bd9e95b59d79f5ec545d5a5cd3d545c568e9b97a",
      "parents": [
        "7f83f1f8b0f39d022c2ff466702dc943e644c269",
        "ab3cd5216fad3aa27882f951c21b9d88cb93788f"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "gilles.peskine@arm.com",
        "time": "Fri Jul 03 08:40:02 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 08:40:02 2026 +0200"
      },
      "message": "Merge pull request #310 from gilles-peskine-arm/renew_cert_20281231\n\nRenew test certificates expiring in 2027"
    },
    {
      "commit": "ab3cd5216fad3aa27882f951c21b9d88cb93788f",
      "tree": "15a82f37547dda57fe63db7dc9d27f31dc44253e",
      "parents": [
        "709a794a34387fbf210f175db93bb5b001ff6a26"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Thu Jul 02 19:34:55 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Thu Jul 02 19:34:55 2026 +0200"
      },
      "message": "Renew dir-maxpath certs\n\nNow for 4000 years instead of only 10 years.\n\nI just ran the whole script, which generated fresh keys.\n\n```\ncd data_files/dir-maxpath\n./long.sh\n```\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "709a794a34387fbf210f175db93bb5b001ff6a26",
      "tree": "c6fae38c7fcd4fd7b624c8ca0d52cb90d8e06c69",
      "parents": [
        "e79f4fdd4877e79a92e6b1e5965132ff0c5cc729"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Thu Jul 02 19:34:17 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Thu Jul 02 19:34:17 2026 +0200"
      },
      "message": "Renew dir-maxpath certs every 4000 years\n\nThe original 10 years have run out.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "7f83f1f8b0f39d022c2ff466702dc943e644c269",
      "tree": "ff1bb69167a71b643774498e1f070a5992075ab7",
      "parents": [
        "e79f4fdd4877e79a92e6b1e5965132ff0c5cc729",
        "178e089683bf42097ac6d27522820d07483bc6bd"
      ],
      "author": {
        "name": "David Horstmann",
        "email": "david.horstmann@arm.com",
        "time": "Tue Jun 30 10:39:50 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 10:39:50 2026 +0100"
      },
      "message": "Merge pull request #301 from OldManYellsAtCloud/main\n\nc_build_helper: Split cc command line"
    },
    {
      "commit": "dde0c4a0e448a0552f18817dcea633bb851fd288",
      "tree": "50e13842aeec74b4164df86fdfcfe4827aff6b13",
      "parents": [
        "66161f50e0b5dad315b5b6815450cdfa7b15bfc4",
        "5e6adaf3a4732ba4689a25440226a63adfde4738"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "gilles.peskine@arm.com",
        "time": "Wed Jun 24 12:35:12 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 12:35:12 2026 +0200"
      },
      "message": "Merge pull request #18 from valeriosetti/issue1585\n\nscripts: add generate_ssl_session_reset_check.py"
    },
    {
      "commit": "5e6adaf3a4732ba4689a25440226a63adfde4738",
      "tree": "50e13842aeec74b4164df86fdfcfe4827aff6b13",
      "parents": [
        "808f894cbffeb1772de72bad0c118cfcdeb847d0"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 23 23:23:18 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: use sets in _check_special_fields and _check_rules_struct_fields_matching\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "808f894cbffeb1772de72bad0c118cfcdeb847d0",
      "tree": "0714c401d5ff18430c13e8e939186e8d89cec6bb",
      "parents": [
        "81f943b4559987de46edebd1e44016a8cf0cf5e4"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 23 23:07:59 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: resolve pylint issues\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "81f943b4559987de46edebd1e44016a8cf0cf5e4",
      "tree": "d9ea79114189a9fef2edf237da8d46ec0f3abe97",
      "parents": [
        "fb70ecde4e10ac5e64cbef3f79aa37e0f465499f"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 23 15:44:32 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: fix preprocessor directive parsing\n\nNow all various formats are supported.\nTested on the \u0027conf\u0027 field with the following types of guards:\n\n struct mbedtls_ssl_context {\n #if (defined(AAA) \u0026\u0026 \\\n      defined(BBB))\n #if (defined(CCC) \u0026\u0026 \\\n      defined(DDD))\n #if defined(EEE) \u0026\u0026 \\\n     defined(FFF)\n #if defined(GGG) \u0026\u0026  defined(HHH) \\\n     defined(III)\n     const mbedtls_ssl_config *MBEDTLS_PRIVATE(conf); /*!\u003c configuration information          */\n #endif\n #endif\n #endif\n #endif\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "fb70ecde4e10ac5e64cbef3f79aa37e0f465499f",
      "tree": "b1b318ad432c2cdf940568908e8bacdb4e6a889e",
      "parents": [
        "0f8b282730dd76d1f54e12f42bbcd894ed1a00ae"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 23 15:17:21 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: fix check for special fields in _get_element_type\n\nThe previous check was completely wrong since it was comparing objects\nof different types. The only things that need to be checked here is that\n\u0027name\u0027 appears in the FieldsInfo.special dictionary.\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "0f8b282730dd76d1f54e12f42bbcd894ed1a00ae",
      "tree": "a5bd908fef3194eec54977961eecc85f76985018",
      "parents": [
        "d3f1a0332692481560b17771afb9ff55263afc2a"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 23 15:05:13 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: pass out only to write_check_function\n\nDo not pass it to SSLContextStruct init function and don\u0027t store it in\nthat class.\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "d3f1a0332692481560b17771afb9ff55263afc2a",
      "tree": "ede518693dcdce44d0722bf9857fc410781c44ae",
      "parents": [
        "1f94e7e30a17967c1bb8eb9f329030daf9feb512"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 23 14:58:48 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: alignment check between rules definition and C struct fields\n\nEnsure that:\n- each field defined in the C structure has a rule\n- each rule defined in FieldsInfo.rules has a corresponding C structure field\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "1f94e7e30a17967c1bb8eb9f329030daf9feb512",
      "tree": "414e829e4f3d7c2f15c1076691fdbf40b2b4e783",
      "parents": [
        "627e24b10601f6235a54f0a1e703da679d385836"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 23 11:19:01 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: return exception if parsing of preprocessor directive fails\n\nIf next(lines) return StopIteration while processing a preprocessor\ndirective then that\u0027s an expected failure that should be reported to\nthe user.\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "627e24b10601f6235a54f0a1e703da679d385836",
      "tree": "49012514d21b8241f76202500f63e4048e3dc508",
      "parents": [
        "0c09851b861c3e9a68bbb58176a4ebc1bdbede17"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 23 10:57:03 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: fix check for named structures when field is kept\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "0c09851b861c3e9a68bbb58176a4ebc1bdbede17",
      "tree": "e08146a6816de1409bb2ccf60bc7a0a1228b2795",
      "parents": [
        "7b023c2fd21d84402f0dfe6b92023bb076e2c146"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 23 10:49:14 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: enforce all the fields to have an explicit reset behavior\n\nDo not assume RESET behavior by default. Each fields must have an\nexplicit reset rule associated in FieldsInfo.\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "7b023c2fd21d84402f0dfe6b92023bb076e2c146",
      "tree": "b7aa2224dc916e0047c42e7c86459aaead850f3b",
      "parents": [
        "dce56d9d2596db032911f6528f05dd34b2bb8d93"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 23 10:38:14 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: return exception in case of unhandled behavior\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "dce56d9d2596db032911f6528f05dd34b2bb8d93",
      "tree": "2d1d318882d438487e2319ea6509d718e25f952f",
      "parents": [
        "d2bb7352d9334df8cc2c1368212100fd063e2c5e"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 23 10:27:20 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: add check function for special rules\n\nEnsure that all the fields in FieldsInfo.rules which are given a SPECIAL\nbehavior have the corresponding entry in FieldsInfo.special, and\nviceversa.\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "d2bb7352d9334df8cc2c1368212100fd063e2c5e",
      "tree": "0fc691b68dd40f2414b1ab588d7b79a8c50e0fcd",
      "parents": [
        "959d9e89666045aa5769fab2299fad226c1066dc"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 23 09:40:11 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: simplify search for arrays\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "959d9e89666045aa5769fab2299fad226c1066dc",
      "tree": "6dded1a481229dd2e4b1b197c68060baf4db5ad4",
      "parents": [
        "203de77d2b02185eb5adce9b0cddbe7ad3f5e267"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 23 09:38:15 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: simplify look-up in special fields dictionary\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "203de77d2b02185eb5adce9b0cddbe7ad3f5e267",
      "tree": "5cfc406e3eed0ee5313fbc6ccf05ad1831486acb",
      "parents": [
        "f3ece31c7b2b3ff03c4d804f51429202908611c5"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 23 09:35:03 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: make named_structures a FrozenSet[str]\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "f3ece31c7b2b3ff03c4d804f51429202908611c5",
      "tree": "b86aa410cdc03572de720073b0c0f2186fa87380",
      "parents": [
        "16349fe394399cec10e54fe9a85df9152a2303e8"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 23 09:31:50 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: use TEST_EQUAL for scalars\n\nKeep TEST_ASSERT() for pointers, but switch to TEST_EQUAL for scalars.\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "16349fe394399cec10e54fe9a85df9152a2303e8",
      "tree": "8565c3dc8ad78a53bb0902d626d7ae8b068a88c0",
      "parents": [
        "718ac30fd393f14fb2ad6d024f459da68f1a5172"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Fri Jun 19 11:04:03 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: address pylint complains\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "718ac30fd393f14fb2ad6d024f459da68f1a5172",
      "tree": "d43354c36571155351deed5ef3500bce592cc902",
      "parents": [
        "22f164bada09a2da38f2b2b552b9e5f2249348a9"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Thu Jun 18 18:09:01 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: remove shebang line\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "22f164bada09a2da38f2b2b552b9e5f2249348a9",
      "tree": "de1edb11e9071d997387991330afb65954785003",
      "parents": [
        "4fd29e6dd592aadf5e462425bdd8f70037066690"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 17 15:11:43 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: use const pointers for arguments in generated function\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "4fd29e6dd592aadf5e462425bdd8f70037066690",
      "tree": "9a1b7dc446b3a1539c27acf251eb600bcfdc5726",
      "parents": [
        "0a8cc3eead89ed8b37dd697273c8d9eacf20b7cf"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 17 14:37:58 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: minor improvements\n\n- Rename FieldsBehavior to FieldsInfo\n- Move named_structure to FieldsInfo\n\nAdjust the script as need for this change.\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "0a8cc3eead89ed8b37dd697273c8d9eacf20b7cf",
      "tree": "b5918429c0c9cc4d1b3860e7ee03fcebf7176917",
      "parents": [
        "69ec61f1e895bf2b0e23735e6063d2db0e637ab0"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 17 14:29:39 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: change class logic\n\nInstead of using classes to differentiate between elements type inside\nthe structure (scalar, pointer, etc) use classes to differentiate the\ntype of the check (keep, reset, etc).\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "69ec61f1e895bf2b0e23735e6063d2db0e637ab0",
      "tree": "b7cad14376e082f7009c7d1c2fa7d103f8dc01ee",
      "parents": [
        "6db5390f23424d608c33363583bc94f5c85992b2"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 17 12:05:42 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: improve ssl_session_reset_check\n\nRemove FieldsInfo and introduce:\n- FieldsBehavior for the reset behaviors\n- NamedStructures type for the named structures\nAdjust classes for the above changes.\n\nSimplify CField removing if/elif in the __init__ function. Just use\nwhat has been put into \u0027self.reset_behavior\u0027.\n\nCField.check_value now returns a List[str]. This is useful in case of\nspecial commands because some of them can be multiple lines.\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "6db5390f23424d608c33363583bc94f5c85992b2",
      "tree": "ceaecef6a9b2bbe38bf5f7b082d1c60abdb56a6c",
      "parents": [
        "23c92d80d7108d694b5c25ebde96d56ff8962a06"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 17 09:26:04 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: adjust regex for empty line\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "23c92d80d7108d694b5c25ebde96d56ff8962a06",
      "tree": "e245583f8dac1b25308aae1249c3ac7b293958c9",
      "parents": [
        "72d8c79e1d49620cd2d99e6ad81f46fd1980b613"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 16 18:10:09 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scrits: ssl_session_reset_check: move script limitations to ssl.h\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "72d8c79e1d49620cd2d99e6ad81f46fd1980b613",
      "tree": "2703e2589c2cec3cc564194fd4a9029b3a4e00ac",
      "parents": [
        "02076a99e9983c3273514aea21ac19259069e3b7"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 16 17:56:08 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: use TEST_ASSERT instead of TEST_EQUAL\n\nTEST_EQUAL works fine on 64 bits platforms, but it has issues on 32 bits\nones because it tries to cast 32 bits pointers to \"unsigned long long\"\nwhich is 64 bits and the compiler complains. Therefore switch to\nTEST_ASSERT that doesn\u0027t suffer from the same problem.\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "02076a99e9983c3273514aea21ac19259069e3b7",
      "tree": "609e16214cca737de35ff10acdb113f9bd8524bb",
      "parents": [
        "b9d98cc78bacfb356a778c49515c3287a8a62662"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 16 13:48:57 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: ssl_session_reset_check: use FieldsInfo instance from main branch\n\nInstead of extending the class in the mbedtls script, instantiate the\nframework class there and only extend the fields. Then pass the class\nto framework main() and use this instance there for computations.\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "b9d98cc78bacfb356a778c49515c3287a8a62662",
      "tree": "d1787e015fe66c59fba84d0bf998340333fbb82e",
      "parents": [
        "84174d094e58d24849d8ef810df09f3bc03b02b5"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 16 13:28:07 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: rename generate_ssl_session_reset_check.py\n\nThe script cannot have the same name as the one used in Mbed TLS otherwise\npylint will complain. Rename this one to \u0027ssl_session_reset_check.py\u0027.\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "84174d094e58d24849d8ef810df09f3bc03b02b5",
      "tree": "836ff1df871e7afb2d9dea24ad1e70470ff2680c",
      "parents": [
        "79028f4de80800b36dc81fe987e1e4a3e202ecd3"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Tue Jun 16 13:15:03 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: fix pylint complains in generate_ssl_session_reset_check.py\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "79028f4de80800b36dc81fe987e1e4a3e202ecd3",
      "tree": "e080de7f8e76257ea7d8392f73711c6653119aa5",
      "parents": [
        "66161f50e0b5dad315b5b6815450cdfa7b15bfc4"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Mon Jun 15 16:23:49 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Wed Jun 24 09:00:45 2026 +0200"
      },
      "message": "scripts: add generate_ssl_session_reset_check.py\n\nThis is the branch indipendent part of a script that is used in Mbed TLS\nto automatically generate the check code that verifies if\n\u0027mbedtls_session_reset()\u0027 function properly reset the \u0027mbedtls_ssl_context\u0027\nstructure.\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "66161f50e0b5dad315b5b6815450cdfa7b15bfc4",
      "tree": "8131c1ac73e90bf46617cb2bd4fcc5f5d6f50fb5",
      "parents": [
        "d6dec17adfb5bf283c6a7a5bb6c451ecdc0b8201",
        "7058c8d602806fcc4bd430256322ba0e05263728"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "gilles.peskine@arm.com",
        "time": "Mon Jun 22 17:12:36 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 17:12:36 2026 +0200"
      },
      "message": "Merge pull request #19 from gilles-peskine-arm/merge-public-20260622\n\nMerge public into restricted"
    },
    {
      "commit": "7058c8d602806fcc4bd430256322ba0e05263728",
      "tree": "8131c1ac73e90bf46617cb2bd4fcc5f5d6f50fb5",
      "parents": [
        "d6dec17adfb5bf283c6a7a5bb6c451ecdc0b8201",
        "e79f4fdd4877e79a92e6b1e5965132ff0c5cc729"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Mon Jun 22 12:22:11 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Mon Jun 22 12:22:11 2026 +0200"
      },
      "message": "Merge remote-tracking branch \u0027main\u0027 into main-restricted\n"
    },
    {
      "commit": "d6dec17adfb5bf283c6a7a5bb6c451ecdc0b8201",
      "tree": "b85a132fdfc51161b582208be8fabeb1b369d1e3",
      "parents": [
        "e0f6275eff2e45e295fdd6b6877de4cbdaddae83",
        "c550de0d99e7221d5fcafe40622cc1883ba8422e"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "gilles.peskine@arm.com",
        "time": "Mon Jun 22 10:44:29 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 10:44:29 2026 +0200"
      },
      "message": "Merge pull request #17 from valeriosetti/issue1598\n\nAdd PKCS7 files using MD5 and RIPEMD160"
    },
    {
      "commit": "c550de0d99e7221d5fcafe40622cc1883ba8422e",
      "tree": "b85a132fdfc51161b582208be8fabeb1b369d1e3",
      "parents": [
        "4f3755f05de6f771b19d7b8c455330eae9a2c52e"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Thu Jun 11 17:13:59 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Thu Jun 11 17:13:59 2026 +0200"
      },
      "message": "data_files: pkcs7: add PKCS7 files using MD5 and RIPEMD160\n\nAdjust the Makefile accordingly.\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "4f3755f05de6f771b19d7b8c455330eae9a2c52e",
      "tree": "4a6941986a6d02c1d3f125cd63f88916ac5455f1",
      "parents": [
        "e0f6275eff2e45e295fdd6b6877de4cbdaddae83"
      ],
      "author": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Thu Jun 11 16:58:48 2026 +0200"
      },
      "committer": {
        "name": "Valerio Setti",
        "email": "vsetti@baylibre.com",
        "time": "Thu Jun 11 16:58:48 2026 +0200"
      },
      "message": "data_files: makefile: remove duplicated \"-out\" parameter from PKCS7 generation\n\nSigned-off-by: Valerio Setti \u003cvsetti@baylibre.com\u003e\n"
    },
    {
      "commit": "e79f4fdd4877e79a92e6b1e5965132ff0c5cc729",
      "tree": "be655e4070612b2078af3cc557300b146c9a76ca",
      "parents": [
        "e92a81996656d82941a9afce843453c57e1d51f5",
        "88cfd0cf476935cd677f6b30649aaea8d7b187a7"
      ],
      "author": {
        "name": "Bence Szépkúti",
        "email": "bence.szepkuti@arm.com",
        "time": "Wed Jun 03 15:07:48 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 15:07:48 2026 +0200"
      },
      "message": "Merge pull request #300 from gilles-peskine-arm/mldsa-sign-multipart-dispatch-framework\n\nGenerate multipart ML-DSA tests"
    },
    {
      "commit": "e0f6275eff2e45e295fdd6b6877de4cbdaddae83",
      "tree": "6bdf283f0f99b24250f112aa2788ed65689b593c",
      "parents": [
        "e92a81996656d82941a9afce843453c57e1d51f5",
        "5b535a091b919dfe696485f9ce2c188c1f426438"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "gilles.peskine@arm.com",
        "time": "Tue May 26 20:44:43 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 20:44:43 2026 +0200"
      },
      "message": "Merge pull request #16 from gilles-peskine-arm/basic-constaints-sequence-check-framework\n\nTest for CA bit forgery through invalid basicConstraints"
    },
    {
      "commit": "5b535a091b919dfe696485f9ce2c188c1f426438",
      "tree": "6bdf283f0f99b24250f112aa2788ed65689b593c",
      "parents": [
        "bc9d2191299314e87fb1d2837fee3e5cf08fd886"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue May 12 13:16:26 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue May 12 13:16:26 2026 +0200"
      },
      "message": "Add test certificate with basicConstraints containing only an INTEGER\n\nThe basicConstraints extension contains only an INTEGER. According to\nRFC 5280, this should be cA\u003dFALSE and a pathLenConstraint value which is\neffectively ignored. But Mbed TLS parses it as cA\u003dTRUE if the integer value\nis nonzero.\n\nThis certificate is syntactically valid, but RFC 5280 forbids CAs from\nemitting it. Compliant X.509 parsers treat it as cA\u003dFALSE.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "bc9d2191299314e87fb1d2837fee3e5cf08fd886",
      "tree": "ceb399c11f2c1b0a2fdb76e3a3b5083e504e0fed",
      "parents": [
        "303ef6a631ecf0735a9b33c1ca6fc444d7d22833"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Mon May 11 11:14:52 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Mon May 11 11:14:52 2026 +0200"
      },
      "message": "Fix off-by-one error in sanity check\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "303ef6a631ecf0735a9b33c1ca6fc444d7d22833",
      "tree": "78f26d6f3a7bdf992c3d4868b0fae9640df69be2",
      "parents": [
        "1090c7836330a030185d4131b8541b042b50e901"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Mon May 11 11:14:04 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Mon May 11 11:14:27 2026 +0200"
      },
      "message": "Use the correct way of registering targets\n\nFix some new targets missing from list and clean.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "1090c7836330a030185d4131b8541b042b50e901",
      "tree": "88c937304286775ac70c852ac5ffa57afea4b351",
      "parents": [
        "8a41468e95010d9d5bcf8d23a5acaab272777aa7"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Thu May 07 18:37:04 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Fri May 08 18:15:03 2026 +0200"
      },
      "message": "Add test certificate that overflows basicConstraints\n\nThis certificate is marlformed, but most implementations parse it as an\nempty basicConstraints (thus not a CA), whereas current Mbed TLS parses it\nas having basicConstraints containing CA:TRUE.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "8a41468e95010d9d5bcf8d23a5acaab272777aa7",
      "tree": "fc397a6819b8054ca4fce36c5786f1adc51bf7a0",
      "parents": [
        "b988582cc18c4b0b7615e3fba376acf98e337661"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Thu May 07 18:20:39 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Thu May 07 21:16:59 2026 +0200"
      },
      "message": "Add CA:TRUE version of server5-selfsigned.crt\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "b988582cc18c4b0b7615e3fba376acf98e337661",
      "tree": "209496072d19abdc3d0d208db60719b45a7d9fea",
      "parents": [
        "e92a81996656d82941a9afce843453c57e1d51f5"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Fri Apr 17 23:46:19 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Thu May 07 21:16:59 2026 +0200"
      },
      "message": "Add DER version of server5-selfsigned.crt\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "e92a81996656d82941a9afce843453c57e1d51f5",
      "tree": "ac590194f7453552c88152664bb092cfe2b53aea",
      "parents": [
        "c6610dde67ffd2a3a81cc204a73572b9c31a5775",
        "40e07ca2d8802fe597f9f3a169e4d1a17c0f046f"
      ],
      "author": {
        "name": "Manuel Pégourié-Gonnard",
        "email": "manuel.pegourie-gonnard@arm.com",
        "time": "Thu May 07 09:07:46 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 07 09:07:46 2026 +0200"
      },
      "message": "Merge pull request #303 from bjwtaylor/broken-build\n\nRemove unused import"
    },
    {
      "commit": "40e07ca2d8802fe597f9f3a169e4d1a17c0f046f",
      "tree": "ac590194f7453552c88152664bb092cfe2b53aea",
      "parents": [
        "c6610dde67ffd2a3a81cc204a73572b9c31a5775"
      ],
      "author": {
        "name": "Ben Taylor",
        "email": "ben.taylor@linaro.org",
        "time": "Wed May 06 11:51:47 2026 +0100"
      },
      "committer": {
        "name": "Ben Taylor",
        "email": "ben.taylor@linaro.org",
        "time": "Wed May 06 11:52:28 2026 +0100"
      },
      "message": "Remove unused import\n\nSigned-off-by: Ben Taylor \u003cben.taylor@linaro.org\u003e\n"
    },
    {
      "commit": "88cfd0cf476935cd677f6b30649aaea8d7b187a7",
      "tree": "46c20403f31d1d992f6c967a2f7197061ce1a2f3",
      "parents": [
        "ffc707d4f6a8ecd0974edf886303904b811378d2"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Thu Apr 23 15:43:05 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Thu Apr 23 15:43:05 2026 +0200"
      },
      "message": "Improve the construction of inputs to multipart APIs\n\nFix a bug whereby the chunks did not actually have the desired lengths.\n\nMake the message content depend only on its length, and not how it is split\ninto chunks. This way, it\u0027ll be easier to notice and analyze bugs that cause\ndifferent outputs for different ways to split the input.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "178e089683bf42097ac6d27522820d07483bc6bd",
      "tree": "6144e7deb3171fb88e555fd89fb4ce762657da37",
      "parents": [
        "c6610dde67ffd2a3a81cc204a73572b9c31a5775"
      ],
      "author": {
        "name": "Gyorgy Sarvari",
        "email": "skandigraun@gmail.com",
        "time": "Thu Apr 23 08:54:02 2026 +0200"
      },
      "committer": {
        "name": "Gyorgy Sarvari",
        "email": "skandigraun@gmail.com",
        "time": "Thu Apr 23 08:54:02 2026 +0200"
      },
      "message": "c_build_helper: Split cc command line\n\nOptionally the CC/HOSTCC environment variable can hold the command to\ninvoke the C compiler, however this command can also contain extra\narguments, not only the binary name. In this particular case Python\nwas treating the whole value as a single binary name, and was trying\nto execute as such (e.g. \"cc -arg1 -arg2\" instead of \"cc\" and the arguments\nseparately), which results in failure.\n\nSplit the compiler command into its components to invoke it correctly.\n\nSigned-off-by: Gyorgy Sarvari \u003cskandigraun@gmail.com\u003e\n"
    },
    {
      "commit": "ffc707d4f6a8ecd0974edf886303904b811378d2",
      "tree": "9edf4d76ed7377f13e27352e3885248bcb16d35d",
      "parents": [
        "f8d36c84ac486d7e504cc3d9a697dffcbb8f0aa1"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Mon Apr 20 15:17:25 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Mon Apr 20 15:18:41 2026 +0200"
      },
      "message": "Support generating multipart tests for driver and dispatch\n\nNot done by default for smooth transition in the consuming TF-PSA-Crypto\nbranch. It\u0027s up to the calling script `generate_mldsa_tests.py` to\nenable the new test cases.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "f8d36c84ac486d7e504cc3d9a697dffcbb8f0aa1",
      "tree": "215547523cd4f251929a50aea2b3a195dce6c1b3",
      "parents": [
        "c6610dde67ffd2a3a81cc204a73572b9c31a5775"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Mon Apr 20 10:13:21 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Mon Apr 20 10:13:21 2026 +0200"
      },
      "message": "Speed up generation by caching signatures\n\nWe tend to generate the signature of the same message under the same keys\nmultiple times for different APIs (sign/verify, driver/dispatch, ...).\nCaching results makes the script noticeably faster.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "37e13da3c2909e8333eb5a6d4665234d2c97ec7c",
      "tree": "2961c097d45bcda49047a2a5020045f2cc09ca72",
      "parents": [
        "ebd9ff1bdde9b3b4369616a0705d5427d2a654de"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Apr 08 16:51:22 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Apr 08 16:51:22 2026 +0200"
      },
      "message": "Fix --list-tasks parsing\n\nDon\u0027t require the file and task arguments when `--list-tasks` is passed.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "ebd9ff1bdde9b3b4369616a0705d5427d2a654de",
      "tree": "95ec6c52f1ef8cf050d13575a7fb2573542633d2",
      "parents": [
        "e42959c2afe2e584a7bbf8c0a9dbc83ddfd2cfa0"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Apr 08 16:50:57 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Apr 08 16:50:57 2026 +0200"
      },
      "message": "distinct_server_ephemeral: validation failure rather than exception if the key is not found\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "e42959c2afe2e584a7bbf8c0a9dbc83ddfd2cfa0",
      "tree": "566a3a41c2f7130f385b0f83bfb2b9cedcb75990",
      "parents": [
        "dd683324d8ab82b7aeb4a74d37e4f80b7ccde2fd"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Apr 08 16:50:34 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Apr 08 16:50:34 2026 +0200"
      },
      "message": "Document validation task return values\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "c6610dde67ffd2a3a81cc204a73572b9c31a5775",
      "tree": "aecf09d7942ea44f4738e269849d58eb39d4c8cc",
      "parents": [
        "b80f4d5f118fd56b8823ab32f8da3b340a95e78a",
        "1fba034eb76b5c2b268d7312a9714c791dec85c4"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "gilles.peskine@arm.com",
        "time": "Wed Apr 08 15:50:19 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 08 15:50:19 2026 +0200"
      },
      "message": "Merge pull request #282 from gilles-peskine-arm/mldsa-pqcp-driver-framework\n\nGenerate MLDSA test cases for the driver and dispatch layers"
    },
    {
      "commit": "b80f4d5f118fd56b8823ab32f8da3b340a95e78a",
      "tree": "ec8ad644adcc206a4a4f1772db79be16e0aff1a9",
      "parents": [
        "fc80671aea333f3b718de5de239e51527e9daac8",
        "8e06778bc8b26915da862258f99e262a4d9781a1"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "gilles.peskine@arm.com",
        "time": "Wed Apr 08 15:49:47 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 08 15:49:47 2026 +0200"
      },
      "message": "Merge pull request #292 from gilles-peskine-arm/analyze_outcomes-add_to_crypto-framework\n\nAdd outcome analysis to TF-PSA-Crypto: framework support"
    },
    {
      "commit": "8e06778bc8b26915da862258f99e262a4d9781a1",
      "tree": "34d144d1d2f614b9cfb8a5249afb6342582517e0",
      "parents": [
        "541289c9cbd0b8356526d7a149d0d8daac2c336d"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Apr 07 16:19:20 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Apr 07 16:19:20 2026 +0200"
      },
      "message": "Minor clarification\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "541289c9cbd0b8356526d7a149d0d8daac2c336d",
      "tree": "df8766bf38db7e441de5eb88f2fec7bb408957ab",
      "parents": [
        "80a0ea93f0215bcd9030734904b4b54fb8306f07"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Apr 07 16:19:09 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Apr 07 16:19:09 2026 +0200"
      },
      "message": "Copyediting\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "1fba034eb76b5c2b268d7312a9714c791dec85c4",
      "tree": "839ea51fabb77c47d1db59a02053a0ecafc224da",
      "parents": [
        "dcf227c5b9b0f54294bb649b772b5a0c91ac724f",
        "fc80671aea333f3b718de5de239e51527e9daac8"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Apr 07 14:28:56 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Apr 07 14:28:56 2026 +0200"
      },
      "message": "Merge remote-tracking branch \u0027main\u0027 into mldsa-pqcp-driver-framework\n"
    },
    {
      "commit": "80a0ea93f0215bcd9030734904b4b54fb8306f07",
      "tree": "76611dadd8d6ff537c782ce70e52c8bc055decd4",
      "parents": [
        "30d14d340e5aef310dcdb2a5bd6d5c13f46adef0"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Mon Apr 06 21:34:51 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Apr 07 10:49:35 2026 +0200"
      },
      "message": "Support extending a TestCaseSet\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "30d14d340e5aef310dcdb2a5bd6d5c13f46adef0",
      "tree": "e6ecccb91888b58f08232570cdaa25e115596ef9",
      "parents": [
        "1404bcbb8e03e7e6c41c4f2f7f30717aa7dc5713"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Sun Apr 05 20:29:58 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Apr 07 10:49:35 2026 +0200"
      },
      "message": "Separate ignored from uncovered tests in coverage analysis\n\nFor historical reasons, the \"ignored\" tests in outcome analysis are not\nactually ignored: they must not be covered, otherwise the script complains\nabout an unnecessary exception. In coverage analysis, rename this behavior\nto \"uncovered\", and have \"ignored\" tests be actually ignored. In driver test\nparity analysis, which is now only done in the 3.6 LTS branch, keep the\nhistorical behavior\n\nConsuming branches are currently defining `IGNORED_TESTS` with the\nexpectation that the test cases must be uncovered. They will need to rename\ntheir definition to `UNCOVERED_TESTS`.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "1404bcbb8e03e7e6c41c4f2f7f30717aa7dc5713",
      "tree": "46cd4a0f7e1e2c163f04397cbf025a253b4a5f44",
      "parents": [
        "812aada0a236fe11b8dc21a0b64d7ee2a4a17d6c"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Sun Apr 05 16:05:52 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Apr 07 10:49:35 2026 +0200"
      },
      "message": "Generalize ignore mechanism to TestCaseSet\n\nOutcome analysis tasks can have \"ignored\" tests. Both coverage and driver\ntasks actually don\u0027t ignore \"ignored\" tests: an \"ignored\" test must fail the\nverification if it wasn\u0027t ignored.\n\nIn preparation for distinguishing between truly ignored tests and tests that\nmust be uncovered, generalize the test case lookup mechanism.\n\nNo intended behavior change for `CoverageTask` and `DriverVSReference`.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "fc80671aea333f3b718de5de239e51527e9daac8",
      "tree": "9fe02af2ec8a8d4d46f047181f30615916db6006",
      "parents": [
        "dff9da04438d712f7647fd995bc90fadd0c0e2ce",
        "19543788a863e004fb746879ac77cd2fb4c76c03"
      ],
      "author": {
        "name": "Manuel Pégourié-Gonnard",
        "email": "manuel.pegourie-gonnard@arm.com",
        "time": "Wed Apr 01 10:58:28 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 01 10:58:28 2026 +0200"
      },
      "message": "Merge pull request #290 from gilles-peskine-arm/github-pr-template-add-4.1-framework\n\nAdd TF-PSA-Crypto 1.1 and Mbed TLS 4.1 lines to the PR template"
    },
    {
      "commit": "dd683324d8ab82b7aeb4a74d37e4f80b7ccde2fd",
      "tree": "11e14d7fc75ae99994a83e50750230ae65f68c3b",
      "parents": [
        "f911af9fc190965e145b9e6a4704c67ca6b01742"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Jan 20 16:29:41 2026 +0100"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Apr 01 09:45:50 2026 +0200"
      },
      "message": "Fix spurious match of data in DUMP_CHUNK_RE\n\nIf the data from `MBEDTLS_SSL_DEBUG_BUF` that\u0027s listed in text form after\nthe hex digits starts with two bytes that happen to be hex digits, this\ncould be interpreted as an extra pair of hex digits. Fix this.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "f911af9fc190965e145b9e6a4704c67ca6b01742",
      "tree": "c7aa4cc45d39b9183803b387e8a19b691328ab13",
      "parents": [
        "b0c3668772d3bdcddec116f52224374d32af1cd1"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Jan 20 16:08:37 2026 +0100"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Apr 01 09:45:50 2026 +0200"
      },
      "message": "New validation: distinct_server_ephemeral, distinct_server_random\n\nWhen two clients connect to the same server, validate that they get distinct\nserver_random values and distinct ephemeral public keys.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "b0c3668772d3bdcddec116f52224374d32af1cd1",
      "tree": "41d0421dd6bf3a54901fb6108565f840a8aeae19",
      "parents": [
        "98c12749b21417ef6a21ce6cfb703bce0a9f4f76"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Jan 20 16:07:50 2026 +0100"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Apr 01 09:45:50 2026 +0200"
      },
      "message": "Also parse bignum value dumps\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "98c12749b21417ef6a21ce6cfb703bce0a9f4f76",
      "tree": "365b81b80be817517fd487dd5526cfe9dd495845",
      "parents": [
        "dff9da04438d712f7647fd995bc90fadd0c0e2ce"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Jan 20 14:09:30 2026 +0100"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Apr 01 09:45:50 2026 +0200"
      },
      "message": "New script to cross-validate SSL client and server logs\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "812aada0a236fe11b8dc21a0b64d7ee2a4a17d6c",
      "tree": "079689c0d4987fd5a0fa8ffcfe2e8888a20baaa0",
      "parents": [
        "dff9da04438d712f7647fd995bc90fadd0c0e2ce"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Thu Mar 26 14:28:56 2026 +0100"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 16:35:08 2026 +0200"
      },
      "message": "Move _has_word_re from Mbed TLS\u0027s analyze_outcomes.py\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "dcf227c5b9b0f54294bb649b772b5a0c91ac724f",
      "tree": "6cc803bc8311fe06f35632ba03fec8b841a2726e",
      "parents": [
        "4a58f90329e263df8c417ba0e047f27edd37b566"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 14:59:14 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 16:01:03 2026 +0200"
      },
      "message": "Generate MLDSA test cases for the driver dispatch layer\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "4a58f90329e263df8c417ba0e047f27edd37b566",
      "tree": "7d6fdedbff604a5421a2f9be55b07e7936d4b625",
      "parents": [
        "ab001120d6a1ef5246b2e87c3901634bc0ff37fa"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 14:58:51 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 16:01:03 2026 +0200"
      },
      "message": "Generate MLDSA test cases for the driver entry points\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "ab001120d6a1ef5246b2e87c3901634bc0ff37fa",
      "tree": "a5b208943b4a19216bead9c04412ecc2b038854e",
      "parents": [
        "6466dc62c31d382837de7d7d5d2e4201e86e24fb"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 14:38:34 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 16:01:03 2026 +0200"
      },
      "message": "Exclude maintainer scripts from Python checks\n\nMaintainer scripts may require a more recent Python than the version we\ncurrently use for Python checks (3.6).\n\nhttps://github.com/Mbed-TLS/mbedtls-framework/issues/293\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "6466dc62c31d382837de7d7d5d2e4201e86e24fb",
      "tree": "8068943e56f01c2cfef67991aa14de8b34394c24",
      "parents": [
        "85a47fc27763a765ad4040c885995b5cec095276"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 14:38:15 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 15:19:41 2026 +0200"
      },
      "message": "Make mbedtls_maintainer a Python package\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "85a47fc27763a765ad4040c885995b5cec095276",
      "tree": "ca8b0d8a6c097f65b529926068a6a42bc28e9180",
      "parents": [
        "a53c51425dc490e720cb6ec2f8990f49ae39d48b"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 13:57:11 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 15:19:41 2026 +0200"
      },
      "message": "mldsa_test_generator refactor: new methods gen_key_management, gen_all\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "a53c51425dc490e720cb6ec2f8990f49ae39d48b",
      "tree": "5708754d61bc2d60dd0ef7ae23b2e7f776d6371c",
      "parents": [
        "38d9d83ae7c406db51f88d21f4419dd4cc4ee404"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 13:50:36 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 15:19:41 2026 +0200"
      },
      "message": "mldsa_test_generator refactor: change function calls to method calls\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "38d9d83ae7c406db51f88d21f4419dd4cc4ee404",
      "tree": "e8882cf55e02cf5523cf65b0b1ea7f91efc81a67",
      "parents": [
        "31bae441f69cf79fa8276a1fdc431013cab408ea"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 13:41:42 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 15:19:41 2026 +0200"
      },
      "message": "mldsa_test_generator refactor: extend API class to Generator\n\nTurn functions that generate test cases into methods of the generator class.\nFunctions that used to take an API argument are now implemented in the\ngeneric class, and API-specific functions are now methods of the\ncorresponding API-specific concrete class.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "31bae441f69cf79fa8276a1fdc431013cab408ea",
      "tree": "429bf9bd6f7bda91e4b64f72459d40af231b0b91",
      "parents": [
        "72f178bdbd1457a5470acd3885d8c9fa81e39bc2"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 13:44:53 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 15:19:41 2026 +0200"
      },
      "message": "mldsa_test_generator refactor: preliminary rearrangement\n\nMove code around, to make subsequent diffs easier to review.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "72f178bdbd1457a5470acd3885d8c9fa81e39bc2",
      "tree": "d3f501bca1bc5a81501f92cd7e87a9d587062995",
      "parents": [
        "7f537471bd11966726fbe51a3d75e8b23d824ca1"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 13:21:45 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 15:19:41 2026 +0200"
      },
      "message": "Move most of generate_mldsa_tests.py into a module\n\nWe are moving the command line entry point to the consuming branch.\n\nThe move will be completed when the consuming branch no longer needs the\nscript to exist in the framework.\nhttps://github.com/Mbed-TLS/mbedtls-framework/issues/294\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "7f537471bd11966726fbe51a3d75e8b23d824ca1",
      "tree": "9bc3e86069c01bbe96a286d592ebd976a0ddf0e1",
      "parents": [
        "a0e5850d6112e29de8587612f6415b00bd129d35"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 13:15:44 2026 +0200"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 15:19:41 2026 +0200"
      },
      "message": "Clean up overly complicated typing in read_file_lines\n\nThe `read_file_lines` context manager supported either text or binary\nstreams, based on a parameter passed to the constructor. But the type\nannotation on the iterator claimed that all lines were text. The version of\nmypy that we use on the CI was happy with that, but modern versions are not.\n\nThe advantage of `read_file_lines` over built-in functions is better\ntracking of line numbers. We never took advantage of this in our code with\nbinary streams. Change the one place where `read_file_lines` was used with a\nbinary stream to use built-in functions instead, and specialize\n`read_file_lines` to text streams.\n\nThis fixes a legitimate complaint of modern mypy on `macro_collectory.py`.\n\nThere was no runtime bug: the behavior was correct, only the type\nannotations were wrong.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "a0e5850d6112e29de8587612f6415b00bd129d35",
      "tree": "05869a772b03f2c490660d23e061425d8b693268",
      "parents": [
        "c8672388d822df1c96dd9da70775b7698704649e"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Thu Mar 26 14:00:45 2026 +0100"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 15:19:41 2026 +0200"
      },
      "message": "Fix the Mbed TLS build when TF-PSA-Crypto only has a little MLDSA\n\nWhen building Mbed TLS with test drivers, \"psa_crypto_mldsa.h\" is not on the\ninclude path. Rather than get it on, which seems complicated and is not\ndesirable in the long term, arrange to do without this header. We just need\nto define the macro PSA_ALG_IS_ML_DSA, and its behavior is defined by the\nPSA Crypto API specification so pretty much set in stone.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "c8672388d822df1c96dd9da70775b7698704649e",
      "tree": "ffc74e1b7efc9765ca0ac0f5761e334578a21b75",
      "parents": [
        "e10d0ffc81b7b3da1604657dc2830991e469fd10"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Thu Mar 26 11:22:07 2026 +0100"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 15:19:41 2026 +0200"
      },
      "message": "Fix the build when TF-PSA-Crypto only has a little MLDSA\n\nWhen TF-PSA-Crypto has pure ML-DSA, we need to handle it in the test driver\nfor signatures. But we must not try to reference ML-DSA identifiers in\nTF-PSA-Crypto branches where they don\u0027t exist yet, even though the\ncompilation option already exists (which notably includes the TF-PSA-Crypto\n1.1.0 release).\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "e10d0ffc81b7b3da1604657dc2830991e469fd10",
      "tree": "e4e7068d16f5a9502812770deb4fa2ef3c66be81",
      "parents": [
        "d1a8b5b59697068f0cd419765ccd3a30cf885d4d"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Wed Mar 25 17:30:38 2026 +0100"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Tue Mar 31 15:19:41 2026 +0200"
      },
      "message": "Add passthrough for pure ML-DSA to the test driver\n\nWe don\u0027t support ML-DSA in libtestdriver1 yet, because it\u0027s a copy of the\n`builtin` driver but ML-DSA is provided by the `pqcp` driver. This means\nthat we can\u0027t test “driver-only” ML-DSA builds, but it should be possible to\nenable ML-DSA in a build that dispatches through the test driver. This is\ncurrently impossible because pure ML-DSA is not a sign-the-hash algorithm,\nbut the code in the test driver for signatures assumes that all signature\nalgorithms are sign-the-hash. Fix this in a minimal way by making the test\ndriver activate the fallback mechanism of driver dispatch when the algorithm\nis pure ML-DSA. (Don\u0027t do this for all algorithms that are not sign-the-hash,\nbecause in general, we do want the test driver to fail if it\u0027s given an\nalgorithm that it doesn\u0027t support.)\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "dff9da04438d712f7647fd995bc90fadd0c0e2ce",
      "tree": "b3302e98b7c3c6d68c9e8e83b8175bb2078f2bcc",
      "parents": [
        "3d57272bbc67fb576a7737155835d2db700cc469",
        "be3764a69f1819f19d9e0f81461e7bd171d157c9"
      ],
      "author": {
        "name": "Bence Szépkúti",
        "email": "bence.szepkuti@arm.com",
        "time": "Tue Mar 24 15:12:38 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 24 15:12:38 2026 +0100"
      },
      "message": "Merge pull request #13 from gilles-peskine-arm/fork-test-helper-valgrind\n\nFix fork test helper under Valgrind"
    },
    {
      "commit": "be3764a69f1819f19d9e0f81461e7bd171d157c9",
      "tree": "b3302e98b7c3c6d68c9e8e83b8175bb2078f2bcc",
      "parents": [
        "a5b6f6f778a6858ce3b633119c566800beb278eb"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Mon Mar 23 19:18:43 2026 +0100"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Mon Mar 23 19:24:18 2026 +0100"
      },
      "message": "Work around Valgrind hooking into _exit()\n\nWhen running tests that use mbedtls_test_fork_run_child() under Valgrind,\nbad things happen. Specifically:\n\n* Valgrind reports leaks in the child. Those leaks do exist, but they\u0027re\n  deliberate since we avoid cleaning up in the child (because we want to\n  do as little as possible in the child, and because cleanups such as\n  destroying PSA persistent keys would have undesirable effects outside\n  the child process).\n* Valgrind\u0027s overridden `_exit()` doesn\u0027t just perform checks, but also for\n  some reason it causes the file description on the .datax file to seek\n  backwards, causing tests to run again in a loop.\n\nAvoid this by calling `execve()` (via `execlp()`) rather than `_exit()` if\nit looks like the test is run under Valgrind. This is safe as long as\nValgrind isn\u0027t run with `--trace-children\u003dyes`.\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "a5b6f6f778a6858ce3b633119c566800beb278eb",
      "tree": "80d27e6fb30436ec078827eddb006981f52a50d7",
      "parents": [
        "3d57272bbc67fb576a7737155835d2db700cc469"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Mon Mar 23 18:48:19 2026 +0100"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Mon Mar 23 19:24:18 2026 +0100"
      },
      "message": "Explain why the child calls _exit() and not exit()\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    },
    {
      "commit": "19543788a863e004fb746879ac77cd2fb4c76c03",
      "tree": "72cfd4ba3377de52107dd62f2e5ff73bf6076cd2",
      "parents": [
        "d1a8b5b59697068f0cd419765ccd3a30cf885d4d"
      ],
      "author": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Thu Mar 19 15:30:18 2026 +0100"
      },
      "committer": {
        "name": "Gilles Peskine",
        "email": "Gilles.Peskine@arm.com",
        "time": "Thu Mar 19 18:09:07 2026 +0100"
      },
      "message": "Add TF-PSA-Crypto 1.1 and Mbed TLS 4.1 lines to the PR template\n\nSigned-off-by: Gilles Peskine \u003cGilles.Peskine@arm.com\u003e\n"
    }
  ],
  "next": "3d57272bbc67fb576a7737155835d2db700cc469"
}
