get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2206450/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2206450,
    "url": "http://patchwork.ozlabs.org/api/patches/2206450/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20260306181304.2426352-9-sjg@chromium.org/",
    "project": {
        "id": 18,
        "url": "http://patchwork.ozlabs.org/api/projects/18/?format=api",
        "name": "U-Boot",
        "link_name": "uboot",
        "list_id": "u-boot.lists.denx.de",
        "list_email": "u-boot@lists.denx.de",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260306181304.2426352-9-sjg@chromium.org>",
    "list_archive_url": null,
    "date": "2026-03-06T18:12:36",
    "name": "[v2,08/23] binman: test: Move security test files to test/security/",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "46b3a28eb48c37ee95a593686360e3a0dfa477a7",
    "submitter": {
        "id": 6170,
        "url": "http://patchwork.ozlabs.org/api/people/6170/?format=api",
        "name": "Simon Glass",
        "email": "sjg@chromium.org"
    },
    "delegate": {
        "id": 3184,
        "url": "http://patchwork.ozlabs.org/api/users/3184/?format=api",
        "username": "sjg",
        "first_name": "Simon",
        "last_name": "Glass",
        "email": "sjg@chromium.org"
    },
    "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20260306181304.2426352-9-sjg@chromium.org/mbox/",
    "series": [
        {
            "id": 494765,
            "url": "http://patchwork.ozlabs.org/api/series/494765/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=494765",
            "date": "2026-03-06T18:12:28",
            "name": "binman: test: Organise test files into subdirectories",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/494765/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2206450/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2206450/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<u-boot-bounces@lists.denx.de>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256\n header.s=google header.b=KXNSZZ3q;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=85.214.62.61; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)",
            "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=chromium.org",
            "phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de",
            "phobos.denx.de;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=chromium.org header.i=@chromium.org\n header.b=\"KXNSZZ3q\";\n\tdkim-atps=neutral",
            "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=chromium.org",
            "phobos.denx.de;\n spf=pass smtp.mailfrom=sjg@chromium.org"
        ],
        "Received": [
            "from phobos.denx.de (phobos.denx.de [85.214.62.61])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fSF1Z741Nz1xyN\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 07 Mar 2026 05:14:58 +1100 (AEDT)",
            "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 65FA483F9A;\n\tFri,  6 Mar 2026 19:13:53 +0100 (CET)",
            "by phobos.denx.de (Postfix, from userid 109)\n id 0810A83F9A; Fri,  6 Mar 2026 19:13:52 +0100 (CET)",
            "from mail-qv1-xf2c.google.com (mail-qv1-xf2c.google.com\n [IPv6:2607:f8b0:4864:20::f2c])\n (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 666218382A\n for <u-boot@lists.denx.de>; Fri,  6 Mar 2026 19:13:49 +0100 (CET)",
            "by mail-qv1-xf2c.google.com with SMTP id\n 6a1803df08f44-89a018cbbf8so69339246d6.0\n for <u-boot@lists.denx.de>; Fri, 06 Mar 2026 10:13:49 -0800 (PST)",
            "from chromium.org ([73.34.74.121]) by smtp.gmail.com with ESMTPSA id\n af79cd13be357-8cd6f5736c0sm155930885a.49.2026.03.06.10.13.45\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 06 Mar 2026 10:13:46 -0800 (PST)"
        ],
        "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de",
        "X-Spam-Level": "",
        "X-Spam-Status": "No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,\n DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,\n RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham\n autolearn_force=no version=3.4.2",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=chromium.org; s=google; t=1772820827; x=1773425627; darn=lists.denx.de;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=XzjmghLtSo2+U+82/ngXguNFhxciNZjSQiklCX94GjQ=;\n b=KXNSZZ3q4/76h6Dn/bNMvz6aqMF4lWiOvqIwWIRdzGUdTMy93cxcauzVLbowOpi8t9\n O1milILnVBWAiDj9V/a4sGcspPZs8e0kqrgPZg96lNr4KGfw6uNBmLh+ndQHf2811lCA\n 8PZKgmOlLcQKjKIANuLOAMkr2L78neTTbV16M=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1772820827; x=1773425627;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=XzjmghLtSo2+U+82/ngXguNFhxciNZjSQiklCX94GjQ=;\n b=ZzIIQ9rwsIaSt/H9/DCjTD2ns+267jG61qcpL6eSLAIy4Yq475KFsh5GHDU9qy8w1g\n wFg+XweMzL4Jy2toqAWNlM6rPsuLYKxq8vovFZH8BBWmfTnFHs0W8aOKsNtmbhiTCl0U\n GFsw6TsQSkg7ybHTORh53TC2GAj2bn01CyEsWj2BPmMmJae0szDSXAUVOtTQru9pKCli\n AO96hpd5I8ntPTaSKbRNoZs3yLhVoik/65H4qLHCQ6lkn7t2uyTdrUTZVvP3NDRTHaWs\n pS7RG4vONUZvc3dLbVTqvnWxaCEFXz1e144RXmx5024oAqGucjMGt/IRkx8+yNC3a6aP\n OzNg==",
        "X-Gm-Message-State": "AOJu0YwxAqRFZMpQm1xtUzsPbS8ffbp4SYxYiFkOoZ1OCExjQ+s46HLA\n FKXVwWG5ACr+6jVlTTjIXa1YDXD2YE2DWjE4yU6ZAzQfQcvGU8m6LKFXd4osfVmIkdK+KbATsbs\n eElU=",
        "X-Gm-Gg": "ATEYQzzqhIDVq/GKZQpOLXKi2rn/lg7rCzFyUtZ5Rtybqa9jnh0shpHRzdF0/MIOEMD\n I+Lcm4fHCR4tWl61qm/2kbZuydgdkRtTo228gbqKMVrMyZZVlZvtktzlE5UYnWM60SGV/1wDDrO\n PBNFY10c8Tk94Sdv3pceRWVHH9g0IpnCNfjmcwEjDacOqQQBLjns81bXa+E9UfezGhw+Rf63VqC\n nDmb8yW9pMYg/hmaeVZ/YPpunAV1PCrygcxN89jfjGxuz26+KftBE8EYpfdf6TcR+VnX2F6ikbZ\n Z6dEJuJ+7WbMFmVzNeY6ucXU73+PwD0aENlYpw+qsCp17Q2wSlls7Y6RkynlHoCbNUcROc15S52\n 1zuHX0OVlHbx27q/ffu/DOAF9b07pMQm1Ap/X/yXbtmdMOYhi7SSFjCIpWpiCTmomKasgBIMNxB\n EtmavFV+tssP0WC1KmfA==",
        "X-Received": "by 2002:a05:620a:2550:b0:8cb:3d7a:c002 with SMTP id\n af79cd13be357-8cd6dbd985dmr329981785a.13.1772820827470;\n Fri, 06 Mar 2026 10:13:47 -0800 (PST)",
        "From": "Simon Glass <sjg@chromium.org>",
        "To": "u-boot@lists.denx.de",
        "Cc": "Tom Rini <trini@konsulko.com>, Quentin Schulz <quentin.schulz@cherry.de>,\n Simon Glass <simon.glass@canonical.com>,\n Alper Nebi Yasak <alpernebiyasak@gmail.com>, Bryan Brattlof <bb@ti.com>,\n Michal Simek <michal.simek@amd.com>,\n Neha Malcom Francis <n-francis@ti.com>, Peng Fan <peng.fan@nxp.com>,\n Philippe Reynes <philippe.reynes@softathome.com>,\n Simon Glass <sjg@chromium.org>,\n Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>,\n Yannic Moog <y.moog@phytec.de>",
        "Subject": "[PATCH v2 08/23] binman: test: Move security test files to\n test/security/",
        "Date": "Fri,  6 Mar 2026 11:12:36 -0700",
        "Message-ID": "<20260306181304.2426352-9-sjg@chromium.org>",
        "X-Mailer": "git-send-email 2.43.0",
        "In-Reply-To": "<20260306181304.2426352-1-sjg@chromium.org>",
        "References": "<20260306181304.2426352-1-sjg@chromium.org>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "u-boot@lists.denx.de",
        "X-Mailman-Version": "2.1.39",
        "Precedence": "list",
        "List-Id": "U-Boot discussion <u-boot.lists.denx.de>",
        "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>",
        "List-Archive": "<https://lists.denx.de/pipermail/u-boot/>",
        "List-Post": "<mailto:u-boot@lists.denx.de>",
        "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>",
        "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>",
        "Errors-To": "u-boot-bounces@lists.denx.de",
        "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>",
        "X-Virus-Scanned": "clamav-milter 0.103.8 at phobos.denx.de",
        "X-Virus-Status": "Clean"
    },
    "content": "From: Simon Glass <simon.glass@canonical.com>\n\nMove about 20 test files for signing, encryption, hash, pre-load,\nx509, and Xilinx bootgen entries into a security/ subdirectory. Drop\nthe numeric prefixes and update all references.\n\nSigned-off-by: Simon Glass <simon.glass@canonical.com>\n---\n\n(no changes since v1)\n\n tools/binman/ftest.py                         | 52 +++++++++----------\n .../encrypted_invalid_iv_file.dts}            |  0\n .../encrypted_key_file.dts}                   |  0\n .../encrypted_key_source.dts}                 |  0\n .../encrypted_missing_key.dts}                |  0\n .../encrypted_no_algo.dts}                    |  0\n .../test/{090_hash.dts => security/hash.dts}  |  0\n .../hash_bad_algo.dts}                        |  0\n .../hash_no_algo.dts}                         |  0\n .../hash_section.dts}                         |  0\n .../key_name_hint_dir_spl_pubkey_dtb.dts}     |  0\n .../pre_load.dts}                             |  0\n .../pre_load_invalid_algo.dts}                |  0\n .../pre_load_invalid_key.dts}                 |  0\n .../pre_load_invalid_padding.dts}             |  0\n .../pre_load_invalid_sha.dts}                 |  0\n .../pre_load_pkcs.dts}                        |  0\n .../pre_load_pss.dts}                         |  0\n .../section_ignore_hash_signature.dts}        |  0\n .../sign_non_fit.dts}                         |  0\n .../spl_pubkey_dtb.dts}                       |  0\n .../x509_cert.dts}                            |  0\n .../xilinx_bootgen_sign.dts}                  |  0\n .../xilinx_bootgen_sign_enc.dts}              |  0\n 24 files changed, 26 insertions(+), 26 deletions(-)\n rename tools/binman/test/{302_encrypted_invalid_iv_file.dts => security/encrypted_invalid_iv_file.dts} (100%)\n rename tools/binman/test/{305_encrypted_key_file.dts => security/encrypted_key_file.dts} (100%)\n rename tools/binman/test/{304_encrypted_key_source.dts => security/encrypted_key_source.dts} (100%)\n rename tools/binman/test/{303_encrypted_missing_key.dts => security/encrypted_missing_key.dts} (100%)\n rename tools/binman/test/{301_encrypted_no_algo.dts => security/encrypted_no_algo.dts} (100%)\n rename tools/binman/test/{090_hash.dts => security/hash.dts} (100%)\n rename tools/binman/test/{092_hash_bad_algo.dts => security/hash_bad_algo.dts} (100%)\n rename tools/binman/test/{091_hash_no_algo.dts => security/hash_no_algo.dts} (100%)\n rename tools/binman/test/{099_hash_section.dts => security/hash_section.dts} (100%)\n rename tools/binman/test/{348_key_name_hint_dir_spl_pubkey_dtb.dts => security/key_name_hint_dir_spl_pubkey_dtb.dts} (100%)\n rename tools/binman/test/{230_pre_load.dts => security/pre_load.dts} (100%)\n rename tools/binman/test/{235_pre_load_invalid_algo.dts => security/pre_load_invalid_algo.dts} (100%)\n rename tools/binman/test/{236_pre_load_invalid_key.dts => security/pre_load_invalid_key.dts} (100%)\n rename tools/binman/test/{233_pre_load_invalid_padding.dts => security/pre_load_invalid_padding.dts} (100%)\n rename tools/binman/test/{234_pre_load_invalid_sha.dts => security/pre_load_invalid_sha.dts} (100%)\n rename tools/binman/test/{231_pre_load_pkcs.dts => security/pre_load_pkcs.dts} (100%)\n rename tools/binman/test/{232_pre_load_pss.dts => security/pre_load_pss.dts} (100%)\n rename tools/binman/test/{165_section_ignore_hash_signature.dts => security/section_ignore_hash_signature.dts} (100%)\n rename tools/binman/test/{281_sign_non_fit.dts => security/sign_non_fit.dts} (100%)\n rename tools/binman/test/{306_spl_pubkey_dtb.dts => security/spl_pubkey_dtb.dts} (100%)\n rename tools/binman/test/{279_x509_cert.dts => security/x509_cert.dts} (100%)\n rename tools/binman/test/{307_xilinx_bootgen_sign.dts => security/xilinx_bootgen_sign.dts} (100%)\n rename tools/binman/test/{308_xilinx_bootgen_sign_enc.dts => security/xilinx_bootgen_sign_enc.dts} (100%)",
    "diff": "diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py\nindex 612a1bdb8cb..9ceb85f2b28 100644\n--- a/tools/binman/ftest.py\n+++ b/tools/binman/ftest.py\n@@ -2261,7 +2261,7 @@ class TestFunctional(unittest.TestCase):\n \n     def testHash(self):\n         \"\"\"Test hashing of the contents of an entry\"\"\"\n-        _, _, _, out_dtb_fname = self._DoReadFileDtb('090_hash.dts',\n+        _, _, _, out_dtb_fname = self._DoReadFileDtb('security/hash.dts',\n                 use_real_dtb=True, update_dtb=True)\n         dtb = fdt.Fdt(out_dtb_fname)\n         dtb.Scan()\n@@ -2272,19 +2272,19 @@ class TestFunctional(unittest.TestCase):\n \n     def testHashNoAlgo(self):\n         with self.assertRaises(ValueError) as e:\n-            self._DoReadFileDtb('091_hash_no_algo.dts', update_dtb=True)\n+            self._DoReadFileDtb('security/hash_no_algo.dts', update_dtb=True)\n         self.assertIn(\"Node \\'/binman/u-boot\\': Missing \\'algo\\' property for \"\n                       'hash node', str(e.exception))\n \n     def testHashBadAlgo(self):\n         with self.assertRaises(ValueError) as e:\n-            self._DoReadFileDtb('092_hash_bad_algo.dts', update_dtb=True)\n+            self._DoReadFileDtb('security/hash_bad_algo.dts', update_dtb=True)\n         self.assertIn(\"Node '/binman/u-boot': Unknown hash algorithm 'invalid'\",\n                       str(e.exception))\n \n     def testHashSection(self):\n         \"\"\"Test hashing of the contents of an entry\"\"\"\n-        _, _, _, out_dtb_fname = self._DoReadFileDtb('099_hash_section.dts',\n+        _, _, _, out_dtb_fname = self._DoReadFileDtb('security/hash_section.dts',\n                 use_real_dtb=True, update_dtb=True)\n         dtb = fdt.Fdt(out_dtb_fname)\n         dtb.Scan()\n@@ -4166,7 +4166,7 @@ class TestFunctional(unittest.TestCase):\n \n     def testSectionIgnoreHashSignature(self):\n         \"\"\"Test that sections ignore hash, signature nodes for its data\"\"\"\n-        data = self._DoReadFile('165_section_ignore_hash_signature.dts')\n+        data = self._DoReadFile('security/section_ignore_hash_signature.dts')\n         expected = (U_BOOT_DATA + U_BOOT_DATA)\n         self.assertEqual(expected, data)\n \n@@ -5822,7 +5822,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n             'pre-load-key-path': os.path.join(self._binman_dir, 'test'),\n         }\n         data = self._DoReadFileDtb(\n-            '230_pre_load.dts', entry_args=entry_args,\n+            'security/pre_load.dts', entry_args=entry_args,\n             extra_indirs=[os.path.join(self._binman_dir, 'test')])[0]\n \n         image_fname = tools.get_output_filename('image.bin')\n@@ -5836,7 +5836,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n     def testPreLoadNoKey(self):\n         \"\"\"Test an image with a pre-load heade0r with missing key\"\"\"\n         with self.assertRaises(FileNotFoundError) as exc:\n-            self._DoReadFile('230_pre_load.dts')\n+            self._DoReadFile('security/pre_load.dts')\n         self.assertIn(\"No such file or directory: 'dev.key'\",\n                       str(exc.exception))\n \n@@ -5845,7 +5845,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         entry_args = {\n             'pre-load-key-path': os.path.join(self._binman_dir, 'test'),\n         }\n-        data = self._DoReadFileDtb('231_pre_load_pkcs.dts',\n+        data = self._DoReadFileDtb('security/pre_load_pkcs.dts',\n                                    entry_args=entry_args)[0]\n         self.assertEqual(PRE_LOAD_MAGIC, data[:len(PRE_LOAD_MAGIC)])\n         self.assertEqual(PRE_LOAD_VERSION, data[4:4 + len(PRE_LOAD_VERSION)])\n@@ -5856,7 +5856,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         entry_args = {\n             'pre-load-key-path': os.path.join(self._binman_dir, 'test'),\n         }\n-        data = self._DoReadFileDtb('232_pre_load_pss.dts',\n+        data = self._DoReadFileDtb('security/pre_load_pss.dts',\n                                    entry_args=entry_args)[0]\n         self.assertEqual(PRE_LOAD_MAGIC, data[:len(PRE_LOAD_MAGIC)])\n         self.assertEqual(PRE_LOAD_VERSION, data[4:4 + len(PRE_LOAD_VERSION)])\n@@ -5868,7 +5868,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n             'pre-load-key-path': os.path.join(self._binman_dir, 'test'),\n         }\n         with self.assertRaises(ValueError) as e:\n-            self._DoReadFileDtb('233_pre_load_invalid_padding.dts',\n+            self._DoReadFileDtb('security/pre_load_invalid_padding.dts',\n                                 entry_args=entry_args)\n \n     def testPreLoadInvalidSha(self):\n@@ -5877,13 +5877,13 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n             'pre-load-key-path': os.path.join(self._binman_dir, 'test'),\n         }\n         with self.assertRaises(ValueError) as e:\n-            self._DoReadFileDtb('234_pre_load_invalid_sha.dts',\n+            self._DoReadFileDtb('security/pre_load_invalid_sha.dts',\n                                 entry_args=entry_args)\n \n     def testPreLoadInvalidAlgo(self):\n         \"\"\"Test an image with a pre-load header with an invalid algo\"\"\"\n         with self.assertRaises(ValueError) as e:\n-            data = self._DoReadFile('235_pre_load_invalid_algo.dts')\n+            data = self._DoReadFile('security/pre_load_invalid_algo.dts')\n \n     def testPreLoadInvalidKey(self):\n         \"\"\"Test an image with a pre-load header with an invalid key\"\"\"\n@@ -5891,7 +5891,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n             'pre-load-key-path': os.path.join(self._binman_dir, 'test'),\n         }\n         with self.assertRaises(ValueError) as e:\n-            data = self._DoReadFileDtb('236_pre_load_invalid_key.dts',\n+            data = self._DoReadFileDtb('security/pre_load_invalid_key.dts',\n                                        entry_args=entry_args)\n \n     def _CheckSafeUniqueNames(self, *images):\n@@ -6863,7 +6863,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         entry_args = {\n             'keyfile': keyfile,\n         }\n-        data = self._DoReadFileDtb('279_x509_cert.dts',\n+        data = self._DoReadFileDtb('security/x509_cert.dts',\n                                    entry_args=entry_args)[0]\n         cert = data[:-4]\n         self.assertEqual(U_BOOT_DATA, data[-4:])\n@@ -6877,7 +6877,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n             'keyfile': 'keyfile',\n         }\n         with terminal.capture() as (_, stderr):\n-            self._DoTestFile('279_x509_cert.dts',\n+            self._DoTestFile('security/x509_cert.dts',\n                              force_missing_bintools='openssl',\n                              entry_args=entry_args)\n         err = stderr.getvalue()\n@@ -6963,7 +6963,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         \"\"\"Test a non-FIT entry cannot be signed\"\"\"\n         is_signed = False\n         fit, fname, private_key, _ = self._PrepareSignEnv(\n-            '281_sign_non_fit.dts')\n+            'security/sign_non_fit.dts')\n \n         # do sign with private key\n         with self.assertRaises(ValueError) as e:\n@@ -7272,7 +7272,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n     def testEncryptedNoAlgo(self):\n         \"\"\"Test encrypted node with missing required properties\"\"\"\n         with self.assertRaises(ValueError) as e:\n-            self._DoReadFileDtb('301_encrypted_no_algo.dts')\n+            self._DoReadFileDtb('security/encrypted_no_algo.dts')\n         self.assertIn(\n             \"Node '/binman/fit/images/u-boot/encrypted': 'encrypted' entry is missing properties: algo iv-filename\",\n             str(e.exception))\n@@ -7280,21 +7280,21 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n     def testEncryptedInvalidIvfile(self):\n         \"\"\"Test encrypted node with invalid iv file\"\"\"\n         with self.assertRaises(ValueError) as e:\n-            self._DoReadFileDtb('302_encrypted_invalid_iv_file.dts')\n+            self._DoReadFileDtb('security/encrypted_invalid_iv_file.dts')\n         self.assertIn(\"Filename 'invalid-iv-file' not found in input path\",\n                       str(e.exception))\n \n     def testEncryptedMissingKey(self):\n         \"\"\"Test encrypted node with missing key properties\"\"\"\n         with self.assertRaises(ValueError) as e:\n-            self._DoReadFileDtb('303_encrypted_missing_key.dts')\n+            self._DoReadFileDtb('security/encrypted_missing_key.dts')\n         self.assertIn(\n             \"Node '/binman/fit/images/u-boot/encrypted': Provide either 'key-filename' or 'key-source'\",\n             str(e.exception))\n \n     def testEncryptedKeySource(self):\n         \"\"\"Test encrypted node with key-source property\"\"\"\n-        data = self._DoReadFileDtb('304_encrypted_key_source.dts')[0]\n+        data = self._DoReadFileDtb('security/encrypted_key_source.dts')[0]\n \n         dtb = fdt.Fdt.FromData(data)\n         dtb.Scan()\n@@ -7308,7 +7308,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n \n     def testEncryptedKeyFile(self):\n         \"\"\"Test encrypted node with key-filename property\"\"\"\n-        data = self._DoReadFileDtb('305_encrypted_key_file.dts')[0]\n+        data = self._DoReadFileDtb('security/encrypted_key_file.dts')[0]\n \n         dtb = fdt.Fdt.FromData(data)\n         dtb.Scan()\n@@ -7324,7 +7324,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n     def testKeyNameHintIsPathSplPubkeyDtb(self):\n         \"\"\"Test that binman errors out on key-name-hint being a path\"\"\"\n         with self.assertRaises(ValueError) as e:\n-            self._DoReadFile('348_key_name_hint_dir_spl_pubkey_dtb.dts')\n+            self._DoReadFile('security/key_name_hint_dir_spl_pubkey_dtb.dts')\n         self.assertIn(\n             'Node \\'/binman/u-boot-spl-pubkey-dtb\\': \\'keys/key\\' is a path not a filename',\n             str(e.exception))\n@@ -7333,7 +7333,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         \"\"\"Test u_boot_spl_pubkey_dtb etype\"\"\"\n         data = tools.read_file(self.TestFile(\"key.pem\"))\n         self._MakeInputFile(\"key.crt\", data)\n-        self._DoReadFileRealDtb('306_spl_pubkey_dtb.dts')\n+        self._DoReadFileRealDtb('security/spl_pubkey_dtb.dts')\n         image = control.images['image']\n         entries = image.GetEntries()\n         dtb_entry = entries['u-boot-spl-pubkey-dtb']\n@@ -7358,7 +7358,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         self._MakeInputFile(\"ssk.pem\", data)\n         self._SetupPmuFwlElf()\n         self._SetupSplElf()\n-        self._DoReadFileRealDtb('307_xilinx_bootgen_sign.dts')\n+        self._DoReadFileRealDtb('security/xilinx_bootgen_sign.dts')\n         image_fname = tools.get_output_filename('image.bin')\n \n         # Read partition header table and check if authentication is enabled\n@@ -7387,7 +7387,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         self._MakeInputFile(\"ssk.pem\", data)\n         self._SetupPmuFwlElf()\n         self._SetupSplElf()\n-        self._DoReadFileRealDtb('308_xilinx_bootgen_sign_enc.dts')\n+        self._DoReadFileRealDtb('security/xilinx_bootgen_sign_enc.dts')\n         image_fname = tools.get_output_filename('image.bin')\n \n         # Read boot header in order to verify encryption source and\n@@ -7420,7 +7420,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         self._SetupPmuFwlElf()\n         self._SetupSplElf()\n         with terminal.capture() as (_, stderr):\n-            self._DoTestFile('307_xilinx_bootgen_sign.dts',\n+            self._DoTestFile('security/xilinx_bootgen_sign.dts',\n                              force_missing_bintools='bootgen')\n         err = stderr.getvalue()\n         self.assertRegex(err,\ndiff --git a/tools/binman/test/302_encrypted_invalid_iv_file.dts b/tools/binman/test/security/encrypted_invalid_iv_file.dts\nsimilarity index 100%\nrename from tools/binman/test/302_encrypted_invalid_iv_file.dts\nrename to tools/binman/test/security/encrypted_invalid_iv_file.dts\ndiff --git a/tools/binman/test/305_encrypted_key_file.dts b/tools/binman/test/security/encrypted_key_file.dts\nsimilarity index 100%\nrename from tools/binman/test/305_encrypted_key_file.dts\nrename to tools/binman/test/security/encrypted_key_file.dts\ndiff --git a/tools/binman/test/304_encrypted_key_source.dts b/tools/binman/test/security/encrypted_key_source.dts\nsimilarity index 100%\nrename from tools/binman/test/304_encrypted_key_source.dts\nrename to tools/binman/test/security/encrypted_key_source.dts\ndiff --git a/tools/binman/test/303_encrypted_missing_key.dts b/tools/binman/test/security/encrypted_missing_key.dts\nsimilarity index 100%\nrename from tools/binman/test/303_encrypted_missing_key.dts\nrename to tools/binman/test/security/encrypted_missing_key.dts\ndiff --git a/tools/binman/test/301_encrypted_no_algo.dts b/tools/binman/test/security/encrypted_no_algo.dts\nsimilarity index 100%\nrename from tools/binman/test/301_encrypted_no_algo.dts\nrename to tools/binman/test/security/encrypted_no_algo.dts\ndiff --git a/tools/binman/test/090_hash.dts b/tools/binman/test/security/hash.dts\nsimilarity index 100%\nrename from tools/binman/test/090_hash.dts\nrename to tools/binman/test/security/hash.dts\ndiff --git a/tools/binman/test/092_hash_bad_algo.dts b/tools/binman/test/security/hash_bad_algo.dts\nsimilarity index 100%\nrename from tools/binman/test/092_hash_bad_algo.dts\nrename to tools/binman/test/security/hash_bad_algo.dts\ndiff --git a/tools/binman/test/091_hash_no_algo.dts b/tools/binman/test/security/hash_no_algo.dts\nsimilarity index 100%\nrename from tools/binman/test/091_hash_no_algo.dts\nrename to tools/binman/test/security/hash_no_algo.dts\ndiff --git a/tools/binman/test/099_hash_section.dts b/tools/binman/test/security/hash_section.dts\nsimilarity index 100%\nrename from tools/binman/test/099_hash_section.dts\nrename to tools/binman/test/security/hash_section.dts\ndiff --git a/tools/binman/test/348_key_name_hint_dir_spl_pubkey_dtb.dts b/tools/binman/test/security/key_name_hint_dir_spl_pubkey_dtb.dts\nsimilarity index 100%\nrename from tools/binman/test/348_key_name_hint_dir_spl_pubkey_dtb.dts\nrename to tools/binman/test/security/key_name_hint_dir_spl_pubkey_dtb.dts\ndiff --git a/tools/binman/test/230_pre_load.dts b/tools/binman/test/security/pre_load.dts\nsimilarity index 100%\nrename from tools/binman/test/230_pre_load.dts\nrename to tools/binman/test/security/pre_load.dts\ndiff --git a/tools/binman/test/235_pre_load_invalid_algo.dts b/tools/binman/test/security/pre_load_invalid_algo.dts\nsimilarity index 100%\nrename from tools/binman/test/235_pre_load_invalid_algo.dts\nrename to tools/binman/test/security/pre_load_invalid_algo.dts\ndiff --git a/tools/binman/test/236_pre_load_invalid_key.dts b/tools/binman/test/security/pre_load_invalid_key.dts\nsimilarity index 100%\nrename from tools/binman/test/236_pre_load_invalid_key.dts\nrename to tools/binman/test/security/pre_load_invalid_key.dts\ndiff --git a/tools/binman/test/233_pre_load_invalid_padding.dts b/tools/binman/test/security/pre_load_invalid_padding.dts\nsimilarity index 100%\nrename from tools/binman/test/233_pre_load_invalid_padding.dts\nrename to tools/binman/test/security/pre_load_invalid_padding.dts\ndiff --git a/tools/binman/test/234_pre_load_invalid_sha.dts b/tools/binman/test/security/pre_load_invalid_sha.dts\nsimilarity index 100%\nrename from tools/binman/test/234_pre_load_invalid_sha.dts\nrename to tools/binman/test/security/pre_load_invalid_sha.dts\ndiff --git a/tools/binman/test/231_pre_load_pkcs.dts b/tools/binman/test/security/pre_load_pkcs.dts\nsimilarity index 100%\nrename from tools/binman/test/231_pre_load_pkcs.dts\nrename to tools/binman/test/security/pre_load_pkcs.dts\ndiff --git a/tools/binman/test/232_pre_load_pss.dts b/tools/binman/test/security/pre_load_pss.dts\nsimilarity index 100%\nrename from tools/binman/test/232_pre_load_pss.dts\nrename to tools/binman/test/security/pre_load_pss.dts\ndiff --git a/tools/binman/test/165_section_ignore_hash_signature.dts b/tools/binman/test/security/section_ignore_hash_signature.dts\nsimilarity index 100%\nrename from tools/binman/test/165_section_ignore_hash_signature.dts\nrename to tools/binman/test/security/section_ignore_hash_signature.dts\ndiff --git a/tools/binman/test/281_sign_non_fit.dts b/tools/binman/test/security/sign_non_fit.dts\nsimilarity index 100%\nrename from tools/binman/test/281_sign_non_fit.dts\nrename to tools/binman/test/security/sign_non_fit.dts\ndiff --git a/tools/binman/test/306_spl_pubkey_dtb.dts b/tools/binman/test/security/spl_pubkey_dtb.dts\nsimilarity index 100%\nrename from tools/binman/test/306_spl_pubkey_dtb.dts\nrename to tools/binman/test/security/spl_pubkey_dtb.dts\ndiff --git a/tools/binman/test/279_x509_cert.dts b/tools/binman/test/security/x509_cert.dts\nsimilarity index 100%\nrename from tools/binman/test/279_x509_cert.dts\nrename to tools/binman/test/security/x509_cert.dts\ndiff --git a/tools/binman/test/307_xilinx_bootgen_sign.dts b/tools/binman/test/security/xilinx_bootgen_sign.dts\nsimilarity index 100%\nrename from tools/binman/test/307_xilinx_bootgen_sign.dts\nrename to tools/binman/test/security/xilinx_bootgen_sign.dts\ndiff --git a/tools/binman/test/308_xilinx_bootgen_sign_enc.dts b/tools/binman/test/security/xilinx_bootgen_sign_enc.dts\nsimilarity index 100%\nrename from tools/binman/test/308_xilinx_bootgen_sign_enc.dts\nrename to tools/binman/test/security/xilinx_bootgen_sign_enc.dts\n",
    "prefixes": [
        "v2",
        "08/23"
    ]
}