{"id":2197213,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2197213/?format=json","project":{"id":18,"url":"http://patchwork.ozlabs.org/api/1.0/projects/18/?format=json","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},"msgid":"<20260217115333.503359-7-Wojciech.Dubowik@mt.com>","date":"2026-02-17T11:53:32","name":"[v6,6/6] test: binman: Add test for pkcs11 signed capsule","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"c8ccd5da312b91a52068e9eafa2345f72b2fd977","submitter":{"id":90988,"url":"http://patchwork.ozlabs.org/api/1.0/people/90988/?format=json","name":"Wojciech Dubowik","email":"Wojciech.Dubowik@mt.com"},"delegate":{"id":3184,"url":"http://patchwork.ozlabs.org/api/1.0/users/3184/?format=json","username":"sjg","first_name":"Simon","last_name":"Glass","email":"sjg@chromium.org"},"mbox":"http://patchwork.ozlabs.org/project/uboot/patch/20260217115333.503359-7-Wojciech.Dubowik@mt.com/mbox/","series":[{"id":492416,"url":"http://patchwork.ozlabs.org/api/1.0/series/492416/?format=json","date":"2026-02-17T11:53:26","name":"UEFI Capsule - PKCS11 Support","version":6,"mbox":"http://patchwork.ozlabs.org/series/492416/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2197213/checks/","tags":{},"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 (2048-bit key;\n unprotected) header.d=mt.com header.i=@mt.com header.a=rsa-sha256\n header.s=selector2 header.b=SP/S5wfE;\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=reject dis=none) header.from=mt.com","phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de","phobos.denx.de;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=mt.com header.i=@mt.com header.b=\"SP/S5wfE\";\n\tdkim-atps=neutral","phobos.denx.de;\n dmarc=pass (p=reject dis=none) header.from=mt.com","phobos.denx.de;\n spf=fail smtp.mailfrom=Wojciech.Dubowik@mt.com","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=mt.com;"],"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 4fFdNg4QKYz1xpl\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 17 Feb 2026 22:54:43 +1100 (AEDT)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id B8A9083E61;\n\tTue, 17 Feb 2026 12:53:48 +0100 (CET)","by phobos.denx.de (Postfix, from userid 109)\n id 92C6D83AA9; Tue, 17 Feb 2026 12:53:46 +0100 (CET)","from DUZPR83CU001.outbound.protection.outlook.com\n (mail-northeuropeazlp170120005.outbound.protection.outlook.com\n [IPv6:2a01:111:f403:c200::5])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 698C583CB5\n for <u-boot@lists.denx.de>; Tue, 17 Feb 2026 12:53:44 +0100 (CET)","from DB9PR03MB7180.eurprd03.prod.outlook.com (2603:10a6:10:22d::13)\n by DBBPR03MB6761.eurprd03.prod.outlook.com (2603:10a6:10:1f4::8) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Tue, 17 Feb\n 2026 11:53:43 +0000","from DB9PR03MB7180.eurprd03.prod.outlook.com\n ([fe80::6fd2:12a9:4423:8ddc]) by DB9PR03MB7180.eurprd03.prod.outlook.com\n ([fe80::6fd2:12a9:4423:8ddc%6]) with mapi id 15.20.9611.012; Tue, 17 Feb 2026\n 11:53:43 +0000"],"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,DKIM_SIGNED,\n DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED,\n SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2","ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=M1tkf1oGrag1V3/42DUacfY3QJUbzDtofdDh5n8cri+RDuimRe+DVLtnp4tnhLr1btlMX2hcOEhZiGPbfjvqQiCQLa4Wrcv8FM5F8MbIZW8A7s66gxU7kPhdJo7CEbJg79vXJGkA5sdzzsYTWR8Xy2OpWBqNmp5Q91hD3D/OX8+jXg93HL5/++caebOLNPlDiulSbu9SM5pgCIhA0CyKOANZicQYqfXkF0FHADSV7JEARsZ2jBlZvdFLoA/mS8NPLqKWIKzl8iCBkwcUBCBluJUvltvK848/cY47P7ptzvw3D9IU20tMjLX4NGkxHthra/wBFqOJOEdontuVOd8Cpg==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=ELjAzkfGNKMpJ6Q1xzELEGeev9gXdQQ5ccwrxCZLpks=;\n b=q3Qcww0OM5fVXUU8urm3SyJlCP62HiLalCbpVBxZGQ/etCPli1SkBipstaiUQ1RQzXhaoq5rGn78PiiOMZRxXNKXpXyBnj2FKKMJKb2+XfVf9ENbhwQx75hohfdI0huEkI4lta2poKBdpUih0KhaARvN3UfCNAD71+xlkpHOADiR7bn8vnZgKMfts+NWtD7JlC4Ih0AUY2RhMoanxVFu6gI27uA1wPlYelasLwbagvfGU9gkhXs/fPKNenwA2VcakCjqIdW/qRK3fKvSP0aBZHoNwQvbo/VTlgtuENb2p1Piyd/luUFKJPARsH52c2Mhmp6qBI1xT0y/E0jO4ta0xg==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=mt.com; dmarc=pass action=none header.from=mt.com; dkim=pass\n header.d=mt.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=mt.com; s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=ELjAzkfGNKMpJ6Q1xzELEGeev9gXdQQ5ccwrxCZLpks=;\n b=SP/S5wfEgUNK7k5qzaKJ4Wa14QXvhykoBOtGB9JO176MQ7sNKpeieSF+mXRis6+/yWJwfngt09d9vDMSKszK1jj3qxCmBInjEbl7jDWlRe8M9L2QXhFPk3n03hDAxPZpDburvMbyCxJUasWVPzJ9clu0VO3QJibzwTStGzwdHKZASYWp3FVUWnTS0WjUbMgQ0DCJVjZqwTa59D1LGxvAkU38D5loWEx3LcDWmp763IX/O2Qjn0GE08vw6l58vcziPdEV0rG0tSbmC2KOIT8Bvoj82iGAMsx8mk7bcHmAJDc8+8kqEp5Ay6pvkBUt6LRAYkK+7jXf27OpWDuPp8OEEQ==","From":"Wojciech Dubowik <Wojciech.Dubowik@mt.com>","To":"u-boot@lists.denx.de","Cc":"Wojciech Dubowik <Wojciech.Dubowik@mt.com>, ilias.apalodimas@linaro.org,\n trini@konsulko.com, simon.glass@canonical.com, quentin.schulz@cherry.de","Subject":"[PATCH v6 6/6] test: binman: Add test for pkcs11 signed capsule","Date":"Tue, 17 Feb 2026 12:53:32 +0100","Message-ID":"<20260217115333.503359-7-Wojciech.Dubowik@mt.com>","X-Mailer":"git-send-email 2.47.3","In-Reply-To":"<20260217115333.503359-1-Wojciech.Dubowik@mt.com>","References":"<20260217115333.503359-1-Wojciech.Dubowik@mt.com>","Content-Transfer-Encoding":"8bit","Content-Type":"text/plain","X-ClientProxiedBy":"ZR0P278CA0127.CHEP278.PROD.OUTLOOK.COM\n (2603:10a6:910:40::6) To DB9PR03MB7180.eurprd03.prod.outlook.com\n (2603:10a6:10:22d::13)","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"DB9PR03MB7180:EE_|DBBPR03MB6761:EE_","X-MS-Office365-Filtering-Correlation-Id":"6d45ded1-d0ad-4bdf-d3ce-08de6e1b32df","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;\n ARA:13230040|366016|376014|52116014|1800799024|19092799006|7142099003|38350700014;","X-Microsoft-Antispam-Message-Info":"\n 5vEqVu31Hms1CyxrnMqW1fXvEpyW3DEKSjH1Co3ZGmMM1MxvgDnlBHlaF0Z0ldg6F9EEaryU5Y/6BwAv5l2DvZiTntIPzfDWTsY82FY/BotbgqByAgEIliTJ+9D1mjKeNyQACwl2thVMjd9LvNID2W12F5EHXppGj9v97pEm5cM0RC5yNC2ve+/96SBcS5P8wbarml/xKaKu01hXFtnX6hi7IykHad2p8wtpbdLyehzcUwEm4xB7V1yhJZ0HdWRK2KkzukPYUDOJzcjLkACzpQCMPr3wKQxVELCeuG2mr/y8KTTFCbbo5LfauaLcEeZ9bC4MllLTVpWv1Bpcs+k9hc7+sAPg5Ho5L6XWhqL4rBupUPM6CrgK551RQIHH8mK/JnZP91L10bsEI7VZ9lOgchgqfw02plEgK1usxbcP1+wWJhyohjnobJkQ+rlASnHTbQxpUDrgnNT1Zr5putxH/mGM+NsZaryMsc026mUZ0/Em9DwBxc2/rfemUZ3eb3bOAG4kqqi8teoUlqq7CsenPQv+tuZUbsr6J6hxnN6Mzp2DBI0FC7Va5E4MK1PFSnbA+GnYgHB0x/Ng6FpGLppryJmWWHYQ0lvxrZKP9XMbBUOm4pmC/X/EHCBSiFRM0eNZrtTeUYlvZv+S/Y+eenHL5QtaukiVvFkW3DKlW2sSQ7yZZ8rNDJSiA8W7Zx2euddP5MKIwwcBKv1HgIIoDiVmQG1Bo0DCsnm6E8SIcg+1Ve4sl0LIS3ydqnX2M2Vkw++zgF+7qRAMgpqNT6CG0lNuDbRkWMuDj0HZ/59snwQwGGVQunyiicfI1sFQUCDwZHoFwnMBl1SnfJzPD7I3mi+9Njzdt4soSVDbihPjaqoXSxXYkKltKHKcyaAOQL9cSwsTXqlq/oTDP96r6tNDVmiWk0JcOSAqqZSpOZMdabPHz+zRaex1NWoxX5gsQ1c9ZleglpS2jcKvbKIf5Zd8nGA5WIdiHYrN1JhJtCa4yAOst1FPaK5YLJXoZcUoHFRHsAOZjsxDwiEft0D4XAF9sVftprVPr3oearlTHB7EOEkHL/AMEP8URQn4CTO7G13Vy9gTeLkl7K9oJlj5PSy89H3WCqgXxQNHQNxnsr3doDB8/tVfDSOI5Az6kAmAGhP7G4JaMP24jEWgObM43UGY0WmMviCwT5e7vCM99ljyTZM6KsmvigeTWzD/0bH2XcgcKtIr7Xoj8VkjUI5R+Sg0w2HdQzDArsNISNUcdwoYBrC3P/XH62mafnTv4gux73Qpz5aXDQgRVEfe9gAOQizCUZXeKk5Mefyt94jNZnmuzUrFt7uQQxyFKdY/nx+FpXY4FBxGKYc5trG2KVENLwhYWvLg8AhrkPEZTM96K9jdqTAyHox62+PqDt91DWNTal/T61S9DC+9k+2r8+BqrUCTaZBtFgRl+Y7EQOIMeq4Vfob6B277GZGuyMT45iS7SZfahbUZYeKsorj1P9EPPRxZfdDrvEHFZ4KuPyeH1/0r4SWUY6V4Ig14fMHQNiygJSLlalYwe7nz/a83CuFSmPU1HIkCO3ySWpnJAE4TvdcT8s2rHElNOqJm4HJb5Vx4NSwWkjOU+KerIbOROUqi+opvkQXLdiVRO1DMtK+O4fZ0f5YrRxw=","X-Forefront-Antispam-Report":"CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:DB9PR03MB7180.eurprd03.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230040)(366016)(376014)(52116014)(1800799024)(19092799006)(7142099003)(38350700014);\n DIR:OUT; SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"\n osI9K4ZtwtA8tcWkmTKQQ3pXbmh4w6iVrXCTbwvqnHh0bvPqXeRUkSYzRrFV97zZD+t/cvTa/wK3v62aeCT6zVyb2e/TwaW4TebC1Q2rzqaSRmPwKZA4FhEqQ3KidG/zhoxKVWaDfX+LO2v/GsvMVEOrSBs1Mcx8uU7aJE7MNKlxuJccjj0sKcwdofnpfrR4LtP2Rec+diKqKK1Fll+Gxh3VxsT4/iwZD0yu+ELZJRJKPTE29qcMUbg8kR3LVQnZ8GWSL4IJdc0rD6xvsAEYW+Iztl1Phfn837Sd401qwV2YKJxvPjkzMLxYa2+NJcK2RskJq0hmRZh9Mjz3eP25Zj/M3Pv/X1lWIfmkay7n4ZQ7p77yF1CliWdUkE+PzAaUdk8MW9nVhjeJ3isEDZKdTog2gJZ/ujXOMUlAIXynGvRCQUAI/4FNneCcXW9xhB3LJejjtTweNPi7R1cmaxH//aEPhffJKP8lujd3BLYi3/d/yiMOeYRb9y0Wid0xnTbWqNOxl79tI/jWklUpoYl+gTQX1N5MChPy7GvmU3lWbHHKPhBi3uGRsGozLgqJHBZT8AC43taSMUpP/XwTwEg7oA6NGdHbcdMPYByiFNCOY30NMSJPPO+VBo4wOdMsn+3zpwdfcVWC3kj2E5y2OAVb/4DZDksbkdqOStW+5FHgKOn4aj3hOvFgV3kfOW5qNMbUAtd4ofOkLELGGpicxBgEWdCkuacxc7ytgv2RrF8giuiRUSygbtRXMqbRt9x1U7yeN1YBK+gJZoVQeBkahWG6SpLr8ix4H6bt+jYWRgJ2yvRhyoUeBu+oSrTmwYmeUubvMESYmbwi1ukfjal4UFIWQF2mcux8hC9sA1TwvHT7NBRlv+SH2qhcTa4JSJqWwpaubf5I7G1cU+7IPIb3keqIQVo+9wQ8y+1RUFAYc4LYQQe2NHpY50IcRtXHe6HGSOTi1B4czgO4bbnZxASVAOvfbSdku7vqCy2JaN5Oy2Blbwx2i0nfS00OJlVtwg34I+2OQXEWzwyKgkM/EBYb5Mgqst6VN0dtXJkY3mcuY3COwdtBZQbH/+veqa2OKnSOBzsVoD9sNTRfpfejecOlYDrZ8Vv+E40nd09j7G6GpwG2/YEPd6J72kycukNst0vCzwc90nH3t2G2USwqB+s+JH0puMXlCllkYnarT0MSrCu46rDE29M/SrR1fe5g9880To9b9AoEcI33j33DNV3Ks8eCIP7D0JaYgRPXlUM6GIfQb5fj1BAEipR+b/ceEMPTZRvnBI6Yza0HQl/QI6b4faorjAt0uXsIawFQBVNB4cRN6Zer6//nBGFH+AI/sWXpKO6IZkFskzA9JY8Uhq2vMW6jj5fAplAhBv8+frms9gSZzc9J4BoEbgcGd8YMK8maYaCLPwlVcOg90AXq5hei6Yb3aknMM6gdPo9d067V6UAX/3jeL5B4DJu2cAjIkr9kKUg/3ZFuhgNzF7NmlDF9CUsvgx2OXL3FomvvrMVPEvXhS7dKreaVZLZ57uMbf9qi5z+jAMWbeQVU8BWyzHZQOC0oKtvOn8dRUbQiuzYXlxeArC8IR/ZWT+DML6baPhNw33zRThDq2xpSJkUPbbpPqmk1zGXHwsPlz+SpFDZx6BUrokrMWhILg6Kfl8O2oDFEti6G3WADbdbATSU9yZhZgx7By75rmURtULF5rC5MOTBOjQAhKI696mCosTiQ7eQoItZEgTtkj4KcRI0gt1G3As66iA==","X-OriginatorOrg":"mt.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 6d45ded1-d0ad-4bdf-d3ce-08de6e1b32df","X-MS-Exchange-CrossTenant-AuthSource":"DB9PR03MB7180.eurprd03.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"17 Feb 2026 11:53:43.1344 (UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"fb4c0aee-6cd2-482f-a1a5-717e7c02496b","X-MS-Exchange-CrossTenant-MailboxType":"HOSTED","X-MS-Exchange-CrossTenant-UserPrincipalName":"\n GxHKX4Yoda47J3rHM3C+SVZJzoryyS0hGSCJ04SEEn9niB2tuxo5gPE7j2S7ChX0A32xULMNB+C95JMEzGTlFA==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"DBBPR03MB6761","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":"Test pkcs11 URI support for UEFI capsule generation. For\nsimplicity only private key is defined in binman section\nas softhsm tool doesn't support certificate import (yet).\n\nAdd bintool support for p11-kit as it's needed in the test\nto find library path for softhsm2 module.\n\nSigned-off-by: Wojciech Dubowik <Wojciech.Dubowik@mt.com>\nReviewed-by: Simon Glass <simon.glass@canonical.com>\n---\n tools/binman/btool/p11_kit.py                 | 21 ++++++\n tools/binman/ftest.py                         | 66 +++++++++++++++++++\n .../binman/test/351_capsule_signed_pkcs11.dts | 22 +++++++\n 3 files changed, 109 insertions(+)\n create mode 100644 tools/binman/btool/p11_kit.py\n create mode 100644 tools/binman/test/351_capsule_signed_pkcs11.dts","diff":"diff --git a/tools/binman/btool/p11_kit.py b/tools/binman/btool/p11_kit.py\nnew file mode 100644\nindex 000000000000..9d8d5d848b44\n--- /dev/null\n+++ b/tools/binman/btool/p11_kit.py\n@@ -0,0 +1,21 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# Copyright 2026 Mettler Toledo Technologies GmbH\n+#\n+\"\"\"Bintool implementation for p11-kit\"\"\"\n+\n+from binman import bintool\n+\n+\n+class Bintoolp11_kit(bintool.Bintool):\n+    \"\"\"p11-kit -- support tool for pkcs#11 libraries\"\"\"\n+    def __init__(self, name):\n+        super().__init__('p11-kit',\n+                         'Pkcs11 library modules tool',\n+                         version_args='list modules')\n+\n+    def fetch(self, method):\n+        \"\"\"Install p11-kit via APT \"\"\"\n+        if method != bintool.FETCH_BIN:\n+            return None\n+\n+        return self.apt_install('p11-kit')\ndiff --git a/tools/binman/ftest.py b/tools/binman/ftest.py\nindex a53e37f31b3e..eb08593b2241 100644\n--- a/tools/binman/ftest.py\n+++ b/tools/binman/ftest.py\n@@ -7,6 +7,7 @@\n #    python -m unittest func_test.TestFunctional.testHelp\n \n import collections\n+import configparser\n import glob\n import gzip\n import hashlib\n@@ -7532,6 +7533,71 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n \n         self._CheckCapsule(data, signed_capsule=True)\n \n+    def testPkcs11SignedCapsuleGen(self):\n+        \"\"\"Test generation of EFI capsule (with PKCS11)\"\"\"\n+        data = tools.read_file(self.TestFile(\"key.key\"))\n+        private_key = self._MakeInputFile(\"key.key\", data)\n+        data = tools.read_file(self.TestFile(\"key.pem\"))\n+        cert_file = self._MakeInputFile(\"key.crt\", data)\n+\n+        softhsm2_util = bintool.Bintool.create('softhsm2_util')\n+        self._CheckBintool(softhsm2_util)\n+\n+        prefix = \"testPkcs11SignedCapsuleGen.\"\n+        # Configure SoftHSMv2\n+        data = tools.read_file(self.TestFile('340_softhsm2.conf'))\n+        softhsm2_conf = self._MakeInputFile(f'{prefix}softhsm2.conf', data)\n+        softhsm2_tokens_dir = self._MakeInputDir(f'{prefix}softhsm2.tokens')\n+\n+        with open(softhsm2_conf, 'a') as f:\n+            f.write(f'directories.tokendir = {softhsm2_tokens_dir}\\n')\n+\n+        # Find the path to softhsm2 library\n+        p11_kit = bintool.Bintool.create('p11-kit')\n+        self._CheckBintool(p11_kit)\n+\n+        p11_kit_config = configparser.ConfigParser()\n+        out = tools.run('p11-kit', 'print-config')\n+        p11_kit_config.read_string(out)\n+        softhsm2_lib = p11_kit_config.get('softhsm2', 'module',\n+                                           fallback=None)\n+        self.assertIsNotNone(softhsm2_lib)\n+\n+        with unittest.mock.patch.dict('os.environ',\n+                                      {'SOFTHSM2_CONF': softhsm2_conf,\n+                                       'PKCS11_MODULE_PATH': softhsm2_lib}):\n+                tools.run('softhsm2-util', '--init-token', '--free', '--label',\n+                          'U-Boot token', '--pin', '1111', '--so-pin',\n+                          '222222')\n+                tools.run('softhsm2-util', '--import', private_key, '--token',\n+                          'U-Boot token', '--label', 'test_key', '--id', '999999',\n+                          '--pin', '1111')\n+                data = self._DoReadFile('351_capsule_signed_pkcs11.dts')\n+\n+        self._CheckCapsule(data, signed_capsule=True)\n+\n+        hdr = self._GetCapsuleHeaders(data)\n+        monotonic_count = hdr['EFI_FIRMWARE_IMAGE_AUTH.MONOTONIC_COUNT']\n+\n+        # UEFI standard requires that signature is checked over payload followed\n+        # by a monotonic count as little endian 64-bit integer.\n+        sig_input = self._MakeInputFile(\"sig_input\", EFI_CAPSULE_DATA)\n+        with open(sig_input, 'ab') as f:\n+            f.write(struct.pack('<Q', int(monotonic_count, 16)))\n+\n+        # Verify dumped capsule signature dumped by meficapsule during\n+        # generation\n+        openssl = bintool.Bintool.create('openssl')\n+        self._CheckBintool(openssl)\n+        openssl_args = ['smime', '-verify', '-inform', 'DER',\n+                        '-in', tools.get_output_filename('capsule.efi-capsule.p7'),\n+                        '-content', sig_input, '-CAfile', cert_file,\n+                        '-no_check_time',\n+                        '-out', tools.get_output_filename('decoded-capsule.bin')]\n+        result = openssl.run_cmd_result(*openssl_args)\n+        self.assertIsNotNone(result.stdout)\n+        self.assertIn('Verification successful', result.stderr)\n+\n     def testCapsuleGenVersionSupport(self):\n         \"\"\"Test generation of EFI capsule with version support\"\"\"\n         data = self._DoReadFile('313_capsule_version.dts')\ndiff --git a/tools/binman/test/351_capsule_signed_pkcs11.dts b/tools/binman/test/351_capsule_signed_pkcs11.dts\nnew file mode 100644\nindex 000000000000..ae93bf83936f\n--- /dev/null\n+++ b/tools/binman/test/351_capsule_signed_pkcs11.dts\n@@ -0,0 +1,22 @@\n+// SPDX-License-Identifier: GPL-2.0+\n+\n+/dts-v1/;\n+\n+/ {\n+\tbinman {\n+\t\tefi-capsule {\n+\t\t\timage-index = <0x1>;\n+\t\t\t/* Image GUID for testing capsule update */\n+\t\t\timage-guid = \"binman-test\";\n+\t\t\thardware-instance = <0x0>;\n+\t\t\tmonotonic-count = <0x1>;\n+\t\t\tdump-signature;\n+\t\t\tprivate-key = \"pkcs11:token=U-Boot%20token;object=test_key;type=private;pin-value=1111\";\n+\t\t\tpublic-key-cert = \"key.crt\";\n+\n+\t\t\tblob {\n+\t\t\t\tfilename = \"capsule_input.bin\";\n+\t\t\t};\n+\t\t};\n+\t};\n+};\n","prefixes":["v6","6/6"]}