mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: joeyli <jlee@suse.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>,
	Alan Cox <alan@lxorguk.ukuu.org.uk>,
	Jiri Kosina <jkosina@suse.cz>,
	David Howells <dhowells@redhat.com>,
	Rusty Russell <rusty@rustcorp.com.au>,
	Ming Lei <tom.leiming@gmail.com>,
	linux-kernel@vger.kernel.org,
	linux-security-module@vger.kernel.org, linux-efi@vger.kernel.org
Subject: Re: [PATCH RFC v2 2/4] firmware: Add -a option to scripts/sign-file
Date: Fri, 23 Nov 2012 14:51:04 +0800	[thread overview]
Message-ID: <1353653464.21227.736.camel@linux-s257.site> (raw)
In-Reply-To: <1352396109-3989-3-git-send-email-tiwai@suse.de>

於 四,2012-11-08 於 18:35 +0100,Takashi Iwai 提到:
> Add a new option -a to sign-file for specifying the hash algorithm
> to sign a file, to make it working without .config file.
> This will be useful signing external module or firmware files.
> 
> Signed-off-by: Takashi Iwai <tiwai@suse.de>

Tested-by: Chun-Yi Lee<jlee@suse.com>

Joey Lee

> ---
>  scripts/sign-file | 40 ++++++++++++++++++++++++++++------------
>  1 file changed, 28 insertions(+), 12 deletions(-)
> 
> diff --git a/scripts/sign-file b/scripts/sign-file
> index 5b9d44d..581cdcd 100755
> --- a/scripts/sign-file
> +++ b/scripts/sign-file
> @@ -4,7 +4,7 @@
>  #
>  # Format:
>  #
> -#	./scripts/sign-file [-v] [-f] <key> <x509> <module> [<dest>]
> +#	./scripts/sign-file [-v] [-f] [-a algo] <key> <x509> <module> [<dest>]
>  #
>  #
>  use strict;
> @@ -17,16 +17,19 @@ sub usage()
>      print "Format: ./scripts/sign-file [options] <key> <x509> <module> [<dest>]
>      -v       verbose output
>      -f       create a firmware signature file
> +    -a algo  specify hash algorithm
>  ";
>      exit;
>  }
>  
>  my $verbose = 0;
> +my $hashalgo = "";
>  my $sign_fw = 0;
>  
>  GetOptions(
>      'v|verbose' => \$verbose,
> -    'f|firmware' => \$sign_fw) || usage();
> +    'f|firmware' => \$sign_fw,
> +    'a|algo=s' => \$hashalgo) || usage();
>  usage() if ($#ARGV != 2 && $#ARGV != 3);
>  
>  my $private_key = $ARGV[0];
> @@ -42,10 +45,7 @@ die "Can't read $mode_name\n" unless (-r $module);
>  #
>  # Read the kernel configuration
>  #
> -my %config = (
> -    CONFIG_MODULE_SIG_SHA512 => 1
> -    );
> -
> +my %config;
>  if (-r ".config") {
>      open(FD, "<.config") || die ".config";
>      while (<FD>) {
> @@ -56,6 +56,22 @@ if (-r ".config") {
>      close(FD);
>  }
>  
> +if ($hashalgo eq "") {
> +    if (exists $config{"CONFIG_MODULE_SIG_SHA1"}) {
> +	$hashalgo="sha1";
> +    } elsif (exists $config{"CONFIG_MODULE_SIG_SHA224"}) {
> +	$hashalgo="sha224";
> +    } elsif (exists $config{"CONFIG_MODULE_SIG_SHA256"}) {
> +	$hashalgo="sha256";
> +    } elsif (exists $config{"CONFIG_MODULE_SIG_SHA384"}) {
> +	$hashalgo="sha384";
> +    } elsif (exists $config{"CONFIG_MODULE_SIG_SHA512"}) {
> +	$hashalgo="sha512";
> +    } else {
> +	die "Can't determine hash algorithm";
> +    }
> +}
> +
>  #
>  # Function to read the contents of a file into a variable.
>  #
> @@ -332,35 +348,35 @@ my $id_type = 1;	# Identifier type: X.509
>  # Digest the data
>  #
>  my ($dgst, $prologue) = ();
> -if (exists $config{"CONFIG_MODULE_SIG_SHA1"}) {
> +if ($hashalgo eq "sha1") {
>      $prologue = pack("C*",
>  		     0x30, 0x21, 0x30, 0x09, 0x06, 0x05,
>  		     0x2B, 0x0E, 0x03, 0x02, 0x1A,
>  		     0x05, 0x00, 0x04, 0x14);
>      $dgst = "-sha1";
>      $hash = 2;
> -} elsif (exists $config{"CONFIG_MODULE_SIG_SHA224"}) {
> +} elsif ($hashalgo eq "sha224") {
>      $prologue = pack("C*",
>  		     0x30, 0x2d, 0x30, 0x0d, 0x06, 0x09,
>  		     0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x04,
>  		     0x05, 0x00, 0x04, 0x1C);
>      $dgst = "-sha224";
>      $hash = 7;
> -} elsif (exists $config{"CONFIG_MODULE_SIG_SHA256"}) {
> +} elsif ($hashalgo eq "sha256") {
>      $prologue = pack("C*",
>  		     0x30, 0x31, 0x30, 0x0d, 0x06, 0x09,
>  		     0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01,
>  		     0x05, 0x00, 0x04, 0x20);
>      $dgst = "-sha256";
>      $hash = 4;
> -} elsif (exists $config{"CONFIG_MODULE_SIG_SHA384"}) {
> +} elsif ($hashalgo eq "sha384") {
>      $prologue = pack("C*",
>  		     0x30, 0x41, 0x30, 0x0d, 0x06, 0x09,
>  		     0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02,
>  		     0x05, 0x00, 0x04, 0x30);
>      $dgst = "-sha384";
>      $hash = 5;
> -} elsif (exists $config{"CONFIG_MODULE_SIG_SHA512"}) {
> +} elsif ($hashalgo eq "sha512") {
>      $prologue = pack("C*",
>  		     0x30, 0x51, 0x30, 0x0d, 0x06, 0x09,
>  		     0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03,
> @@ -368,7 +384,7 @@ if (exists $config{"CONFIG_MODULE_SIG_SHA1"}) {
>      $dgst = "-sha512";
>      $hash = 6;
>  } else {
> -    die "Can't determine hash algorithm";
> +    die "Invalid hash algorithm $hashalgo";
>  }
>  
>  #



  reply	other threads:[~2012-11-23  6:52 UTC|newest]

Thread overview: 224+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-20 14:40 [RFC] Second attempt at kernel secure boot support Matthew Garrett
2012-09-20 14:40 ` [PATCH V2 01/10] Secure boot: Add new capability Matthew Garrett
2012-09-28  3:10   ` Serge Hallyn
2012-10-20  0:15   ` joeyli
2012-10-20  9:02     ` Matt Fleming
2012-09-20 14:40 ` [PATCH V2 02/10] PCI: Lock down BAR access in secure boot environments Matthew Garrett
2012-09-20 14:40 ` [PATCH V2 03/10] x86: Lock down IO port " Matthew Garrett
2012-09-20 14:40 ` [PATCH V2 04/10] ACPI: Limit access to custom_method Matthew Garrett
2012-09-20 14:41 ` [PATCH V2 05/10] asus-wmi: Restrict debugfs interface Matthew Garrett
2012-09-20 14:41 ` [PATCH V2 06/10] Restrict /dev/mem and /dev/kmem in secure boot setups Matthew Garrett
2012-09-20 14:41 ` [PATCH V2 07/10] Secure boot: Add a dummy kernel parameter that will switch on Secure Boot mode Matthew Garrett
2012-09-20 16:32   ` Greg KH
2012-09-20 17:40     ` Josh Boyer
2012-09-25 13:08     ` [PATCH V3 " Josh Boyer
2012-10-29  9:00       ` joeyli
2012-10-30 17:48         ` Josh Boyer
2012-10-30 19:27           ` joeyli
2012-09-21  8:20   ` [PATCH V2 " joeyli
2012-09-28  3:20   ` Serge Hallyn
2012-09-20 14:41 ` [PATCH V2 08/10] efi: Enable secure boot lockdown automatically when enabled in firmware Matthew Garrett
2012-09-28  3:21   ` Serge Hallyn
2012-10-22 13:22   ` Matt Fleming
2012-09-20 14:41 ` [PATCH V2 09/10] acpi: Ignore acpi_rsdp kernel parameter in a secure boot environment Matthew Garrett
2012-09-20 14:41 ` [PATCH V2 10/10] SELinux: define mapping for new Secure Boot capability Matthew Garrett
2012-09-21 22:55 ` [RFC] Second attempt at kernel secure boot support Eric W. Biederman
2012-09-22 15:21   ` Matthew Garrett
2012-10-29  7:49 ` Jiri Kosina
2012-10-29 17:41   ` Matthew Garrett
2012-10-31 14:50     ` Jiri Kosina
2012-10-31 14:54       ` Josh Boyer
2012-10-31 14:59         ` Shea Levy
2012-10-31 15:55         ` Alan Cox
2012-10-31 15:55           ` Jiri Kosina
2012-10-31 17:03             ` Alan Cox
2012-10-31 17:01               ` Shea Levy
2012-10-31 17:17                 ` Alan Cox
2012-10-31 17:10               ` Matthew Garrett
2012-10-31 17:21                 ` Alan Cox
2012-10-31 17:17                   ` Matthew Garrett
2012-10-31 17:39                     ` Alan Cox
2012-10-31 17:37                       ` Matthew Garrett
2012-10-31 17:49                         ` Alan Cox
2012-10-31 17:45                           ` Matthew Garrett
2012-10-31 20:14                       ` Oliver Neukum
2012-10-31 21:58                         ` Chris Friesen
2012-10-31 22:00                           ` Jiri Kosina
2012-10-31 22:19                           ` Oliver Neukum
2012-11-01  9:08                             ` James Bottomley
2012-11-01  9:20                               ` Jiri Kosina
2012-11-01  9:38                                 ` James Bottomley
2012-11-01  9:45                                   ` Jiri Kosina
2012-11-01  9:59                                     ` James Bottomley
2012-11-01 10:06                                       ` Jiri Kosina
2012-11-01 14:29                                       ` Eric Paris
2012-11-01 14:42                                         ` James Bottomley
2012-11-01 14:49                                           ` Matthew Garrett
2012-11-01 15:06                                             ` James Bottomley
2012-11-01 15:17                                               ` Eric Paris
2012-11-01 16:26                                               ` Matthew Garrett
2012-11-01 15:06                                             ` Alan Cox
2012-11-01 16:29                                               ` Matthew Garrett
2012-11-01 16:40                                                 ` Alan Cox
2012-11-01 14:59                                           ` Eric Paris
2012-11-01 15:11                                             ` Alan Cox
2012-11-01 15:18                                             ` James Bottomley
2012-11-01 17:50                                               ` Eric Paris
2012-11-01 21:03                                                 ` James Bottomley
2012-11-01 21:06                                                   ` Matthew Garrett
2012-11-01 21:14                                                     ` James Bottomley
2012-11-01 21:18                                                       ` Matthew Garrett
2012-11-01 21:35                                                         ` Alan Cox
2012-11-01 21:31                                                     ` Alan Cox
2012-11-01 21:28                                                       ` Matthew Garrett
2012-11-01 21:37                                                         ` Alan Cox
2012-11-01 21:34                                                           ` Matthew Garrett
2012-11-01 21:58                                                             ` Alan Cox
2012-11-01 21:57                                                               ` Matthew Garrett
2012-11-02  8:49                                                                 ` Eric W. Biederman
2012-11-02 14:00                                                                   ` Matthew Garrett
2012-11-02 22:03                                                                     ` Eric W. Biederman
2012-11-02 22:19                                                                       ` Chris Friesen
2012-11-02 23:46                                                                         ` Alan Cox
2012-11-03  0:23                                                                           ` Matthew Garrett
2012-11-03  0:55                                                                             ` Alan Cox
2012-11-03  0:20                                                                       ` Matthew Garrett
2012-11-03  0:47                                                                         ` Eric W. Biederman
2012-11-03  1:03                                                                           ` Alan Cox
2012-11-03  1:43                                                                           ` Matthew Garrett
2012-11-03 16:31                                                                             ` Alan Cox
2012-11-03 16:37                                                                               ` Matthew Garrett
2012-11-03 16:37                                                                               ` Eric Paris
2012-11-03 16:42                                                                                 ` Matthew Garrett
2012-11-02 17:19                                                 ` Vivek Goyal
2012-11-01 14:46                                         ` Alan Cox
2012-11-01 15:04                                           ` Eric Paris
2012-11-01 20:27                                         ` Pavel Machek
2012-11-01 21:02                                           ` Chris Friesen
2012-11-02 15:48                                             ` Vivek Goyal
2012-11-02 16:54                                               ` Chris Friesen
2012-11-02 17:03                                                 ` Vivek Goyal
2012-11-03 23:09                                               ` Jiri Kosina
2012-11-05  6:38                                                 ` Eric W. Biederman
2012-11-05 14:40                                                   ` Jiri Kosina
2012-11-05 15:31                                                     ` Jiri Kosina
2012-11-05 15:37                                                       ` Chris Friesen
2012-11-05 18:22                                                         ` Vivek Goyal
2012-11-02 16:33                                             ` Pavel Machek
2012-11-02 16:52                                               ` James Bottomley
2012-11-02 16:54                                                 ` Matthew Garrett
2012-11-02 17:48                                                   ` James Bottomley
2012-11-02 17:54                                                     ` Matthew Garrett
2012-11-02 17:57                                                       ` James Bottomley
2012-11-02 18:04                                                         ` Matthew Garrett
2012-11-02 19:18                                                           ` Eric Paris
2012-11-02 23:38                                                           ` James Bottomley
2012-11-03  0:22                                                             ` Matthew Garrett
2012-11-03 12:03                                                               ` James Bottomley
2012-11-03 13:46                                                                 ` Matthew Garrett
2012-11-03 22:56                                                                   ` James Bottomley
2012-11-04  4:28                                                                     ` Matthew Garrett
2012-11-04  9:14                                                                       ` James Bottomley
2012-11-04 13:52                                                                         ` Matthew Garrett
2012-11-05  6:14                                                                           ` Eric W. Biederman
2012-11-05  7:12                                                                             ` H. Peter Anvin
2012-11-05  7:24                                                                               ` Eric W. Biederman
2012-11-05  7:40                                                                                 ` H. Peter Anvin
2012-11-05  8:50                                                                                   ` Eric W. Biederman
2012-11-05  8:53                                                                                     ` H. Peter Anvin
2012-11-05 12:38                                                                                 ` Matthew Garrett
2012-11-05 13:44                                                                                   ` Alan Cox
2012-11-05 13:46                                                                                     ` Matthew Garrett
2012-11-05 19:16                                                                                   ` Eric W. Biederman
2012-11-05 20:25                                                                                     ` Matthew Garrett
2012-11-06  2:46                                                                                       ` Eric W. Biederman
2012-11-06  3:12                                                                                         ` Matthew Garrett
2012-11-06  3:36                                                                                           ` Eric W. Biederman
2012-11-06  3:53                                                                                             ` Matthew Garrett
2012-11-06  5:19                                                                                               ` Eric W. Biederman
2012-11-06  5:34                                                                                                 ` Matthew Garrett
2012-11-06  7:56                                                                                                 ` Florian Weimer
2012-11-06 15:14                                                                                                   ` Chris Friesen
2012-11-06 15:19                                                                                                     ` Jiri Kosina
2012-11-06 21:51                                                                                                     ` Florian Weimer
2012-11-06 21:55                                                                                                       ` Matthew Garrett
2012-11-06 22:06                                                                                                         ` Florian Weimer
2012-11-06 22:31                                                                                                           ` Matthew Garrett
2012-11-06 22:49                                                                                                         ` Alan Cox
2012-11-06 22:47                                                                                                           ` Matthew Garrett
     [not found]                                                                                                             ` <CAMFK0gt7oAr4ArD8FmD8QE+i4g4rSTmQjbbLcjs02xwQeXGx-A@mail.gmail.com>
2012-11-07 14:55                                                                                                               ` Matthew Garrett
2012-11-08 10:18                                                                                                                 ` James Courtier-Dutton
     [not found]                                                                                                                 ` <CAAMvbhFF=kb8TJ4oE+40Zrx7HD1OkD0NOYj7QEZegZKGtqDm_A@mail.gmail.com>
2012-11-08 11:19                                                                                                                   ` Alan Cox
2012-11-06  9:12                                                                                               ` Alan Cox
2012-11-06 13:17                                                                                                 ` Matthew Garrett
2012-11-06  8:13                                                                                           ` Valdis.Kletnieks
2012-11-05  8:20                                                                           ` James Bottomley
2012-11-05 12:36                                                                             ` Matthew Garrett
2012-11-04 11:53                                                                       ` Pavel Machek
2012-11-05 21:25                                                                     ` Florian Weimer
2012-11-02 14:55                                         ` Vivek Goyal
2012-11-01 10:12                               ` Oliver Neukum
2012-10-31 17:21                   ` Jiri Kosina
2012-10-31 15:56           ` Matthew Garrett
2012-10-31 17:08             ` Alan Cox
2012-10-31 17:08               ` Shea Levy
2012-10-31 16:04         ` Jiri Kosina
2012-10-31 16:10           ` Josh Boyer
2012-10-31 15:02       ` Matthew Garrett
2012-10-31 15:05         ` Shea Levy
2012-10-31 15:09           ` Matthew Garrett
2012-11-02 15:30         ` Vivek Goyal
2012-11-02 15:42           ` Matthew Garrett
2012-11-02 15:52             ` Vivek Goyal
2012-11-02 16:22               ` Jiri Kosina
2012-11-02 18:30                 ` Vivek Goyal
2012-11-02 16:35               ` Shuah Khan
2012-11-06 12:51         ` Jiri Kosina
2012-11-06 13:16           ` Matthew Garrett
2012-10-31 17:28     ` Takashi Iwai
2012-10-31 17:37       ` Matthew Garrett
2012-10-31 17:44         ` Alan Cox
2012-10-31 17:44           ` Matthew Garrett
2012-10-31 18:53         ` Takashi Iwai
2012-11-01  4:21           ` joeyli
2012-11-01 13:18             ` Alan Cox
2012-11-05 17:13               ` Takashi Iwai
2012-11-05 17:18                 ` [PATCH RFC 0/4] Add firmware signature file check Takashi Iwai
2012-11-05 17:19                   ` [PATCH RFC 1/4] scripts/sign-file: Allow specifying hash algorithm via -a option Takashi Iwai
2012-11-05 17:19                   ` [PATCH RFC 2/4] scripts/sign-file: Support firmware signing Takashi Iwai
2012-11-05 17:20                   ` [PATCH RFC 3/4] firmware: Add a signature check Takashi Iwai
2012-11-06  6:03                     ` Mimi Zohar
2012-11-05 17:20                   ` [PATCH RFC 4/4] firmware: Install signature files automatically Takashi Iwai
2012-11-05 18:12                   ` [PATCH RFC 0/4] Add firmware signature file check Takashi Iwai
2012-11-05 20:43                   ` Josh Boyer
2012-11-06  6:46                     ` Takashi Iwai
2012-11-06  9:20                       ` Alan Cox
2012-11-06 10:05                         ` Takashi Iwai
2012-11-06  2:30                   ` Ming Lei
2012-11-06  5:46                     ` lee joey
2012-11-06  7:03                     ` Takashi Iwai
2012-11-06  7:16                       ` Ming Lei
2012-11-06  7:32                         ` Takashi Iwai
2012-11-06  8:04                           ` Ming Lei
2012-11-06  8:18                             ` Takashi Iwai
2012-11-06 10:04                               ` Ming Lei
2012-11-06 10:17                                 ` Takashi Iwai
2012-11-06 10:40                                   ` Ming Lei
2012-11-06 10:53                                     ` Takashi Iwai
2012-11-06 11:03                                       ` Ming Lei
2012-11-06 11:15                                       ` Alan Cox
     [not found]                     ` <CAGB3EUTrSMDhja9Gu3h7nuZX+H2_owp8MnUNwbZuCW=_GuawqQ@mail.gmail.com>
2012-11-06  7:06                       ` Takashi Iwai
2012-11-06  7:30                       ` Ming Lei
2012-11-08 17:35                   ` [PATCH RFC v2 " Takashi Iwai
2012-11-08 17:35                     ` [PATCH RFC v2 1/4] firmware: Add the firmware signing support to scripts/sign-file Takashi Iwai
2012-11-23  6:51                       ` joeyli
2012-11-08 17:35                     ` [PATCH RFC v2 2/4] firmware: Add -a option " Takashi Iwai
2012-11-23  6:51                       ` joeyli [this message]
2012-11-08 17:35                     ` [PATCH RFC v2 3/4] firmware: Add support for signature checks Takashi Iwai
2012-11-23  6:56                       ` joeyli
2012-11-23  7:34                         ` Takashi Iwai
2012-11-08 17:35                     ` [PATCH RFC v2 4/4] firmware: Install firmware signature files automatically Takashi Iwai
2012-11-23  6:52                       ` joeyli
2012-11-06  0:01                 ` [PATCH RFC 0/4] Add firmware signature file check David Howells
2012-11-06  7:01                   ` Takashi Iwai
2012-11-06  0:05                 ` David Howells

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1353653464.21227.736.camel@linux-s257.site \
    --to=jlee@suse.com \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=dhowells@redhat.com \
    --cc=jkosina@suse.cz \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=mjg59@srcf.ucam.org \
    --cc=rusty@rustcorp.com.au \
    --cc=tiwai@suse.de \
    --cc=tom.leiming@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome