From nobody Tue Sep 22 05:48:12 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1785316213; cv=pass; d=zohomail.com; s=zohoarc; b=DLtmW+hp8MhItMAyXpwFv7sXo7cv+z/8iajwzR2JfMJ6rrXzA1HUr/E2OXRcjkiYrj7J+I4qEcH4aQm90RbGFk+MKWT7Mqo9yl2aViF8/dnn28VU+7fkOdOl4dHw2KACDubLf3iSCRLVl2l7OrW0vDNDjPBKUEOQ+MUlPQtiSvU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1785316213; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=qI3EiDbOjALyguTIxWpIbnSu3kaV/Rz93MfNujBmNQk=; b=dUyU0vs9besaeyUy4/16LHMWG6Pc4LjdKcRWsXE1Q4YBpm0Gb2idHr37Rv7ZOASjJQFUjYooaGOJ9FMtszPKZ9gDkQkC7ZEJ0UFOXLii67EzrMvHv+AxWvBWPgLFEJdPpKIQ6WIpCiYBawD05/ONfqxPeSSbnDBVwA7WgG/CfDk= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1785316213908177.91920658452045; Wed, 29 Jul 2026 02:10:13 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id C0E7A41BA2; Wed, 29 Jul 2026 05:10:12 -0400 (EDT) Received: from [172.19.199.10] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 1971241D57; Wed, 29 Jul 2026 05:01:42 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 8F0DF41907; Wed, 29 Jul 2026 05:01:02 -0400 (EDT) Received: from mx0b-002c1b01.pphosted.com (mx0b-002c1b01.pphosted.com [148.163.155.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 2C4BE41C11 for ; Wed, 29 Jul 2026 04:59:58 -0400 (EDT) Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66T7cMEj2297047 for ; Wed, 29 Jul 2026 01:59:57 -0700 Received: from sn4pr2101cu001.outbound.protection.outlook.com (mail-southcentralusazon11022128.outbound.protection.outlook.com [40.93.195.128]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fpg2xca89-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT) for ; Wed, 29 Jul 2026 01:59:57 -0700 (PDT) Received: from BN7PR02MB5329.namprd02.prod.outlook.com (2603:10b6:408:29::15) by PH0PR02MB11606.namprd02.prod.outlook.com (2603:10b6:510:3b9::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.12; Wed, 29 Jul 2026 08:59:56 +0000 Received: from BN7PR02MB5329.namprd02.prod.outlook.com ([fe80::a3e:7534:76c8:6715]) by BN7PR02MB5329.namprd02.prod.outlook.com ([fe80::a3e:7534:76c8:6715%4]) with mapi id 15.21.0270.009; Wed, 29 Jul 2026 08:59:55 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=qI3EiDbOjALyguTIxWpIbnSu3kaV/Rz93MfNujBmN Qk=; b=lm4s98uZUmSDY+rlUqMOqq6rBVdZyvwAjAEzR4S67pXE/s+q48OmmU4wa qkOjmd3Vcho/MQ5DU7wpFsgEEsD1zNw1vLunpq0Nw2JWZv3bJZBdXAQmWCbVagWx eGXDN4kqSkComyXDw0wWRON+odLEKzMIE6aWkQxch+PC7VP2lUGc5ZDMLnK1CUFy VsApfr9V4NlBU+V4sOVaNBybpkDfs4SzFhwUKFvfI/mXC6Tr1v80aabgaJjxZ6a1 5BFNCT7MvFkv64gU97nQCQ7yaTJaSFVwwSHZECeU/KxVoOZbpGBx36nCPu46V4kA LzoL8J/rkoTqv1t70UgWzdVvatLMw== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sMS3gTF9zMjKMyqzNzUweqT5qg6WsZRuJSK/kXnRu+Cl5zAl2KYikcJJUYGnhYf/rOsjKTov6zSs+XZ2d1Rc9pIA2bHE84nWuupRwYvCodfvh9G6weHHlEOsmjth2MDtGHVaAxJJ3mpp6y+j7RCyFhTy/jc1zYzE9DtKq2AvdU0uat9TV4HK2DjT01sxC78i4vnyl+BfJ/IITi6dJUAUeWtup1TU6OFS76vOvCR4csZYnHawfMNnpWpg201AgBz7S6DQyBAMiPyJFm3x/A7bukuOsjdnZd8iYj7IuXLYBgGFMnq60CMwhjLizl5e11A5c/UuijxppBArG/EsdEg1Nw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=qI3EiDbOjALyguTIxWpIbnSu3kaV/Rz93MfNujBmNQk=; b=ERzgJ3rrKBJNKadIOQoD/gJuMr9CPUsxAFqStcI6qjYYKUWQh8FOKMe+yCLLwngU3DhIGnPC47ntrjZHPaABZpPrebLmKn2pFeQtvb2avU92t2IgeU9Cwhb6KtjqYLhjlEKqhepxlCWb32W8KDSZNADZAGU/quSu7NJzYPCsHN3AUV+v6PWqO8fA0gGIGXOntCEqv6sx3SK2een3ZxbU3XwudddrjmXlXUmzjaJOCS6AKOWvrQMKmCV87cxKWcSVTQQGT6lXHVgIFFS9eh6yyKL4SnmQ5ZU17VzjjPVUU7meDPk5doIW7TtjzPpkJqKttVipwb4NlZtDW5K58MVndQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qI3EiDbOjALyguTIxWpIbnSu3kaV/Rz93MfNujBmNQk=; b=tLkUhavFysF0KTLOaQlJ7oNG6VgXExPhXVQTH1PH58cmANCrR/ZN1ZcoVnnJ2ktjlR+goj1xABgDqyL1TXPplswgVuqDILAUCt05JfkWPXSRYrWzrrtCxo87TpiypK0hjh0JzQTgn+QX8GiLGwJasBUbZY8F5PeNer/RPjkLOZBioS6d9bpYeLtTMRTU2pajoJQXBQ/SPXgRLkuH9Gm/pjjFzx5WGzoj3pHZPOdpW0clBWVUEQM3XIyoyddN/MBMiNq2gipfdybKdM3C694gIl69X8dZMXJ0sj5e4Asia50NcMCieo+x4v5DOwTqNO9zTumasy9aWE4lAfUzJM8zdA== From: Abhisek Panda To: devel@lists.libvirt.org Subject: [PATCH v3 7/7] tests: Add testing of pre-shared key lifecycle Date: Wed, 29 Jul 2026 08:58:59 +0000 Message-ID: <20260729085917.3243911-8-abhisek.panda1@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260729085917.3243911-1-abhisek.panda1@nutanix.com> References: <20260729085917.3243911-1-abhisek.panda1@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: CY5P220CA0001.NAMP220.PROD.OUTLOOK.COM (2603:10b6:930:ed::12) To BN7PR02MB5329.namprd02.prod.outlook.com (2603:10b6:408:29::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN7PR02MB5329:EE_|PH0PR02MB11606:EE_ X-MS-Office365-Filtering-Correlation-Id: 996eec68-dd90-4360-d0f7-08deed4fc2b4 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|23010399003|1800799024|6133799003|3023799007|56012099006|5023799004|18002099003|22082099003|10067099003; X-Microsoft-Antispam-Message-Info: WWGeAkj2lvO8kWcmyQxdjKdPFxyTvkuZV2arA/WkvKrtTjPtueREod2medkaNo/Fe5GjipYNksM9l0EQv7flsX2RvoGCimMhDXHiYCCwiMitaD4DxXkteRZDgijX66k6ad11gN8NKSFiSyNBP2ypBxQaksEklEgrEZmm7nblHtXmnq38xHIuZtuyMlOfOceUyMtouiI5zfo7J1mMoL+UhCo1WNGZRLvFBrBfiaIIPQ0/fgHhAWwf6szdWaB352GBz5pDMkP9d/epjFhhBvXPf7m41fFLKVozfifC94XUBPAzDBHsI0ohF1FWk2cKnyRdT09r/OIzPz4l5qrvOIRM4PzJUWl51NV1aMi1VjguekDZB3hh8HxCA/xdCmRPkRF7r5SkMvWELBNnihRw5HzqQJJzDBrD9gzkOnIzwdNZWX7eBz/PJpHvYGmZGFomIlS+Kh6W41KYW15RXyY9GqO1GKYjNE6J9xWRl9La9zSm9TVL7Z2LHfIuQq2znpqFnxaydmrrYUEyvKvZpIJPpWgO6iT9nf7TMON7BMfBhcUY0WtXvGn22sApHJjetdLjhmNngeW/f5cYz7zjwQxGGy0ugbDaRfoVrDAbW0m4cges8y7oxlBIBxI8EwYConKf3Uxrsm2rL4wSzVPdviJAl4GJxQoh1EP1M5vUNmeZh3tRr1k= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN7PR02MB5329.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(23010399003)(1800799024)(6133799003)(3023799007)(56012099006)(5023799004)(18002099003)(22082099003)(10067099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4O0ay6HvIk4M5snvzpE1dM6eo5njKPqClmSsT0+93xxN1pSad1gwobvQeuZj?= =?us-ascii?Q?InQmiCd94nyevURndquMCFzw0d1LJk6SxGlW+UbfBWRkTmMFQBtAl4viF6Gx?= =?us-ascii?Q?UYB59byFeqrHCj63Cet71jv66xHZtg4R44VyWMwZ0mS+4JEF2cxtK62JUSUj?= =?us-ascii?Q?ToauTWpHoKh8P4pZ0Az7TU++62rOst9I79E9zle5nCOTsUlVLDi/nMb2Gg7C?= =?us-ascii?Q?dabU06I8D0RQvqUUOEwuz5WOsMHigUVIPnrbUeS4hsOwwgTIxujitM7vB6Jo?= =?us-ascii?Q?ZnRFc4KiI1efUypOzb2PWmyK+UptQrPMEgAAUHQNxUrP5qEN6UfLksWI/UlY?= =?us-ascii?Q?t7M7RxQ3Dk31450Mrh9yWVJUClM1K9eS6PeuWIlzxwZX+24f+QnLPFr2MViZ?= =?us-ascii?Q?TWr/mINdE4QN4eHMVSIeD06lxdgxKEhZ7UDne561CXE8Dcc5pSuxrMwjpPDS?= =?us-ascii?Q?EXYR0t2TS7tX0ZY7rh+awbq28C/W1ObVYOntLzZ0xhGjg2vlGU/fpPxScOdY?= =?us-ascii?Q?9hruMMy8RN54p7uky0o1YnyVkHhgd2Jxr/xadIgdZHVwwfikjXZQ5bKFahf8?= =?us-ascii?Q?XxzXdTyajTw98XGRR4BPm1mTTXfwnkkZ+gF9eZKRx4Dh+DRPbNxA77vtu8dW?= =?us-ascii?Q?WNxboIy3quRoIaJEw/RYAmNqipiI2Seh0IFpx98DDoTfqsPGnUDZDM5vLKc5?= =?us-ascii?Q?k2cgnQbvl+Ch8YwvUJf5l5cr1VNeof7+PNyXnTsjR7vIh44v9CDP8DmruKgl?= =?us-ascii?Q?NFFI2napM2JBARsZrC9acuBUjnkweinIba1E980KNYm/v/PrC2fgC7rUfgvJ?= =?us-ascii?Q?wvVoq1lXPQ0RtF+nNuACGfBoBV3O3G374bqiuHRhyauOYzv2+Dm69d3PW/DX?= =?us-ascii?Q?tc2om2ikBe9SSStMoMhE1ESzb4fk387/aU11QczohvoKCgA7qQlg/BaH0HYD?= =?us-ascii?Q?Vrk+XhGHH1BMgBcQEOSVhYVH/swYF2+dsU0+sOYb569vvWlZRaZor2BvSF4Z?= =?us-ascii?Q?RjQKVHuEmlK8joreufCRpaePOi5ZZiN9P0Gtk5tIMFSw5H+M5s7BxvE2A3h9?= =?us-ascii?Q?Pf0ka286OSJNz9fHw/5BlLsDPoOJbRgJNRHbHBTdwaqT8gmKwfgTVMuvUxH9?= =?us-ascii?Q?+k+oVX65dKO8nG1O4CXyxpglLgsxz4xRliwL2WO9KBL3KqS0KQYEoTmnAokc?= =?us-ascii?Q?U45JfND2YczA5XyleX26sPqF1jWLwkBD6GQR0vYhvHujI7DdDw71O9A+k0L/?= =?us-ascii?Q?ayd0pyfjT13hQF7lMN1uAB7XpVvQ92oF1MxIyY+vmcuhVLlR2ZDZB5nTnRS7?= =?us-ascii?Q?/v91FWT3RXM5l4b01x0CwvVHHc+RkzE32tvRxGjon53GSiB4RvloimwbkzVr?= =?us-ascii?Q?UB+1+dcPAb31mDZjMvlBHGwq/G6kYcGjLcDDOzAMxVm5YGVZNcPbvoI17APL?= =?us-ascii?Q?XNSeouhFRS+vIuy5zBi7mguPGBqAQ4nTdyA0EnSqz79vQEhYVFSySHUFT3U2?= =?us-ascii?Q?kXvgm+ieosbUYCno6zw7ChTx7oroQrr3lyHvb3kp/nOhvkvoBNN+a/PiIN/B?= =?us-ascii?Q?qai6txlaZWx6OXZstV4ji94XvsJoAg/bWfkgFwlxn8j0jeUgp0XrqcM/GJC3?= =?us-ascii?Q?FHJ1NJm4O8cPkyqw5Un8o52Ojgqq+59rW+phMCz/A4u0dl+5vUnU+rZsUSmE?= =?us-ascii?Q?5wq7xINiDh0CL6d/pMBgMQGsSVN+Rf37/4EhazQ2FTsARS77k6Kc550q5rDk?= =?us-ascii?Q?sWuIzBk2L0jhwY+4kjBcibvvU/cv8SU=3D?= X-Exchange-RoutingPolicyChecked: Q4qL7z/Ou6iBqgzdiOTCdhqT412Q8qVWwEpy0ZABDqeyawgrnzpMGC1q3a3tmWkCWL926iBqDKvNxpWnEK9LBChogDkHE9vG6MnY4I7i++Y4e5brncv6Z1V/0JL/y9yqqOJVUIM32I0QiL5HdPaM1aCVaTwlKNLO8QRt5/n166b9RaznMiLEoeUJqDdKp3QZdyxj8FblWhYzyI35auEg3OiukcY/ISxWomj1FWduQ1favCyfmoTp4YBjlazXwUYBSfl1LPc4dKPGGl9eMfKkUBKAnPStyu7qC1SvkJxGOKgzrKAw6SI0JhSQB4mBD5phUcZ+QsDsq0lao+pfICp9vg== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 996eec68-dd90-4360-d0f7-08deed4fc2b4 X-MS-Exchange-CrossTenant-AuthSource: BN7PR02MB5329.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jul 2026 08:59:55.8724 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: lUv2eZvE0Sm1c6TCaT05usPqK8vZsV/2ptW6H1OKoTCbYfGTYOQB3sE8zsCVhQgPQq2+Oa6IoINy3qqDI7U6/IOE/i4UOpuCYX/nz3BWvVc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR02MB11606 X-Proofpoint-GUID: 3oRH6nuW2PB3xp_iStuKZbFsf-TlIe0x X-Proofpoint-Spam-Info: AW1haW4tMjYwNzI5MDA3MyBTYWx0ZWRfX1IZo5wlHYkE3 CCp1LMt7CRWPvHYhcH1/sXUuCC8TCXmRd5CN4BGOkiDtxCE+EnqNuMyJ634rc6SS9DrpqX8a25S uhaaXioOdNTmY+UJD8ZS2CYAgWFbNZM= X-Authority-Analysis: v=2.4 cv=faWdDUQF c=1 sm=1 tr=0 ts=6a69c10d cx=c_pps a=+WkigaN7fx4UYWmYucrQAQ==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=m3rDw_47mjERg_1OAhcA:9 X-Proofpoint-ORIG-GUID: 3oRH6nuW2PB3xp_iStuKZbFsf-TlIe0x X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzI5MDA3MyBTYWx0ZWRfX813nALbCXTPV Uh/MZnxtoXh1I6+z1YyETWbJawFurH/yj2t5YlSUc9i7/j9aEmSMAkL5jvlzuy3Nz9V3Ysq0z58 8kcEjgsVMReXBQ1mkr8yPD2Hl1i+gmq7NFwiIB5qQjHBPk9+3PiOA0tR000Lrq9kkdMeEuCHmTC l0WInnKiMfIPRTy2LOM+LFQFOA5ZlW5UR1SO/aVnfhOkifFbxMLLhxNatb0kVCg/Pl11ICJH84a eqKEi3nrjSvUrliyN0cfPLTsNMRDHVC6WkmpQhOHlfId3iID5mnIuWKre0BdKoYjOhmxyBdJmb9 xt+cNUE/6pwRk9pBESX2bXkfTodwwmHwlgRHlZA3U7jUOQLkNenZCDEgTvNbbNbMBZTo6sHiFAb wvBSiffYUoEruc0lFnFvhoo2gyYgJrJJS92xI+tzs5Kdg0obDu8TnPivI3D5w6HbQnhmvxa+UP+ LiMzvW62VK2uOm2JyYA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-29_03,2026-07-28_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Message-ID-Hash: SWP7YNNUYEMVBDOANCYGP7XIYTKNSRQL X-Message-ID-Hash: SWP7YNNUYEMVBDOANCYGP7XIYTKNSRQL X-MailFrom: abhisek.panda1@nutanix.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: tejus.gk@nutanix.com, mark.caveayland@nutanix.com, Abhisek Panda X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1785316215544158500 Content-Type: text/plain; charset="utf-8" In the case of TLS-PSK-enabled migration, Libvirt manages the lifecycle of the pre-shared key. Add a new test scenario to the migration cookie test suite to validate the generation of pre-shared key when the QEMU_MIGRATION_COOKIE_TLS_PSK flag is set. In addition, the test also checks the length and the hexadecimal encoding of the pre-shared key. Signed-off-by: Abhisek Panda --- tests/qemumigrationcookiexmltest.c | 123 +++++++++++++++++++++++++++++ tests/testutilsqemu.c | 12 +++ 2 files changed, 135 insertions(+) diff --git a/tests/qemumigrationcookiexmltest.c b/tests/qemumigrationcookie= xmltest.c index adf2eb4d08..0914793974 100644 --- a/tests/qemumigrationcookiexmltest.c +++ b/tests/qemumigrationcookiexmltest.c @@ -16,6 +16,7 @@ =20 #include =20 +#include #include =20 #include @@ -92,6 +93,99 @@ testQemuMigrationCookieDataFree(struct testQemuMigration= CookieData *data) } =20 =20 +static int +testQemuMigrationCookiePSKValidate(const char *key) +{ + g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(&driver); + size_t expected_key_len =3D 2 * cfg->migrateTLSPSKLength; /* The pre-s= hared key's length is 2 * PSK length */ + size_t i; + + if (!key) { + VIR_TEST_DEBUG("\nThe pre-shared key is not present in the migrati= on cookie."); + return -1; + } + + if (strlen(key) !=3D expected_key_len) { + VIR_TEST_DEBUG("\nThe length of the pre-shared key is incorrect."); + return -1; + } + + /* Check the characters of the key */ + for (i =3D 0; i < expected_key_len; i++) { + if (!g_ascii_isxdigit(key[i])) { + VIR_TEST_DEBUG("\nThe key contains non-hex characters"); + return -1; + } + } + + return 0; +} + + +static int +testQemuMigrationCookiePSKAttribute(const void *opaque) +{ + struct testQemuMigrationCookieData *data =3D (struct testQemuMigration= CookieData *) opaque; + g_autoptr(qemuMigrationCookie) cookie =3D NULL; + qemuDomainObjPrivate *priv; + + /* if the VM object parsing step failed there's nothing this test can = do */ + if (!data->vm) { + VIR_TEST_DEBUG("\nmissing VM object\n"); + return -1; + } + priv =3D data->vm->privateData; + + if (!(cookie =3D qemuMigrationCookieNew(data->vm->def, NULL))) + return -1; + + g_free(cookie->localHostname); + cookie->localHostname =3D g_strdup("hostname2"); + + if (virUUIDParse("8b3f4dc4-6a8e-5f9b-94a5-4c35babd8d95", cookie->local= Hostuuid) < 0) { + VIR_TEST_DEBUG("\nfailed to parse fake UUID"); + return -1; + } + + /* Format the migration cookie at the source */ + if (qemuMigrationCookieFormat(cookie, + &driver, + data->vm, + data->cookiePopulateParty, + &data->xmlstr, + &data->xmlstrlen, + data->cookiePopulateFlags) < 0) { + VIR_TEST_DEBUG("\nfailed to populate and format qemu migration coo= kie"); + return -1; + } + + /* Check for the element in the generated migration co= okie XML */ + if (!strstr(data->xmlstr, "")) { + VIR_TEST_DEBUG("\nthe migration cookie is missing the migration-ke= y element:\n%s\n", + data->xmlstr); + return -1; + } + + /* Parse the migration cookie at the destination */ + if (!(data->cookie =3D qemuMigrationCookieParse(&driver, + data->vm, + data->vm->def, + NULL, + priv->qemuCaps, + data->xmlstr, + data->xmlstrlen, + data->cookieParseFlags))= ) { + VIR_TEST_DEBUG("\nfailed to parse qemu migration cookie:\n%s\n", d= ata->xmlstr); + return -1; + } + + if (testQemuMigrationCookiePSKValidate(data->cookie->tlsPSK) < 0) + return -1; + + return 0; +} + + static int testQemuMigrationCookiePopulate(const void *opaque) { @@ -418,6 +512,32 @@ testQemuMigrationCookieXML2XMLBitmaps(const char *name, return ret; } =20 +/* tests the generation and persistence of the pre-shared keys */ +static int +testQemuMigrationCookiePSK(const char *domxml) +{ + struct testQemuMigrationCookieData *data =3D g_new0(struct testQemuMig= rationCookieData, 1); + int ret =3D 0; + + data->cookiePopulateFlags =3D QEMU_MIGRATION_COOKIE_TLS_PSK; + data->cookiePopulateParty =3D QEMU_MIGRATION_SOURCE; + data->cookieParseFlags =3D QEMU_MIGRATION_COOKIE_TLS_PSK; + data->inStatus =3D g_strconcat(abs_srcdir, "/", domxml, NULL); + + /* load status XML as domain object */ + if (testQemuMigrationCookieDomInit(data) < 0) + ret =3D -1; + + /* test PSK generation and persistence */ + if (virTestRun("qemumigrationcookie-psk-lifecycle", + testQemuMigrationCookiePSKAttribute, data) < 0) + ret =3D -1; + + testQemuMigrationCookieDataFree(data); + + return ret; +} + =20 static int mymain(void) @@ -448,6 +568,9 @@ mymain(void) if (testQemuMigrationCookieXML2XMLBitmaps("nbd-bitmaps", "qemustatusxm= l2xmldata/migration-out-nbd-bitmaps-in.xml", 0) < 0) ret =3D -1; =20 + if (testQemuMigrationCookiePSK("qemustatusxml2xmldata/modern-in.xml") = < 0) + ret =3D -1; + virBufferFreeAndReset(&testnamebuf); =20 cleanup: diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c index e5e3342b53..b0e0d41895 100644 --- a/tests/testutilsqemu.c +++ b/tests/testutilsqemu.c @@ -297,6 +297,7 @@ qemuTestCapsCacheInsert(virFileCache *cache, =20 #define STATEDIRTEMPLATE abs_builddir "/qemustatedir-XXXXXX" #define CONFIGDIRTEMPLATE abs_builddir "/qemuconfigdir-XXXXXX" +#define TLSPSKDIRTEMPLATE abs_builddir "/pskstatedir-XXXXXX" =20 int qemuTestDriverInit(virQEMUDriver *driver) { @@ -304,6 +305,7 @@ int qemuTestDriverInit(virQEMUDriver *driver) virSecurityManager *mgr =3D NULL; char statedir[] =3D STATEDIRTEMPLATE; char configdir[] =3D CONFIGDIRTEMPLATE; + char tlspskdir[] =3D TLSPSKDIRTEMPLATE; =20 memset(driver, 0, sizeof(*driver)); =20 @@ -328,6 +330,7 @@ int qemuTestDriverInit(virQEMUDriver *driver) * dirs. */ VIR_FREE(cfg->stateDir); VIR_FREE(cfg->configDir); + VIR_FREE(cfg->tlsPSKStateDir); =20 /* Override paths to ensure predictable output * @@ -367,6 +370,13 @@ int qemuTestDriverInit(virQEMUDriver *driver) =20 cfg->configDir =3D g_strdup(configdir); =20 + if (!g_mkdtemp(tlspskdir)) { + fprintf(stderr, "Cannot create fake tlsPSKStateDir"); + goto error; + } + + cfg->tlsPSKStateDir =3D g_strdup(tlspskdir); + driver->caps =3D testQemuCapsInit(); if (!driver->caps) goto error; @@ -433,6 +443,8 @@ int qemuTestDriverInit(virQEMUDriver *driver) =20 cfg->dumpGuestCore =3D false; =20 + cfg->migrateTLSPSKLength =3D 32; + driver->privileged =3D true; =20 return 0; --=20 2.43.7