From patchwork Thu Jan 23 14:51:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gokhan Cetin X-Patchwork-Id: 4032 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 23 Jan 2025 15:52:05 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-lf1-f62.google.com (mail-lf1-f62.google.com [209.85.167.62]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 50NEq4Cu008034 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 23 Jan 2025 15:52:05 +0100 Received: by mail-lf1-f62.google.com with SMTP id 2adb3069b0e04-53e1bddea1dsf640539e87.2 for ; Thu, 23 Jan 2025 06:52:05 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1737643919; cv=pass; d=google.com; s=arc-20240605; b=MV6L4nhzyaBVowQhJubFMqPN46j5jE0ry9iWgSdlTQO9zy+Vkd8ZySCuWH/aHVg1MD yTaJegrB3sb2mibCl8ckU8qBGPx/rde1moDZNJ8Qgxi8xlSniRxLzlRmENOodTSaoDNS WYelrndU78C1LNRUQ8r3Y8SBI9opiRRgKLI8vJMuqMNKmVlMzavIgsWmiy5X5w9GhSRo 9I9P0kABOZm4NpbOKZwUyI/9ICtqGLctdW+k1z8XcJeYq48XB2TzpV8RCOim7+d+UeBU ggb+gDTnJw1HX1Nj2hxPxiVRvI6axrPYNBeVcaV/KbFSSZZxUSWPPPoEhhB876tPdVKt uMfQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:feedback-id:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=oaXCbw7/3aowyvS6+U5V4n27uUmy+g75M6x7iMq60xQ=; fh=JPKk6mtFa8imJGSccLfhBQ2NIQH07LwhwrDY6xJ0uWk=; b=VCGkKs4ZEpdDYUsCK+t6/AHFsx26BMWDbMy/s4cH8sWGWY9QhNTDdRTl3fCucCCiwM 6y8rSXkZaEkFJfLXWlHOzPBl6twwTbX0bh36r5qIS0OfzpQTP4XSNj4snjE8ClcRkiWH scmf+nowGquE8xmWy+o8EvpAiYlay0fHkBJn5PSp0CGUsO5+nQ+MOs5yc4jZ4BnpVYoT IGRp9s8QJPYtgICLswdcbgn6U2RfNzbuV60fzvYsjfmqDshEo4ugbpstQOX+MB3sHl2U 4nad9NzNE87kYhWpdS6ohDt6IBTy9e2xgDUCK4ODiHDVwPxN7ulFUKVWGELW9TWBAnwZ y8xg==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=XRqPUjt0; spf=pass (google.com: domain of fm-1328731-202501231451547b8f8c186e3f95dca6-zazcji@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) smtp.mailfrom=fm-1328731-202501231451547b8f8c186e3f95dca6-ZAzCjI@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1737643919; x=1738248719; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=oaXCbw7/3aowyvS6+U5V4n27uUmy+g75M6x7iMq60xQ=; b=CAn2gw3OaNBSPsK04VSIw/Cujg8dgup++a5Q3AzHxD7uey4mcKWe1/d/y1qUpUnnHG Yl9HDjoj8IC85YbgbiGV0Snll9J/7AyLzrAx+J48N2axONdV48IzD4Jk9+/o4YbXtTvw Ep0a7Nf7nCfHV1NQCSEZ8mRn+Kbw76Gsf5hAlpO3RjRalEPbhLPXo7QIJAQwwlOapYS+ z/praX2INPv9vCn2BP1AwG6ahA3GLK6lPvtVibU8ZPYJnWYnu6pa4I4ku6mIr4n2AF2E OfE7yHZMl2F/dIspCJStDlR9KjpoikzKcpgHquUaJlJlPgILiqzRa5J6rRSGK56QuZ4G fI9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737643919; x=1738248719; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-beenthere:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=oaXCbw7/3aowyvS6+U5V4n27uUmy+g75M6x7iMq60xQ=; b=L+/Oup8JMLn+eT4wY6QR5hy/k6sNGv3nrji1jGwOtOoF0tDnVI1h09jVakbphYfeL8 IpJq3WtcMG96vseIo4/xauf268NdGaH7z7o4Oy0NGNAoqodBEo62rml4CnWSPjbfUEc3 eyLx/AljaKLwNlaHRzqH+NoQBYzB3j958AaRzrjKH780y3lMwENW082+dKaHtyKv2Vrd XVmYJcGsSJVd0DHJRHCMGxF2ftwdTX6rQCeXnTNKI8VJjfT7U+7e3SKkxda6HrqECDAm 1QL5cvTA4f1dHg1RzPWkPLNZJc277JU6K+b51cgCNnHBc9BMbX0nI+Da8JMGlkYOdV92 PyrA== X-Forwarded-Encrypted: i=2; AJvYcCURxDmOFbFDI8TiVS3QcU0liUVDX2Cr20Gztr2zja1hUz4/QL8Dt6WxX8ShOuuraA+a2J79lrs=@isar-build.org X-Gm-Message-State: AOJu0YzV31YX8UTXjEH1390pNILFW9IUHdeJyWsE9YJXFd1eSyfv1E4B 6f5ohhXiviAKjHzUY3xBmnDiYIuWc9XvFzFtLqMNfr3+TExJYXFq X-Google-Smtp-Source: AGHT+IFmvst0q+hu75tdpX5YdOwiEu6cpY1yWSngsXZHmRtcu0AW115tPOqQwVbuUdV6gTfsfgRtwQ== X-Received: by 2002:a05:6512:3e03:b0:540:1f7d:8bc0 with SMTP id 2adb3069b0e04-5439c287470mr10273853e87.49.1737643917759; Thu, 23 Jan 2025 06:51:57 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:651c:221d:b0:300:40ad:298f with SMTP id 38308e7fff4ca-30761c5e062ls234351fa.0.-pod-prod-02-eu; Thu, 23 Jan 2025 06:51:55 -0800 (PST) X-Received: by 2002:a2e:bd89:0:b0:300:33b1:f0e1 with SMTP id 38308e7fff4ca-3072c991370mr95317291fa.0.1737643915421; Thu, 23 Jan 2025 06:51:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1737643915; cv=none; d=google.com; s=arc-20240605; b=bfvmP0bnONtYDqFoxvajzSsmD5C8RVOmh1ijSxjYcnglis7kLEtZmtgjv90JDvnk7+ 1G8c3itaka+02AJzIZgaOwqIJWP1BTwf4YusK716vWSqUK/GADpBVgXHHzMUvqoNTP2H cbSU45PTa1MJr6n/Ax3e8+K7bNx3xdSNqVhYqtS7sySeqwOYJSTo/qpNhPZl/bxNKlDd TTEooCPBU+rmwYl/UN6/rUEZuHF6v2bYAS3jUpnaorj7vof7zN7vNuhYz+VvjZvGdlaq KyKUNe9oCQcTcwaRwKJ++ZM1Yd/BlhQvZXQ6y/ZBd5yGQAmBHG7jsY9CJQWBMmB5cwkN mwVg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=feedback-id:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=wqdXGe+xXRCFkBbh0/HKCDXeKeZXMK1C85uKWi03SS8=; fh=vM67Djwl41RMMQGrNcTm06QnRkAhOnQjK4pKA7dIR+w=; b=QrV/kCktvFmyOLJZZuB+zg4HcsDCjcPMLUrvwfzgEduZjtk6DrqnwfsQNNrUE8j8HT +Z/ORa3KJi2x23DG9vJQYI+P2z3W5+06RraFkfA+WD7yexNxYV6skzs/Z7TpXf1JumX8 UTGA7ow/6P6SjCsNcqt+mxpmcrUmChG9EbDlMAVDnzdqjLhHDOLu3qf12qE5h2TgmYvo CX9tnIXVTa43t5SVFykC0JBPtmO27yUqnNb135mkQIuKtiUAom5kYLPvQOH2cqxrhNIw RRp/xJbAwwsTqWMz5GEybRLsFfU8k/Re03aoPg19am7hPnVgB0nGGFSMxjWtqVU+AMqK D1Ew==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=XRqPUjt0; spf=pass (google.com: domain of fm-1328731-202501231451547b8f8c186e3f95dca6-zazcji@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) smtp.mailfrom=fm-1328731-202501231451547b8f8c186e3f95dca6-ZAzCjI@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from mta-64-227.siemens.flowmailer.net (mta-64-227.siemens.flowmailer.net. [185.136.64.227]) by gmr-mx.google.com with ESMTPS id 38308e7fff4ca-3072a2725f0si2566141fa.0.2025.01.23.06.51.55 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 Jan 2025 06:51:55 -0800 (PST) Received-SPF: pass (google.com: domain of fm-1328731-202501231451547b8f8c186e3f95dca6-zazcji@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) client-ip=185.136.64.227; Received: by mta-64-227.siemens.flowmailer.net with ESMTPSA id 202501231451547b8f8c186e3f95dca6 for ; Thu, 23 Jan 2025 15:51:54 +0100 X-Patchwork-Original-From: "'Gokhan Cetin' via isar-users" From: Gokhan Cetin To: isar-users@googlegroups.com Cc: gokhan.cetin@siemens.com, felix.moessbauer@siemens.com Subject: [PATCH 2/3] module-signer-example: add example signer hook and signed variant for example-module Date: Thu, 23 Jan 2025 15:51:30 +0100 Message-Id: <20250123145131.1142290-3-gokhan.cetin@siemens.com> In-Reply-To: <20250123145131.1142290-1-gokhan.cetin@siemens.com> References: <20250123145131.1142290-1-gokhan.cetin@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-1328731:519-21489:flowmailer X-Original-Sender: gokhan.cetin@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=XRqPUjt0; spf=pass (google.com: domain of fm-1328731-202501231451547b8f8c186e3f95dca6-zazcji@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) smtp.mailfrom=fm-1328731-202501231451547b8f8c186e3f95dca6-ZAzCjI@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Gokhan Cetin Reply-To: Gokhan Cetin Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Status: No, score=-4.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,RCVD_IN_RP_CERTIFIED, RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= This patch introduces an example signer hook that generates raw detached signatures for out-of-tree kernel modules. Signed-off-by: Gokhan Cetin --- .../files/sign-module.sh | 40 +++++++++++++++++++ .../module-signer-example.bb | 20 ++++++++++ .../example-module-signedwith.bb | 15 +++++++ 3 files changed, 75 insertions(+) create mode 100644 meta-isar/recipes-devtools/module-signer-example/files/sign-module.sh create mode 100644 meta-isar/recipes-devtools/module-signer-example/module-signer-example.bb create mode 100644 meta-isar/recipes-kernel/example-module/example-module-signedwith.bb diff --git a/meta-isar/recipes-devtools/module-signer-example/files/sign-module.sh b/meta-isar/recipes-devtools/module-signer-example/files/sign-module.sh new file mode 100644 index 00000000..4d22532b --- /dev/null +++ b/meta-isar/recipes-devtools/module-signer-example/files/sign-module.sh @@ -0,0 +1,40 @@ +#!/bin/sh +# +# Example signer script that generates detached signatures for modules +# +# This software is a part of ISAR. +# Copyright (c) Siemens AG, 2025 +# +# SPDX-License-Identifier: MIT + +set -e + +module=$1 +signature=$2 +hashfn=$3 +certfile=$4 + +if [ -z "$module" ] || [ -z "$signature" ] || [ -z "$hashfn" ] || [ -z "$certfile" ] ; then + exit 1 +fi + +echo "Signing module $module with hash function $hashfn and certificate $certfile" + +openssl smime -sign -nocerts -noattr -binary \ + -in "$module" \ + -md "$hashfn" \ + -inkey /etc/sb-mok-keys/MOK/MOK.priv \ + -signer /etc/sb-mok-keys/MOK/MOK.der \ + -outform DER \ + -out "$signature" + +echo "Verifying signature of module $module with hash function $hashfn and certificate $certfile" + +openssl smime -verify \ + -in "$signature" \ + -md "$hashfn" \ + -content "$module" \ + -certfile /etc/sb-mok-keys/MOK/MOK.der \ + -noverify \ + -inform DER \ + -out /dev/null diff --git a/meta-isar/recipes-devtools/module-signer-example/module-signer-example.bb b/meta-isar/recipes-devtools/module-signer-example/module-signer-example.bb new file mode 100644 index 00000000..001e8cc8 --- /dev/null +++ b/meta-isar/recipes-devtools/module-signer-example/module-signer-example.bb @@ -0,0 +1,20 @@ +# Example recipe for signing a kernel module with custom signer script +# +# This software is a part of ISAR. +# Copyright (c) Siemens AG, 2025 +# +# SPDX-License-Identifier: MIT + +inherit dpkg-raw + +DPKG_ARCH = "all" + +DEPENDS = "sb-mok-keys" +DEBIAN_DEPENDS += "openssl, sb-mok-keys" + +SRC_URI = "file://sign-module.sh" + +do_install[cleandirs] = "${D}/usr/bin/" +do_install() { + install -m 0755 ${WORKDIR}/sign-module.sh ${D}/usr/bin/sign-module.sh +} diff --git a/meta-isar/recipes-kernel/example-module/example-module-signedwith.bb b/meta-isar/recipes-kernel/example-module/example-module-signedwith.bb new file mode 100644 index 00000000..f611169c --- /dev/null +++ b/meta-isar/recipes-kernel/example-module/example-module-signedwith.bb @@ -0,0 +1,15 @@ +# Example recipe for building a custom module +# +# This software is a part of ISAR. +# Copyright (c) Siemens AG, 2025 +# +# SPDX-License-Identifier: MIT + +require example-module.bb + +DEPENDS += "module-signer-example" +DEBIAN_BUILD_DEPENDS .= ', module-signer-example' + +DEB_BUILD_PROFILES += 'pkg.signwith' +SIGNATURE_CERTFILE = '/etc/sb-mok-keys/MOK/MOK.der' +SIGNATURE_SIGNWITH = '/usr/bin/sign-module.sh'