From nobody Mon Feb 9 17:21:37 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 32E33C7618A for ; Mon, 20 Mar 2023 18:51:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229983AbjCTSvO (ORCPT ); Mon, 20 Mar 2023 14:51:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56084 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229833AbjCTSud (ORCPT ); Mon, 20 Mar 2023 14:50:33 -0400 Received: from mail-pj1-x1033.google.com (mail-pj1-x1033.google.com [IPv6:2607:f8b0:4864:20::1033]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B45222A6E4 for ; Mon, 20 Mar 2023 11:43:54 -0700 (PDT) Received: by mail-pj1-x1033.google.com with SMTP id mp3-20020a17090b190300b0023fcc8ce113so2606909pjb.4 for ; Mon, 20 Mar 2023 11:43:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679337831; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=i/r1WlIiwVQzbXgHldnF4Wyr/f+kJm7/RhfD8t1T97c=; b=mvbc+KbAMV/2CYl45Ep+u6Q2GvoOIngEB6TEM6uObxZ1l9LhmFGS/vYhcWCFXB+62a 1H9fbnKZMWNAFarKloOjJQ/EuIA2BPO+8woH/1JMIuS6+w2b2P8fiMh0ISgh+xH42DYI WvySWaRxxzeHv2mFhcB95+MjSKNembpqTqbcR5YNeSPzlMs5bqYAvYXMIDVSFtQU3hYT NXaBHOTW1m8LyCiqSe+wTpD9mi0lLzgVlmFxiGkac81vrngzHl/RismDbLMFz3apDuzb pMnpfVvYces3gYbBX7xt0O6sVXg67e8vyaWKTcxgtiO52e8TUzmgQeDokGpVRhN8gJ+r Hpzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679337831; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=i/r1WlIiwVQzbXgHldnF4Wyr/f+kJm7/RhfD8t1T97c=; b=o4+W/I9QM0ZVo8cwVnzu/+/s70PmkcsY7BWQaFVTe58LKiitLPNxl5jLr8y6yhjK6V dsk5OFm/W2w4NVxnWYMzf1k1vRd6x0svtPSW4T3wnoJKEu9iFljVgFe5lVKzvxhvD4Lj DqHrj9EybDEntMt5YjGXHGZZz5IWvIfCdLjzglRGvHPUACAYCXjrWTv9gONzpOWNjV+g SClvA4O8h866lo4yWOsSEX0NFqbEpdiLU3+moR/+uC2osKk6l+6FdNfUDXgQtvTVW07M g/D+U6VhdTuOKybm0UXDUSd7BvWxG6ky6e568PcLfAQyB7c9uatOV8Qx12c7Rpc8dVbC MKlw== X-Gm-Message-State: AO0yUKXOhZN9UwGHT+JEXfRakONPOJTLmOzl/Wn5/2gVBOrUpKU7GsA5 cK0qk2L9NmPa2Gvos7NwKOE= X-Google-Smtp-Source: AK7set+gGl1cK14wvEC4/nuXvETShSMERUnMhwWKDTROGbPtEbeARpIrfwzUGma7QwDeqJwB9hDZwg== X-Received: by 2002:a05:6a20:8407:b0:d5:ac2b:7e01 with SMTP id c7-20020a056a20840700b000d5ac2b7e01mr24438707pzd.34.1679337831136; Mon, 20 Mar 2023 11:43:51 -0700 (PDT) Received: from f37.eng.vmware.com ([66.170.99.1]) by smtp.googlemail.com with ESMTPSA id bn10-20020a056a00324a00b005a84ef49c63sm6671755pfb.214.2023.03.20.11.43.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Mar 2023 11:43:50 -0700 (PDT) From: Shreenidhi Shedi X-Google-Original-From: Shreenidhi Shedi To: gregkh@linuxfoundation.org, dhowells@redhat.com, dwmw2@infradead.org Cc: yesshedi@gmail.com, linux-kernel@vger.kernel.org, sshedi@vmware.com Subject: [PATCH v5 1/7] sign-file: refactor argument parsing logic - 1 Date: Tue, 21 Mar 2023 00:13:39 +0530 Message-Id: <20230320184345.80166-2-sshedi@vmware.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230320184345.80166-1-sshedi@vmware.com> References: <20230320184345.80166-1-sshedi@vmware.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Shreenidhi Shedi - Use getopt_long_only for parsing input args - Use more easy to remember command line argument names Signed-off-by: Shreenidhi Shedi --- scripts/sign-file.c | 97 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 78 insertions(+), 19 deletions(-) diff --git a/scripts/sign-file.c b/scripts/sign-file.c index 598ef5465f82..94228865b6cc 100644 --- a/scripts/sign-file.c +++ b/scripts/sign-file.c @@ -213,15 +213,77 @@ static X509 *read_x509(const char *x509_name) return x509; } =20 +struct cmd_opts { + char *raw_sig_name; + bool save_sig; + bool replace_orig; + bool raw_sig; + bool sign_only; +#ifndef USE_PKCS7 + unsigned int use_keyid; +#endif +}; + +static void parse_args(int argc, char **argv, struct cmd_opts *opts) +{ + struct option cmd_options[] =3D { + {"rawsig", required_argument, 0, 's'}, + {"savesig", no_argument, 0, 'p'}, + {"signonly", no_argument, 0, 'd'}, +#ifndef USE_PKCS7 + {"usekeyid", no_argument, 0, 'k'}, +#endif + {0, 0, 0, 0} + }; + + int opt; + int opt_index =3D 0; + + do { +#ifndef USE_PKCS7 + opt =3D getopt_long_only(argc, argv, "pds:", + cmd_options, &opt_index); +#else + opt =3D getopt_long_only(argc, argv, "pdks:", + cmd_options, &opt_index); +#endif + switch (opt) { + case 's': + opts->raw_sig =3D true; + opts->raw_sig_name =3D optarg; + break; + + case 'p': + opts->save_sig =3D true; + break; + + case 'd': + opts->sign_only =3D true; + opts->save_sig =3D true; + break; + +#ifndef USE_PKCS7 + case 'k': + opts->use_keyid =3D CMS_USE_KEYID; + break; +#endif + + case -1: + break; + + default: + format(); + break; + } + } while (opt !=3D -1); +} + int main(int argc, char **argv) { struct module_signature sig_info =3D { .id_type =3D PKEY_ID_PKCS7 }; char *hash_algo =3D NULL; - char *private_key_name =3D NULL, *raw_sig_name =3D NULL; + char *private_key_name =3D NULL; char *x509_name, *module_name, *dest_name; - bool save_sig =3D false, replace_orig; - bool sign_only =3D false; - bool raw_sig =3D false; unsigned char buf[4096]; unsigned long module_size, sig_size; unsigned int use_signed_attrs; @@ -229,13 +291,14 @@ int main(int argc, char **argv) EVP_PKEY *private_key; #ifndef USE_PKCS7 CMS_ContentInfo *cms =3D NULL; - unsigned int use_keyid =3D 0; #else PKCS7 *pkcs7 =3D NULL; #endif X509 *x509; BIO *bd, *bm; - int opt, n; + int n; + struct cmd_opts opts =3D {}; + OpenSSL_add_all_algorithms(); ERR_load_crypto_strings(); ERR_clear_error(); @@ -247,23 +310,19 @@ int main(int argc, char **argv) #else use_signed_attrs =3D PKCS7_NOATTR; #endif + parse_args(argc, argv, &opts); + argc -=3D optind; + argv +=3D optind; =20 - do { - opt =3D getopt(argc, argv, "sdpk"); - switch (opt) { - case 's': raw_sig =3D true; break; - case 'p': save_sig =3D true; break; - case 'd': sign_only =3D true; save_sig =3D true; break; + const char *raw_sig_name =3D opts.raw_sig_name; + const bool save_sig =3D opts.save_sig; + const bool raw_sig =3D opts.raw_sig; + const bool sign_only =3D opts.sign_only; + bool replace_orig =3D opts.replace_orig; #ifndef USE_PKCS7 - case 'k': use_keyid =3D CMS_USE_KEYID; break; + const unsigned int use_keyid =3D opts.use_keyid; #endif - case -1: break; - default: format(); - } - } while (opt !=3D -1); =20 - argc -=3D optind; - argv +=3D optind; if (argc < 4 || argc > 5) format(); =20 --=20 2.39.2 From nobody Mon Feb 9 17:21:37 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1D880C7618A for ; Mon, 20 Mar 2023 18:51:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229733AbjCTSvS (ORCPT ); Mon, 20 Mar 2023 14:51:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34118 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229901AbjCTSud (ORCPT ); Mon, 20 Mar 2023 14:50:33 -0400 Received: from mail-pl1-x62b.google.com (mail-pl1-x62b.google.com [IPv6:2607:f8b0:4864:20::62b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0A5513867A for ; Mon, 20 Mar 2023 11:43:54 -0700 (PDT) Received: by mail-pl1-x62b.google.com with SMTP id z19so3103667plo.2 for ; Mon, 20 Mar 2023 11:43:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679337832; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VoVIua9utDq11xAPsz5lSfVj7QXIQk5YJj7MGTjSPUg=; b=S7lLpFUtP2nHQ4E9fU47Ou5G1TRLBMNz5zrzIZ76O/iHBPRboArsj4HxwHT0k1my+W +lRbp0V5h2uxN3bjcxH5ImzETELMwRisT3NjXv4vbNAmEyNtiahLhjshccIPfN+Lj24L iWw+1z1TH5vR1Q5pqgEjZZXRgAYT8s5KwXXAFk+gq+hDXZZcCUtdrZYO3STiOvoiODxA qpsIrd/btUAzvq95RIpDUEqSVn02USALrK3fvjFxGKYNFwL4Ng/kKNgdWyvsgl7GooIr mCaRDTl28biQsJt32YWQ5pXhwN3/G/zeq0+9CRtXbmQ57glb0JfNSqvO9gy2FCiCmrBE kF+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679337832; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VoVIua9utDq11xAPsz5lSfVj7QXIQk5YJj7MGTjSPUg=; b=yvd/3CbbFXkZ4vKeu4smRAkb9hfRQZchvZkDc7eA1bqcESmM3qXMPcHTF3rADB6fTG mWdaZy674PYpcWWOFLoQXNjF2W3i15dqc0LGSop+02UPrXGcu2DaMGvNzzmKTCDlaVHO DEWo/MjkUCGXGIZuoW8/8/MuGoFo+q2TolWnk+Vwr5/I3zJIl4W+OusLhjGUir+kxeYC Rl9ARm9uBk7vEV373fUdFSxpy804EAgZYVsMCDaUs7Rrw9U6Xc2UvB4LmkcdzO3kHx8u Mtu8ltQq80UdTG2k8cvL2IelMk0KAIccIosyeiWtEmgpRxyjx4l7/Up/ObDp0m0PZe3a qnwA== X-Gm-Message-State: AO0yUKW1qDU+xzqWR2hSsuvN/P6kA3brtRmTvTM41MkWIL2+AjZvUT9t Yzz9NYQthhRBu+emqueLSaI= X-Google-Smtp-Source: AK7set8cQg4tyRhWGXoyflSi8jTlBcl2YHmpCbCOYlNvcIly9AJTLTqzCikfsKQS7TVDExTk/HFifA== X-Received: by 2002:a05:6a20:2098:b0:d9:dd69:47e3 with SMTP id b24-20020a056a20209800b000d9dd6947e3mr2385516pza.23.1679337832331; Mon, 20 Mar 2023 11:43:52 -0700 (PDT) Received: from f37.eng.vmware.com ([66.170.99.1]) by smtp.googlemail.com with ESMTPSA id bn10-20020a056a00324a00b005a84ef49c63sm6671755pfb.214.2023.03.20.11.43.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Mar 2023 11:43:52 -0700 (PDT) From: Shreenidhi Shedi X-Google-Original-From: Shreenidhi Shedi To: gregkh@linuxfoundation.org, dhowells@redhat.com, dwmw2@infradead.org Cc: yesshedi@gmail.com, linux-kernel@vger.kernel.org, sshedi@vmware.com Subject: [PATCH v5 2/7] sign-file: refactor argument parsing logic - 2 Date: Tue, 21 Mar 2023 00:13:40 +0530 Message-Id: <20230320184345.80166-3-sshedi@vmware.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230320184345.80166-1-sshedi@vmware.com> References: <20230320184345.80166-1-sshedi@vmware.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Shreenidhi Shedi Introduce few new flags to make argument processing easy. Also makes it easy to remember the options. Signed-off-by: Shreenidhi Shedi --- scripts/sign-file.c | 63 ++++++++++++++++++++++++++++++++------------- 1 file changed, 45 insertions(+), 18 deletions(-) diff --git a/scripts/sign-file.c b/scripts/sign-file.c index 94228865b6cc..b0f340ea629b 100644 --- a/scripts/sign-file.c +++ b/scripts/sign-file.c @@ -215,6 +215,11 @@ static X509 *read_x509(const char *x509_name) =20 struct cmd_opts { char *raw_sig_name; + char *hash_algo; + char *dest_name; + char *private_key_name; + char *x509_name; + char *module_name; bool save_sig; bool replace_orig; bool raw_sig; @@ -233,6 +238,12 @@ static void parse_args(int argc, char **argv, struct c= md_opts *opts) #ifndef USE_PKCS7 {"usekeyid", no_argument, 0, 'k'}, #endif + {"help", no_argument, 0, 'h'}, + {"privkey", required_argument, 0, 'i'}, + {"hashalgo", required_argument, 0, 'a'}, + {"x509", required_argument, 0, 'x'}, + {"dest", required_argument, 0, 'd'}, + {"replaceorig", required_argument, 0, 'r'}, {0, 0, 0, 0} }; =20 @@ -241,10 +252,10 @@ static void parse_args(int argc, char **argv, struct = cmd_opts *opts) =20 do { #ifndef USE_PKCS7 - opt =3D getopt_long_only(argc, argv, "pds:", + opt =3D getopt_long_only(argc, argv, "hpds:i:a:x:t:r:", cmd_options, &opt_index); #else - opt =3D getopt_long_only(argc, argv, "pdks:", + opt =3D getopt_long_only(argc, argv, "hpdks:i:a:x:t:r:", cmd_options, &opt_index); #endif switch (opt) { @@ -268,6 +279,30 @@ static void parse_args(int argc, char **argv, struct c= md_opts *opts) break; #endif =20 + case 'h': + format(); + break; + + case 'i': + opts->private_key_name =3D optarg; + break; + + case 'a': + opts->hash_algo =3D optarg; + break; + + case 'x': + opts->x509_name =3D optarg; + break; + + case 't': + opts->dest_name =3D optarg; + break; + + case 'r': + opts->replace_orig =3D true; + break; + case -1: break; =20 @@ -281,9 +316,6 @@ static void parse_args(int argc, char **argv, struct cm= d_opts *opts) int main(int argc, char **argv) { struct module_signature sig_info =3D { .id_type =3D PKEY_ID_PKCS7 }; - char *hash_algo =3D NULL; - char *private_key_name =3D NULL; - char *x509_name, *module_name, *dest_name; unsigned char buf[4096]; unsigned long module_size, sig_size; unsigned int use_signed_attrs; @@ -315,32 +347,27 @@ int main(int argc, char **argv) argv +=3D optind; =20 const char *raw_sig_name =3D opts.raw_sig_name; + const char *hash_algo =3D opts.hash_algo; + const char *private_key_name =3D opts.private_key_name; + const char *x509_name =3D opts.x509_name; + const char *module_name =3D opts.module_name; const bool save_sig =3D opts.save_sig; const bool raw_sig =3D opts.raw_sig; const bool sign_only =3D opts.sign_only; bool replace_orig =3D opts.replace_orig; + char *dest_name =3D opts.dest_name; #ifndef USE_PKCS7 const unsigned int use_keyid =3D opts.use_keyid; #endif =20 - if (argc < 4 || argc > 5) + if (!argv[0] || argc !=3D 1) format(); =20 - if (raw_sig) { - raw_sig_name =3D argv[0]; - hash_algo =3D argv[1]; - } else { - hash_algo =3D argv[0]; - private_key_name =3D argv[1]; - } - x509_name =3D argv[2]; - module_name =3D argv[3]; - if (argc =3D=3D 5 && strcmp(argv[3], argv[4]) !=3D 0) { - dest_name =3D argv[4]; + if (dest_name && strcmp(argv[0], dest_name)) { replace_orig =3D false; } else { ERR(asprintf(&dest_name, "%s.~signed~", module_name) < 0, - "asprintf"); + "asprintf"); replace_orig =3D true; } =20 --=20 2.39.2 From nobody Mon Feb 9 17:21:37 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id F0A38C7618A for ; Mon, 20 Mar 2023 18:51:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229892AbjCTSvD (ORCPT ); Mon, 20 Mar 2023 14:51:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59544 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231829AbjCTSu2 (ORCPT ); Mon, 20 Mar 2023 14:50:28 -0400 Received: from mail-pg1-x52e.google.com (mail-pg1-x52e.google.com [IPv6:2607:f8b0:4864:20::52e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B401F24BDB for ; Mon, 20 Mar 2023 11:43:54 -0700 (PDT) Received: by mail-pg1-x52e.google.com with SMTP id t83so7186043pgb.11 for ; Mon, 20 Mar 2023 11:43:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679337834; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=RgmNLjr3I8OPOH6tQ35q/VFjCbXwlCYLA+AOAf0ZDi4=; b=fKff6hTt8n32EfN8bedX2UgaiXCP1uIZOWEecNxcz7LVGtq4gxM7Df5B5UIBaWG7DY Mwa3Nuz3Uo0vYMc6j/cVgaPpb0aqUjb0MqqXA/CAT43/LAyHDhNYEBXMYB3aGV7PlNaK SDWJU9cmaqGfxgmOh6dRzFw0qxjPdAOZOc7Dp8YB5o6la3J1zl66mcoIloIWxsmh4DNg fl1kDgfBZs3aIsGL0KRNPTcwAk/4GlaDSt9os7nzdyXj62UP88DUAEWbK2OeqHT2jTNJ 1SzpVSLJ9XLcPDggizWQzWPkeSyD2SadZ41/gPwa2Z2IqWeCtYW9cJ/C82JA+wX7seeb fY1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679337834; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RgmNLjr3I8OPOH6tQ35q/VFjCbXwlCYLA+AOAf0ZDi4=; b=1xMTEgmvktkrFAPySdB7EgqSY02dB7Z8JxFZ7/ldDVLmGuGOHuCFClxaXlGu/osHVN COskubA9dyJiSNYp8UJCzCJJzrt9rSdjSeaoSdGu+PcM/hKplxwPOF3bOzA1xrXyPpdF GXpzr9iKBfMzYjw/Zbe7Ub1xtbEP1C6wuzLaCt5KRoHfCLa9XUZSms/2RlyKmbfB02bt wISYfT6rgpZ1E/rsUsJw1v+DLZten1Z/750DZBlG4WBqbJ53MSHzSbaUAp6UiXrHqtu/ r3mrYBw53kcTE90ooM8CAhnxel481g/kOMv22UJEJWqtpPBVlw+FTEtkTWotwyALoLb2 dvuA== X-Gm-Message-State: AO0yUKWwH0U6PlT0fqNhQSCrxPTsJAWavJKAhwfGFBjo/MuiHqcJ8cSH DhYWEPLtUs+TMig0JHPjweTZ+/jt0T+Thg== X-Google-Smtp-Source: AK7set8OB/kh0nyfBll2IAvSxHJEOhv09GxalZZoeJBPk7Zg1iOcQOB4UIGOxDo4bGnUfRbRS1uklg== X-Received: by 2002:a62:58c3:0:b0:627:ff1d:db6d with SMTP id m186-20020a6258c3000000b00627ff1ddb6dmr2695186pfb.21.1679337833793; Mon, 20 Mar 2023 11:43:53 -0700 (PDT) Received: from f37.eng.vmware.com ([66.170.99.1]) by smtp.googlemail.com with ESMTPSA id bn10-20020a056a00324a00b005a84ef49c63sm6671755pfb.214.2023.03.20.11.43.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Mar 2023 11:43:53 -0700 (PDT) From: Shreenidhi Shedi X-Google-Original-From: Shreenidhi Shedi To: gregkh@linuxfoundation.org, dhowells@redhat.com, dwmw2@infradead.org Cc: yesshedi@gmail.com, linux-kernel@vger.kernel.org, sshedi@vmware.com Subject: [PATCH v5 3/7] sign-file: refactor argument parsing logic - 3 Date: Tue, 21 Mar 2023 00:13:41 +0530 Message-Id: <20230320184345.80166-4-sshedi@vmware.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230320184345.80166-1-sshedi@vmware.com> References: <20230320184345.80166-1-sshedi@vmware.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Shreenidhi Shedi Move file signing logic to its own function Keep the main function bare minimal and do less in main function. This patch is pre-work for bulk module signing support. Signed-off-by: Shreenidhi Shedi --- scripts/sign-file.c | 115 +++++++++++++++++++++----------------------- 1 file changed, 54 insertions(+), 61 deletions(-) diff --git a/scripts/sign-file.c b/scripts/sign-file.c index b0f340ea629b..64d5e00f08e2 100644 --- a/scripts/sign-file.c +++ b/scripts/sign-file.c @@ -313,10 +313,10 @@ static void parse_args(int argc, char **argv, struct = cmd_opts *opts) } while (opt !=3D -1); } =20 -int main(int argc, char **argv) +static int sign_single_file(struct cmd_opts *opts) { struct module_signature sig_info =3D { .id_type =3D PKEY_ID_PKCS7 }; - unsigned char buf[4096]; + unsigned char buf[4096] =3D {}; unsigned long module_size, sig_size; unsigned int use_signed_attrs; const EVP_MD *digest_algo; @@ -329,11 +329,6 @@ int main(int argc, char **argv) X509 *x509; BIO *bd, *bm; int n; - struct cmd_opts opts =3D {}; - - OpenSSL_add_all_algorithms(); - ERR_load_crypto_strings(); - ERR_clear_error(); =20 key_pass =3D getenv("KBUILD_SIGN_PIN"); =20 @@ -342,34 +337,6 @@ int main(int argc, char **argv) #else use_signed_attrs =3D PKCS7_NOATTR; #endif - parse_args(argc, argv, &opts); - argc -=3D optind; - argv +=3D optind; - - const char *raw_sig_name =3D opts.raw_sig_name; - const char *hash_algo =3D opts.hash_algo; - const char *private_key_name =3D opts.private_key_name; - const char *x509_name =3D opts.x509_name; - const char *module_name =3D opts.module_name; - const bool save_sig =3D opts.save_sig; - const bool raw_sig =3D opts.raw_sig; - const bool sign_only =3D opts.sign_only; - bool replace_orig =3D opts.replace_orig; - char *dest_name =3D opts.dest_name; -#ifndef USE_PKCS7 - const unsigned int use_keyid =3D opts.use_keyid; -#endif - - if (!argv[0] || argc !=3D 1) - format(); - - if (dest_name && strcmp(argv[0], dest_name)) { - replace_orig =3D false; - } else { - ERR(asprintf(&dest_name, "%s.~signed~", module_name) < 0, - "asprintf"); - replace_orig =3D true; - } =20 #ifdef USE_PKCS7 if (strcmp(hash_algo, "sha1") !=3D 0) { @@ -380,20 +347,20 @@ int main(int argc, char **argv) #endif =20 /* Open the module file */ - bm =3D BIO_new_file(module_name, "rb"); - ERR(!bm, "%s", module_name); + bm =3D BIO_new_file(opts->module_name, "rb"); + ERR(!bm, "%s", opts->module_name); =20 - if (!raw_sig) { + if (!opts->raw_sig) { /* Read the private key and the X.509 cert the PKCS#7 message * will point to. */ - private_key =3D read_private_key(private_key_name); - x509 =3D read_x509(x509_name); + private_key =3D read_private_key(opts->private_key_name); + x509 =3D read_x509(opts->x509_name); =20 /* Digest the module data. */ OpenSSL_add_all_digests(); display_openssl_errors(__LINE__); - digest_algo =3D EVP_get_digestbyname(hash_algo); + digest_algo =3D EVP_get_digestbyname(opts->hash_algo); ERR(!digest_algo, "EVP_get_digestbyname"); =20 #ifndef USE_PKCS7 @@ -405,7 +372,7 @@ int main(int argc, char **argv) =20 ERR(!CMS_add1_signer(cms, x509, private_key, digest_algo, CMS_NOCERTS | CMS_BINARY | - CMS_NOSMIMECAP | use_keyid | + CMS_NOSMIMECAP | opts->use_keyid | use_signed_attrs), "CMS_add1_signer"); ERR(CMS_final(cms, bm, NULL, CMS_NOCERTS | CMS_BINARY) < 0, @@ -418,11 +385,11 @@ int main(int argc, char **argv) ERR(!pkcs7, "PKCS7_sign"); #endif =20 - if (save_sig) { + if (opts->save_sig) { char *sig_file_name; BIO *b; =20 - ERR(asprintf(&sig_file_name, "%s.p7s", module_name) < 0, + ERR(asprintf(&sig_file_name, "%s.p7s", opts->module_name) < 0, "asprintf"); b =3D BIO_new_file(sig_file_name, "wb"); ERR(!b, "%s", sig_file_name); @@ -436,7 +403,7 @@ int main(int argc, char **argv) BIO_free(b); } =20 - if (sign_only) { + if (opts->sign_only) { BIO_free(bm); return 0; } @@ -445,24 +412,24 @@ int main(int argc, char **argv) /* Open the destination file now so that we can shovel the module data * across as we read it. */ - bd =3D BIO_new_file(dest_name, "wb"); - ERR(!bd, "%s", dest_name); + bd =3D BIO_new_file(opts->dest_name, "wb"); + ERR(!bd, "%s", opts->dest_name); =20 /* Append the marker and the PKCS#7 message to the destination file */ - ERR(BIO_reset(bm) < 0, "%s", module_name); + ERR(BIO_reset(bm) < 0, "%s", opts->module_name); while ((n =3D BIO_read(bm, buf, sizeof(buf))), n > 0) { - ERR(BIO_write(bd, buf, n) < 0, "%s", dest_name); + ERR(BIO_write(bd, buf, n) < 0, "%s", opts->dest_name); } BIO_free(bm); - ERR(n < 0, "%s", module_name); + ERR(n < 0, "%s", opts->module_name); module_size =3D BIO_number_written(bd); =20 - if (!raw_sig) { + if (!opts->raw_sig) { #ifndef USE_PKCS7 - ERR(i2d_CMS_bio_stream(bd, cms, NULL, 0) < 0, "%s", dest_name); + ERR(i2d_CMS_bio_stream(bd, cms, NULL, 0) < 0, "%s", opts->dest_name); #else - ERR(i2d_PKCS7_bio(bd, pkcs7) < 0, "%s", dest_name); + ERR(i2d_PKCS7_bio(bd, pkcs7) < 0, "%s", opts->dest_name); #endif } else { BIO *b; @@ -470,23 +437,49 @@ int main(int argc, char **argv) /* Read the raw signature file and write the data to the * destination file */ - b =3D BIO_new_file(raw_sig_name, "rb"); - ERR(!b, "%s", raw_sig_name); + b =3D BIO_new_file(opts->raw_sig_name, "rb"); + ERR(!b, "%s", opts->raw_sig_name); while ((n =3D BIO_read(b, buf, sizeof(buf))), n > 0) - ERR(BIO_write(bd, buf, n) < 0, "%s", dest_name); + ERR(BIO_write(bd, buf, n) < 0, "%s", opts->dest_name); BIO_free(b); } =20 sig_size =3D BIO_number_written(bd) - module_size; sig_info.sig_len =3D htonl(sig_size); - ERR(BIO_write(bd, &sig_info, sizeof(sig_info)) < 0, "%s", dest_name); - ERR(BIO_write(bd, magic_number, sizeof(magic_number) - 1) < 0, "%s", dest= _name); + ERR(BIO_write(bd, &sig_info, sizeof(sig_info)) < 0, "%s", opts->dest_name= ); + ERR(BIO_write(bd, magic_number, sizeof(magic_number) - 1) < 0, "%s", opts= ->dest_name); =20 - ERR(BIO_free(bd) < 0, "%s", dest_name); + ERR(BIO_free(bd) < 0, "%s", opts->dest_name); =20 /* Finally, if we're signing in place, replace the original. */ - if (replace_orig) - ERR(rename(dest_name, module_name) < 0, "%s", dest_name); + if (opts->replace_orig) + ERR(rename(opts->dest_name, opts->module_name) < 0, "%s", opts->dest_nam= e); =20 return 0; } + +int main(int argc, char **argv) +{ + struct cmd_opts opts =3D {}; + + parse_args(argc, argv, &opts); + argc -=3D optind; + argv +=3D optind; + + if (!argv[0] || argc !=3D 1) + format(); + + if (opts.dest_name && strcmp(argv[0], opts.dest_name)) { + opts.replace_orig =3D false; + } else { + ERR(asprintf(&opts.dest_name, "%s.~signed~", opts.module_name) < 0, + "asprintf"); + opts.replace_orig =3D true; + } + + OpenSSL_add_all_algorithms(); + ERR_load_crypto_strings(); + ERR_clear_error(); + + return sign_single_file(&opts); +} --=20 2.39.2 From nobody Mon Feb 9 17:21:37 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5D774C6FD1D for ; Mon, 20 Mar 2023 18:51:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231311AbjCTSvb (ORCPT ); Mon, 20 Mar 2023 14:51:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34192 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229999AbjCTSuk (ORCPT ); Mon, 20 Mar 2023 14:50:40 -0400 Received: from mail-pj1-x1031.google.com (mail-pj1-x1031.google.com [IPv6:2607:f8b0:4864:20::1031]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7B76B2A6C9 for ; Mon, 20 Mar 2023 11:43:56 -0700 (PDT) Received: by mail-pj1-x1031.google.com with SMTP id f6-20020a17090ac28600b0023b9bf9eb63so13430595pjt.5 for ; Mon, 20 Mar 2023 11:43:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679337835; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=W3N8NUnKA3HwSL7nYHdw0w+EtU7IHilem2dLWFayh5k=; b=jnQOizljVF+zmRvkZ4il44P9m7IzRy6YHlVV6WGhqJ+A9RiRbAMwSQqCFzQc+FQyyg fTxc2cPNv7UnYmEs0qsVj6OMrLGu+ZztPZ82H7V17uxhLpYcUNB+HnCoygUCeLKCWMzj C8khiI9tsZ6Z/+GSwdO1m7PC8fILoCXKFwHxpDK3AcPDlL5Ra+LIscfSdP2FnWdGy0+g S4Vr8q0YicNWd5+71v4TFVu4AowEE+cqe61zgIUWjrifyV9VLakQ6r7VHNf0aJ0CYHIX jhJqWNPQ7zd0o7RHiN2/Vzp1zMrsI5h31vMca/xZb/Fdz0wfqKYYgO8XZqF9kPTmemAK b/sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679337835; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=W3N8NUnKA3HwSL7nYHdw0w+EtU7IHilem2dLWFayh5k=; b=w1SWIy55pEObWjX86VBMwy8/s0aFrLdafsbRl1F32JoUw45giul21Q+m2VzjY8ItWu tWzz7mk4DpOg9CtwHFqVZwgwJk4gexIZpEPQfUABJCBSHs5Uuq2hpjgA1d8aGbcwpwzU rrI1rRWhwm6on0GjD/ZpcHmFdTF+M1iplGHr2p6kgKJMXtgxeLk4eKWfO1FuezT49lWD +RK5CVptlkFkmJtZiJ+rnbhgDiorA78j6QA7vY6NyxVZJOQfL1g38e9IxVQ+IiThG7Mu DA+bWJ8gT22yR4ePoiASbXu89mA7MGUrNUCO9JHDPlb6I0gEOPMwBgt40FisDGjSkFUq Kokg== X-Gm-Message-State: AO0yUKWn1jHUZ0OFE/8T7DYk8wNkmLvPXv8t9Q66R5teYL40I4brx8Dp 5cSjM8rfhvEqgpChzkutVdM= X-Google-Smtp-Source: AK7set8b5ij+pVnZupkFfVqQH+2xx9aXqJtC5qJqofBfJSQ/hJREcOlXUXQufIKPkWRlV8v9keGkwQ== X-Received: by 2002:a05:6a20:3f28:b0:da:144:92bf with SMTP id az40-20020a056a203f2800b000da014492bfmr2211159pzb.14.1679337835037; Mon, 20 Mar 2023 11:43:55 -0700 (PDT) Received: from f37.eng.vmware.com ([66.170.99.1]) by smtp.googlemail.com with ESMTPSA id bn10-20020a056a00324a00b005a84ef49c63sm6671755pfb.214.2023.03.20.11.43.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Mar 2023 11:43:54 -0700 (PDT) From: Shreenidhi Shedi X-Google-Original-From: Shreenidhi Shedi To: gregkh@linuxfoundation.org, dhowells@redhat.com, dwmw2@infradead.org Cc: yesshedi@gmail.com, linux-kernel@vger.kernel.org, sshedi@vmware.com Subject: [PATCH v5 4/7] sign-file: add support to sign modules in bulk Date: Tue, 21 Mar 2023 00:13:42 +0530 Message-Id: <20230320184345.80166-5-sshedi@vmware.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230320184345.80166-1-sshedi@vmware.com> References: <20230320184345.80166-1-sshedi@vmware.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Shreenidhi Shedi In the existing system, we need to invoke sign-file binary for every module we want to sign. This patch adds support to give modules list in bulk and it will sign them all one by one. Signed-off-by: Shreenidhi Shedi --- scripts/sign-file.c | 41 +++++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/scripts/sign-file.c b/scripts/sign-file.c index 64d5e00f08e2..0a275256ca16 100644 --- a/scripts/sign-file.c +++ b/scripts/sign-file.c @@ -224,6 +224,7 @@ struct cmd_opts { bool replace_orig; bool raw_sig; bool sign_only; + bool bulk_sign; #ifndef USE_PKCS7 unsigned int use_keyid; #endif @@ -252,10 +253,10 @@ static void parse_args(int argc, char **argv, struct = cmd_opts *opts) =20 do { #ifndef USE_PKCS7 - opt =3D getopt_long_only(argc, argv, "hpds:i:a:x:t:r:", + opt =3D getopt_long_only(argc, argv, "hpdbs:i:a:x:t:r:", cmd_options, &opt_index); #else - opt =3D getopt_long_only(argc, argv, "hpdks:i:a:x:t:r:", + opt =3D getopt_long_only(argc, argv, "hpdkbs:i:a:x:t:r:", cmd_options, &opt_index); #endif switch (opt) { @@ -303,6 +304,10 @@ static void parse_args(int argc, char **argv, struct c= md_opts *opts) opts->replace_orig =3D true; break; =20 + case 'b': + opts->bulk_sign =3D true; + break; + case -1: break; =20 @@ -460,26 +465,34 @@ static int sign_single_file(struct cmd_opts *opts) =20 int main(int argc, char **argv) { + int i; struct cmd_opts opts =3D {}; =20 parse_args(argc, argv, &opts); argc -=3D optind; argv +=3D optind; =20 - if (!argv[0] || argc !=3D 1) - format(); - - if (opts.dest_name && strcmp(argv[0], opts.dest_name)) { - opts.replace_orig =3D false; - } else { - ERR(asprintf(&opts.dest_name, "%s.~signed~", opts.module_name) < 0, - "asprintf"); - opts.replace_orig =3D true; - } - OpenSSL_add_all_algorithms(); ERR_load_crypto_strings(); ERR_clear_error(); =20 - return sign_single_file(&opts); + for (i =3D 0; i < argc; ++i) { + opts.module_name =3D argv[i]; + + if (!opts.bulk_sign && opts.dest_name && strcmp(argv[i], opts.dest_name)= ) { + opts.replace_orig =3D false; + } else { + ERR(asprintf(&opts.dest_name, "%s.~signed~", opts.module_name) < 0, + "asprintf"); + if (!opts.replace_orig) + opts.replace_orig =3D true; + } + + if (sign_single_file(&opts)) { + fprintf(stderr, "Failed to sign: %s module\n", opts.module_name); + return -1; + } + } + + return 0; } --=20 2.39.2 From nobody Mon Feb 9 17:21:37 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D9B0EC7618E for ; Mon, 20 Mar 2023 18:51:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229719AbjCTSvW (ORCPT ); Mon, 20 Mar 2023 14:51:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34784 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229987AbjCTSuf (ORCPT ); Mon, 20 Mar 2023 14:50:35 -0400 Received: from mail-pg1-x52a.google.com (mail-pg1-x52a.google.com [IPv6:2607:f8b0:4864:20::52a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EC2D339BBB for ; Mon, 20 Mar 2023 11:44:00 -0700 (PDT) Received: by mail-pg1-x52a.google.com with SMTP id s19so1868460pgi.0 for ; Mon, 20 Mar 2023 11:44:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679337836; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yt1FiyCAq19UTY6Dgky638GY7WS05mpX7yYj+tKdXNE=; b=llf0mTJk4LCfUt/sw2a+t/X4N4R95uRUH/5f8jnmlmvkcXMFk7PzMSQk4AUP/3qk6N lqKcAwwbWsK/dRiXQ966lb3+xeJ8tjjU+QBoO5UwYGwXGXfS4BfgMUy5mgSGRKdXwNHh uclE1eEOnaNxiUUOV8yBfVjtp/8vLsRogAglp6fLacSO9Dj7pWsC8yYX/sYqc8rWDMaE bC9C90bbjyCRa6WG+S6yAUKB0Vc6aa3E2ENqW1R7/fnxtPKuKs1/MAglXCgzJse7KebH j2D8/NdVWB97J+OLCTLNU5oL1VSk3ubiucS4eFrM726+cQ3eAS5W0Ua+ygmOyho7hbZv Bjog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679337836; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yt1FiyCAq19UTY6Dgky638GY7WS05mpX7yYj+tKdXNE=; b=IE30L8SH6JSth/77y9n9SC/kmx07cNS9p/+dX4YTlUsmmVoh7NUUHi2JoYfwCJmk9k 0oAGNxnhKU0mtI2M4UUYPl65yHGBu+39fQTXXpQ8d2tYZ7HzxN1K3wix+6+d7QlNq95V T+O9Ek+61SdsA7TcafKDapNagqDJPAOuKKSYM+yUYr2KhcRfbzNgtS5IZ2mm35/93oqi rpDdHkqVeuk60MjMrvJFkSQ+9XjdzhsNT9yxrIhf1SBvLcumsUE/6HDuuIg7Kvbo67gZ 0p+q+FrPFTLo/XoUcXKBoWhQQ5WAPWji07yss67vbSAEH2STy/6GD19UU6EciAdC42Gl WYPQ== X-Gm-Message-State: AO0yUKURFJ9AthZ55XvJgiy4CTX0mmaXRwkIrOhJf3TCAC/6iSQtSKJ1 DxmRVhAiBaL7RZWS9aQTzqHffxKGuL1KBA== X-Google-Smtp-Source: AK7set8pDb8ZhkSv5aTUBz1y+GHVI0CHIr7L0jPY5BNwOR3I5NCp41DVnKUkhh5X0WVd4jFr0EN91Q== X-Received: by 2002:a62:8417:0:b0:625:a34a:89e8 with SMTP id k23-20020a628417000000b00625a34a89e8mr21057493pfd.2.1679337836273; Mon, 20 Mar 2023 11:43:56 -0700 (PDT) Received: from f37.eng.vmware.com ([66.170.99.1]) by smtp.googlemail.com with ESMTPSA id bn10-20020a056a00324a00b005a84ef49c63sm6671755pfb.214.2023.03.20.11.43.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Mar 2023 11:43:56 -0700 (PDT) From: Shreenidhi Shedi X-Google-Original-From: Shreenidhi Shedi To: gregkh@linuxfoundation.org, dhowells@redhat.com, dwmw2@infradead.org Cc: yesshedi@gmail.com, linux-kernel@vger.kernel.org, sshedi@vmware.com Subject: [PATCH v5 5/7] sign-file: improve help message Date: Tue, 21 Mar 2023 00:13:43 +0530 Message-Id: <20230320184345.80166-6-sshedi@vmware.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230320184345.80166-1-sshedi@vmware.com> References: <20230320184345.80166-1-sshedi@vmware.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Shreenidhi Shedi Add a proper help message with examples on how to use this tool. Signed-off-by: Shreenidhi Shedi --- scripts/sign-file.c | 48 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 7 deletions(-) diff --git a/scripts/sign-file.c b/scripts/sign-file.c index 0a275256ca16..d3abc5721a7e 100644 --- a/scripts/sign-file.c +++ b/scripts/sign-file.c @@ -74,12 +74,43 @@ struct module_signature { static char magic_number[] =3D "~Module signature appended~\n"; =20 static __attribute__((noreturn)) -void format(void) +void print_usage(void) { - fprintf(stderr, - "Usage: scripts/sign-file [-dp] []\n"); - fprintf(stderr, - " scripts/sign-file -s []\n"); + fprintf(stderr, "Usage: scripts/sign-file [OPTIONS]... [MODULE]...\n"); + fprintf(stderr, "Available options:\n"); + fprintf(stderr, "-h, --help Print this help message and exit\= n"); + + fprintf(stderr, "\nOptional args:\n"); + fprintf(stderr, "-s, --rawsig Raw signature\n"); + fprintf(stderr, "-p, --savesig Save signature\n"); + fprintf(stderr, "-d, --signonly Sign only\n"); +#ifndef USE_PKCS7 + fprintf(stderr, "-k, --usekeyid Use key ID\n"); +#endif + fprintf(stderr, "-b, --bulksign Sign modules in bulk\n"); + fprintf(stderr, "-r, --replaceorig Replace original\n"); + fprintf(stderr, "-t, --dest Destination path "); + fprintf(stderr, "(Exclusive with bulk option)\n"); + + fprintf(stderr, "\nMandatory args:\n"); + fprintf(stderr, "-i, --privkey Private key\n"); + fprintf(stderr, "-a, --hashalgo Hash algorithm\n"); + fprintf(stderr, "-x, --x509 X509\n"); + + fprintf(stderr, "\nExamples:\n"); + + fprintf(stderr, "\n Regular signing:\n"); + fprintf(stderr, " scripts/sign-file -a sha512 -i certs/signing_key.pe= m "); + fprintf(stderr, "-x certs/signing_key.x509 \n"); + + fprintf(stderr, "\n Signing with destination path:\n"); + fprintf(stderr, " scripts/sign-file -a sha512 -i certs/signing_key.pe= m "); + fprintf(stderr, "-x certs/signing_key.x509 -t \n"); + + fprintf(stderr, "\n Signing modules in bulk:\n"); + fprintf(stderr, " scripts/sign-file -a sha512 -i certs/signing_key.pe= m "); + fprintf(stderr, "-x certs/signing_key.x509 -b ...\n"); + exit(2); } =20 @@ -281,7 +312,7 @@ static void parse_args(int argc, char **argv, struct cm= d_opts *opts) #endif =20 case 'h': - format(); + print_usage(); break; =20 case 'i': @@ -312,7 +343,7 @@ static void parse_args(int argc, char **argv, struct cm= d_opts *opts) break; =20 default: - format(); + print_usage(); break; } } while (opt !=3D -1); @@ -472,6 +503,9 @@ int main(int argc, char **argv) argc -=3D optind; argv +=3D optind; =20 + if ((opts.bulk_sign && opts.dest_name) || (!opts.bulk_sign && argc !=3D 1= )) + print_usage(); + OpenSSL_add_all_algorithms(); ERR_load_crypto_strings(); ERR_clear_error(); --=20 2.39.2 From nobody Mon Feb 9 17:21:37 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4E85DC6FD1D for ; Mon, 20 Mar 2023 18:51:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229593AbjCTSvh (ORCPT ); Mon, 20 Mar 2023 14:51:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59880 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230072AbjCTSum (ORCPT ); Mon, 20 Mar 2023 14:50:42 -0400 Received: from mail-pj1-x102b.google.com (mail-pj1-x102b.google.com [IPv6:2607:f8b0:4864:20::102b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 41FB939CE3 for ; Mon, 20 Mar 2023 11:44:00 -0700 (PDT) Received: by mail-pj1-x102b.google.com with SMTP id lr16-20020a17090b4b9000b0023f187954acso13446338pjb.2 for ; Mon, 20 Mar 2023 11:44:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679337837; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4AANWMLFPRmqhsaZtqr8wdmw+KFHZMOER6tyEOUd1jY=; b=aayDCvoa4akAYkEkTafaCxZ2nR1eSeMrKHj9HE6+9z++c5J72CEqZpIT5tpfQK+b7s DfuRe8crETVZKJd7uc0tuIZ8azHmpKuERgrjpt89W9SIu+0YifdXi+zZdituMLj72Ddt xHXEvsyqD2IEJIBvlkKznOnL7/A7Cpn0SCu340rW1bp4582lqhObv9MZCxxduVnyd6YC F6YCqbrU7YieFt1BvufySI4dNdoh3ers5n877fPRgMeWB3susKV56FX8TyafnLYQmQ5V /lXEBoeDHBHwBwqLD1/Jh1rLYp7jFfuzZ8zIx+UAwApFvxb2GqPsQ/5Fe02jkpZo4byR TZaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679337837; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4AANWMLFPRmqhsaZtqr8wdmw+KFHZMOER6tyEOUd1jY=; b=NnvEGF1FVuSXNNCLmyhijnyz+8WT9OcgWQhy232Xv9CoRm3B07+x3JFT9TSShXJ7LQ hs0OHFiX/r81HYcxGoUaQkuDM4G9u9PRKhlO3zLg01qiH6IU6BBr+MntPDlXUBfdVWIc /cpoc5iExznX2l3bc/xI4qql3vsZ7USdUYXpN0CbHHPZbc7fRobe06djQL2tMPN37cnO GvuCgNZgupfaDat8i9q7uIGmePIiayjJWqf7DeW78HsyXcWAJfDEnHrMiIq/pB6yvd4V ppivQlT5qfKe2+8nnBBTjTGSGx52dw25REY6+gvHjR7TS/QdOFW8aPxoITctsn65mFiB NGvw== X-Gm-Message-State: AO0yUKVoFOD5bN7au149zSoQItCqZN7ElbGHBxXdRrEO9XWVvSMerNgv sXFkNwcHMsg5t3g7JkUfQxk= X-Google-Smtp-Source: AK7set+Xx5XgQDVcXACM8YyS1hM83LeSbW8ufd+N6fnFfZRXiW4rfq7zPjHBSbjW7uqHwxm6532pfA== X-Received: by 2002:a05:6a20:2925:b0:da:2db4:c21e with SMTP id t37-20020a056a20292500b000da2db4c21emr1527455pzf.41.1679337837489; Mon, 20 Mar 2023 11:43:57 -0700 (PDT) Received: from f37.eng.vmware.com ([66.170.99.1]) by smtp.googlemail.com with ESMTPSA id bn10-20020a056a00324a00b005a84ef49c63sm6671755pfb.214.2023.03.20.11.43.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Mar 2023 11:43:57 -0700 (PDT) From: Shreenidhi Shedi X-Google-Original-From: Shreenidhi Shedi To: gregkh@linuxfoundation.org, dhowells@redhat.com, dwmw2@infradead.org Cc: yesshedi@gmail.com, linux-kernel@vger.kernel.org, sshedi@vmware.com Subject: [PATCH v5 6/7] sign-file: use const with a global string constant Date: Tue, 21 Mar 2023 00:13:44 +0530 Message-Id: <20230320184345.80166-7-sshedi@vmware.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230320184345.80166-1-sshedi@vmware.com> References: <20230320184345.80166-1-sshedi@vmware.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Shreenidhi Shedi Reported by checkpatch. Signed-off-by: Shreenidhi Shedi --- scripts/sign-file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/sign-file.c b/scripts/sign-file.c index d3abc5721a7e..e8dfbdd3eea3 100644 --- a/scripts/sign-file.c +++ b/scripts/sign-file.c @@ -71,7 +71,7 @@ struct module_signature { =20 #define PKEY_ID_PKCS7 2 =20 -static char magic_number[] =3D "~Module signature appended~\n"; +static const char magic_number[] =3D "~Module signature appended~\n"; =20 static __attribute__((noreturn)) void print_usage(void) --=20 2.39.2 From nobody Mon Feb 9 17:21:37 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 38BE7C6FD1D for ; Mon, 20 Mar 2023 18:51:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231289AbjCTSv0 (ORCPT ); Mon, 20 Mar 2023 14:51:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56194 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229995AbjCTSuk (ORCPT ); Mon, 20 Mar 2023 14:50:40 -0400 Received: from mail-pj1-x1033.google.com (mail-pj1-x1033.google.com [IPv6:2607:f8b0:4864:20::1033]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8EDA639CEE for ; Mon, 20 Mar 2023 11:44:01 -0700 (PDT) Received: by mail-pj1-x1033.google.com with SMTP id h12-20020a17090aea8c00b0023d1311fab3so13459086pjz.1 for ; Mon, 20 Mar 2023 11:44:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679337838; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=orHz49MEtEREu43pkNm/tKqUuGAbP6UFRUzWf1lMbKM=; b=gF5NDLxTZFXke8hSgMnfu0Pbm1112P62xvUyToPgUAJz2vruhG1MiASgF9EuFYDC7k 3ox1bTSf3Jplqm+oc3GSDb3ch6/a5gIwHXAG/LYWHqKCYCP6vbuVWTIDWFqEcZPtM2A9 zmondetemix4W3B67x8WOYIxRXAcD9giadSVwfc1czpMETvwbZiFZwFLPnWPY5nX1pUq G3s/kNWOyktAzX8bN9t3znCg8oj+ztcs2PqBSR+OAbrYsrbDREpAFxTbMrr3M0IOXVpc fO1sIOu2/OC7JcuTwTeSz80pDKYaBeCF96K/koyvGavf+gXe3L+FRWt00cVaW8VvLSPD +7Hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679337838; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=orHz49MEtEREu43pkNm/tKqUuGAbP6UFRUzWf1lMbKM=; b=PR54RzssAyIfRvk810QYMO4DzLNEvl9U97SZ+GZ/XXbXpXKAelYqwx4V6C5LhaPqUL TP8l4LFlMlTXRW5J75DCGsJelogyAb2YojDslC3rU1lflmeCMarSk0YbxPuaPVWgNKz2 noOe7LnPvBHUC2+Ta3+Bge1ShgeAr6bErfxsk91pnyIFKgHCGzguZLjudn8g39lR4PZX b9w/VrA0Vu3H/DLAAdGalSUIZeId6VOyMvtMtTbVEe5s/FyF5mzt6yksNeX/8icH/SAp RqBCe3Et4NjFiJqnVpSVsOwdKKmyoz/Fbs4v7vIR2jRwB6j0Dg7KajR67//T6VT3KXPH iGqg== X-Gm-Message-State: AO0yUKXMr0m8OycvCWDjrEqV0qtp1SVJ6LwxOUlgfT1IXYBX/lRVOwvR ZDmjhKzgs/FNTz7ZbRkeGIQ= X-Google-Smtp-Source: AK7set9YrszS017QFtyjFIxegLQGTZ7/uatJHaeUATD5gvyNsmbkLfIlwPsfSL31tt7fDFWgMHGzfw== X-Received: by 2002:a05:6a20:6da7:b0:da:7036:dfa7 with SMTP id gl39-20020a056a206da700b000da7036dfa7mr355315pzb.19.1679337838702; Mon, 20 Mar 2023 11:43:58 -0700 (PDT) Received: from f37.eng.vmware.com ([66.170.99.1]) by smtp.googlemail.com with ESMTPSA id bn10-20020a056a00324a00b005a84ef49c63sm6671755pfb.214.2023.03.20.11.43.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Mar 2023 11:43:58 -0700 (PDT) From: Shreenidhi Shedi X-Google-Original-From: Shreenidhi Shedi To: gregkh@linuxfoundation.org, dhowells@redhat.com, dwmw2@infradead.org Cc: yesshedi@gmail.com, linux-kernel@vger.kernel.org, sshedi@vmware.com Subject: [PATCH v5 7/7] sign-file: fix do while styling issue Date: Tue, 21 Mar 2023 00:13:45 +0530 Message-Id: <20230320184345.80166-8-sshedi@vmware.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230320184345.80166-1-sshedi@vmware.com> References: <20230320184345.80166-1-sshedi@vmware.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Shreenidhi Shedi Reported by checkpatch. Signed-off-by: Shreenidhi Shedi --- scripts/sign-file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/sign-file.c b/scripts/sign-file.c index e8dfbdd3eea3..0c95275c4564 100644 --- a/scripts/sign-file.c +++ b/scripts/sign-file.c @@ -147,7 +147,7 @@ static void drain_openssl_errors(void) if (__cond) { \ errx(1, fmt, ## __VA_ARGS__); \ } \ - } while(0) + } while (0) =20 static const char *key_pass; =20 --=20 2.39.2