]> git.proxmox.com Git - efi-boot-shim.git/log
efi-boot-shim.git
11 years agoReboot the system after enrolling/erasing keys
Gary Ching-Pang Lin [Mon, 10 Dec 2012 10:24:45 +0000 (18:24 +0800)]
Reboot the system after enrolling/erasing keys

11 years agoClear the screen before erasing keys
Gary Ching-Pang Lin [Mon, 10 Dec 2012 09:54:05 +0000 (17:54 +0800)]
Clear the screen before erasing keys

11 years agoGet the second stage loader from the Load Options
Gary Ching-Pang Lin [Thu, 6 Dec 2012 09:47:26 +0000 (17:47 +0800)]
Get the second stage loader from the Load Options

This commit replaces the 2nd stage loader path with the first
argument in the Load Options and moves the rest arguments (if any)
to the Load Options for the 2nd stage loader.

For example, to make shim to load elilo.efi, just create a new
boot entry with efibootmgr:

 # efibootmgr -c -L "shim elilo" -l "efi\\shim.efi" -u "elilo.efi"

11 years agoRemove debug code
Matthew Garrett [Wed, 28 Nov 2012 04:52:27 +0000 (23:52 -0500)]
Remove debug code

secure_mode() was altered to always return true for debug purposes, and this
accidentally got committed to mainline. Fix that.

11 years agoSign MokManager with a locally-generated key
Matthew Garrett [Sat, 24 Nov 2012 05:07:11 +0000 (00:07 -0500)]
Sign MokManager with a locally-generated key

shim needs to verify that MokManager hasn't been modified, but we want to
be able to support configurations where shim is shipped without a vendor
certificate. This patch adds support for generating a certificate at build
time, incorporating the public half into shim and signing MokManager with
the private half. It uses pesign and nss, but still requires openssl for
key generation. Anyone using sbsign will need to figure this out for
themselves.

11 years agoDon't fail if there's no network devices
Matthew Garrett [Thu, 1 Nov 2012 20:03:24 +0000 (16:03 -0400)]
Don't fail if there's no network devices

findNetboot() would continue blindly even if no PXE-capable devices were
found. Fix that.

11 years agoBump version
Matthew Garrett [Thu, 1 Nov 2012 19:32:12 +0000 (15:32 -0400)]
Bump version

This seems pretty much functionally complete, so let's call it 0.2.

11 years agoMerge branch 'mok' into netboot
Matthew Garrett [Thu, 1 Nov 2012 19:29:23 +0000 (15:29 -0400)]
Merge branch 'mok' into netboot

Conflicts:
shim.c

11 years agoAdd comments
Matthew Garrett [Thu, 1 Nov 2012 19:26:36 +0000 (15:26 -0400)]
Add comments

11 years agoMerge branch 'mok' into netboot
Matthew Garrett [Thu, 1 Nov 2012 14:45:22 +0000 (10:45 -0400)]
Merge branch 'mok' into netboot

Conflicts:
Makefile
shim.c

11 years agoFix AuthenticodeVerify loop
Matthew Garrett [Thu, 1 Nov 2012 14:39:31 +0000 (10:39 -0400)]
Fix AuthenticodeVerify loop

Cert needs to be modified inside the Index loop, not outside it. This is unlikely to
ever trigger since there will typically only be one X509 certificate per
EFI_SIGNATURE_LIST, but fix it anyway.

11 years agoFix signature checking
Matthew Garrett [Thu, 1 Nov 2012 14:31:14 +0000 (10:31 -0400)]
Fix signature checking

We could potentially find a valid signature and then fail to validate it
due to not breaking out of the outer while loop.

11 years agoFix double free
Matthew Garrett [Thu, 1 Nov 2012 14:12:20 +0000 (10:12 -0400)]
Fix double free

load_image() didn't allocate PathName, don't have it free it.

11 years agoFix up some types
Matthew Garrett [Thu, 1 Nov 2012 13:27:38 +0000 (09:27 -0400)]
Fix up some types

Type-checking the UEFI calls picked up a couple of problems. Fix them up.

11 years agoAdd documentation of the Mok variables
Matthew Garrett [Tue, 30 Oct 2012 20:14:02 +0000 (16:14 -0400)]
Add documentation of the Mok variables

Brief overview of the function and format of the various variables used
by Shim and MokManager.

11 years agoMerge branch 'mok' of github.com:mjg59/shim into mok
Matthew Garrett [Tue, 30 Oct 2012 19:59:40 +0000 (15:59 -0400)]
Merge branch 'mok' of github.com:mjg59/shim into mok

11 years agoCheck the vendor blacklist correctly
Gary Ching-Pang Lin [Tue, 30 Oct 2012 02:32:35 +0000 (10:32 +0800)]
Check the vendor blacklist correctly

11 years agoInitialize the size of vendor dbx as 0
Gary Ching-Pang Lin [Tue, 30 Oct 2012 02:32:34 +0000 (10:32 +0800)]
Initialize the size of vendor dbx as 0

The size of vendor dbx must be 0 if there is no vendor dbx provided
or the functions of db check will crash.

11 years agoClean up password setting
Matthew Garrett [Wed, 24 Oct 2012 05:14:50 +0000 (01:14 -0400)]
Clean up password setting

Permit clearing of the password, and avoid a case where choosing not to set
a password would result in an error message on exit. Fix the same problem
with MokSB.

11 years agoImprove signature validation enable/disable
Matthew Garrett [Wed, 24 Oct 2012 05:05:45 +0000 (01:05 -0400)]
Improve signature validation enable/disable

The logic used in checking the signature validation password was a bit
ugly. Improve that so it behaves rather more as expected.

11 years agoBoot unsigned binaries if we're not in secure mode
Matthew Garrett [Wed, 24 Oct 2012 04:10:29 +0000 (00:10 -0400)]
Boot unsigned binaries if we're not in secure mode

read_header would fail if the binary was unsigned, even if we weren't then
going to verify the signature. Move that check to the verify function
instead.

11 years agoMiscellaneous small fixups
Matthew Garrett [Wed, 24 Oct 2012 04:09:08 +0000 (00:09 -0400)]
Miscellaneous small fixups

Fixes for some small bugs noticed during review

11 years agoAdd another missing screen clearing
Matthew Garrett [Wed, 24 Oct 2012 03:46:44 +0000 (23:46 -0400)]
Add another missing screen clearing

Another case where we were drawing text over existing text.

11 years agoMerge branch 'mok' of github.com:mjg59/shim into mok
Matthew Garrett [Tue, 23 Oct 2012 19:45:04 +0000 (15:45 -0400)]
Merge branch 'mok' of github.com:mjg59/shim into mok

11 years agoFix password hash calculation
Matthew Garrett [Tue, 23 Oct 2012 19:42:31 +0000 (15:42 -0400)]
Fix password hash calculation

This was hardcoded, rather than being based on the actual password length,
resulting in incorrect hashes being generated.

11 years agoUpdate image validation enable/disable
Matthew Garrett [Tue, 23 Oct 2012 19:06:59 +0000 (15:06 -0400)]
Update image validation enable/disable

Update this to match the new mokutil behaviour

11 years agoDelete MokList properly
Matthew Garrett [Tue, 23 Oct 2012 15:57:22 +0000 (11:57 -0400)]
Delete MokList properly

A cut and paste error meant that attempts to delete MokList were instead
appending a zero-length addition.

11 years agoClean up checks for MokManager entry
Matthew Garrett [Tue, 23 Oct 2012 15:36:02 +0000 (11:36 -0400)]
Clean up checks for MokManager entry

Add a helper function and tidy up the calls for getting into MokManager

11 years agoFix key database parsing
Matthew Garrett [Tue, 23 Oct 2012 14:04:02 +0000 (10:04 -0400)]
Fix key database parsing

The pointer to the certificate needs to be incremented by the size of the
entire certificate, not just the certificate data.

11 years agoSupport a vendor-specific DBX list.
Peter Jones [Tue, 23 Oct 2012 15:06:28 +0000 (11:06 -0400)]
Support a vendor-specific DBX list.

In some rare corner cases, it's useful to add a blacklist of things that
were allowed by a copy of shim that was never signed by the UEFI signing
service.  In these cases it's okay for them to go into a local dbx,
rather than taking up precious flash.

Signed-off-by: Peter Jones <pjones@redhat.com>
11 years agoClear screen before prompting
Matthew Garrett [Thu, 18 Oct 2012 21:34:14 +0000 (17:34 -0400)]
Clear screen before prompting

We were drawing prompts on top of existing text, which was less than
ideal.

11 years agoDon't print SHA1 sum when calculating file fingerprints
Matthew Garrett [Thu, 18 Oct 2012 21:29:01 +0000 (17:29 -0400)]
Don't print SHA1 sum when calculating file fingerprints

There's no point in printing the SHA1 of a SHA256...

11 years agoClean up timeout counter handling
Matthew Garrett [Thu, 18 Oct 2012 21:24:52 +0000 (17:24 -0400)]
Clean up timeout counter handling

Reduce menu redrawing by only redrawing the invalidated section of the menu
during the timeout countdown.

11 years agoAdd MOK password auth
Matthew Garrett [Thu, 18 Oct 2012 01:40:05 +0000 (21:40 -0400)]
Add MOK password auth

Add support for setting an MOK password. The OS passes down a password hash.
MokManager then presents an option for setting a password. Selecting it
prompts the user for the same password again. If they match, the hash is
enrolled into a boot services variable and MokManager will prompt for the
password whenever it's started.

11 years agoPause on callback failures
Matthew Garrett [Wed, 17 Oct 2012 22:23:35 +0000 (18:23 -0400)]
Pause on callback failures

If a callback returns any kind of failure, wait for a keypress in order to
give the user an opportunity to read any failure messages.

11 years agoSkip signature checking if insecure
Matthew Garrett [Wed, 17 Oct 2012 22:36:07 +0000 (18:36 -0400)]
Skip signature checking if insecure

If we're configured to run untrusted code, print a message and skip the
validation checks.

11 years agoAdd support for disabling signature verification
Matthew Garrett [Wed, 17 Oct 2012 22:22:11 +0000 (18:22 -0400)]
Add support for disabling signature verification

Provide a mechanism for a physically present end user to disable signature
verification. This is handled by the OS passing down a variable that
contains a UINT32 and a SHA256 hash. If this variable is present, MokManager
prompts the user to choose whether to enable or disable signature validation
(depending on the value of the UINT32). They are then asked to type the
passphrase that matches the hash. This then saves a boot services variable
which is checked by shim, and if set will skip verification of signatures.

11 years agoAdd section headers
Matthew Garrett [Sat, 13 Oct 2012 05:07:43 +0000 (01:07 -0400)]
Add section headers

Provide a little more contextual information when people are in shim
menus.

11 years agoAdd draft version of Neil's netboot code
Matthew Garrett [Sat, 13 Oct 2012 00:13:46 +0000 (20:13 -0400)]
Add draft version of Neil's netboot code

11 years agoReallocate the DevPath space for the volume label
Gary Ching-Pang Lin [Fri, 12 Oct 2012 09:55:09 +0000 (17:55 +0800)]
Reallocate the DevPath space for the volume label

The size of the DevPath string array was not sufficient to append
the volume label. This patch extends the size for the label and
re-enables the menu freeing.

11 years agoRemove LoadImage/StartImage support
Matthew Garrett [Fri, 12 Oct 2012 01:05:01 +0000 (21:05 -0400)]
Remove LoadImage/StartImage support

Some systems will show an error dialog if LoadImage() returned
EFI_ACCESS_DENIED, which then requires physical user interaction to skip.
Let's just remove the LoadImage/StartImage code, since the built-in code
is theoretically equivalent.

11 years agoSwitch to using db format for MokList and MokNew
Matthew Garrett [Thu, 11 Oct 2012 19:54:36 +0000 (15:54 -0400)]
Switch to using db format for MokList and MokNew

Using the same format as the UEFI key databases makes it easier for the
kernel to parse and extract keys from MOK, and also permits MOK to contain
multiple key or hash types. Additionally, add support for enrolling hashes.

11 years agoSplit out hashing
Matthew Garrett [Thu, 11 Oct 2012 16:24:36 +0000 (12:24 -0400)]
Split out hashing

We want to be able to generate hashes, so split out the hash generation
function from the verification function

11 years agoAdd missing header define
Matthew Garrett [Thu, 11 Oct 2012 16:13:18 +0000 (12:13 -0400)]
Add missing header define

11 years agoAdd SHA1 support
Matthew Garrett [Thu, 11 Oct 2012 15:30:41 +0000 (11:30 -0400)]
Add SHA1 support

In theory vendors could blacklist binaries with SHA1, so make sure we
calculate and check that hash as well.

11 years agoAdd menu header
Matthew Garrett [Thu, 11 Oct 2012 13:55:14 +0000 (09:55 -0400)]
Add menu header

Add a basic header to the menu to make it clearer what's going on.
Define SHIM_VENDOR in order to override the default.

11 years agoClear screen on exit
Matthew Garrett [Thu, 11 Oct 2012 13:45:14 +0000 (09:45 -0400)]
Clear screen on exit

11 years agoAdd timeout support
Matthew Garrett [Thu, 11 Oct 2012 13:44:27 +0000 (09:44 -0400)]
Add timeout support

We should time out if there aren't any keypresses at the top level menu
within a reasonable timeframe.

11 years agoFix whitespace
Matthew Garrett [Thu, 11 Oct 2012 13:26:16 +0000 (09:26 -0400)]
Fix whitespace

11 years agoRemove unnecessary newline
Gary Ching-Pang Lin [Thu, 11 Oct 2012 13:20:30 +0000 (09:20 -0400)]
Remove unnecessary newline

The newline character shouldn't be present in the menu item string

11 years agoPass the size of MokNew to the key enrollment function
Gary Ching-Pang Lin [Thu, 11 Oct 2012 13:19:32 +0000 (09:19 -0400)]
Pass the size of MokNew to the key enrollment function

The size of MokNew was missing and it caused crash when enrolling new MOKs
with mokutil

11 years agoCallbacks should return INTN, not UINTN
Matthew Garrett [Tue, 9 Oct 2012 13:44:55 +0000 (09:44 -0400)]
Callbacks should return INTN, not UINTN

11 years agoRemove unused variable
Matthew Garrett [Tue, 9 Oct 2012 13:43:37 +0000 (09:43 -0400)]
Remove unused variable

11 years agoDon't lose the last file in top-level directories
Matthew Garrett [Tue, 9 Oct 2012 13:39:36 +0000 (09:39 -0400)]
Don't lose the last file in top-level directories

The filesystem callback was failing to account for the additional menu
item to return to the filesystem list, and so the last file entry in the
root directory would be missing from the list.

11 years agoFix filesystem enrollment
Matthew Garrett [Mon, 8 Oct 2012 19:17:49 +0000 (15:17 -0400)]
Fix filesystem enrollment

We would always enrol a single key, deleting any existing keys in the
database. Fix that up.

11 years agoAdd an auth argument to store_keys()
Matthew Garrett [Tue, 9 Oct 2012 01:45:38 +0000 (21:45 -0400)]
Add an auth argument to store_keys()

If the user is manually installing keys from a filesystem then we don't need
to ask for the key password.

11 years agoAdd __attribute__ ((packed)) to MokListNode definition
Matthew Garrett [Tue, 9 Oct 2012 01:44:43 +0000 (21:44 -0400)]
Add __attribute__ ((packed)) to MokListNode definition

Packing this lets us use MokListNode with the binary MokList representation.

11 years agoDisable menu freeing
Matthew Garrett [Sat, 6 Oct 2012 21:52:38 +0000 (17:52 -0400)]
Disable menu freeing

This looks like it ought to work, but is currently failing. Leaking here
isn't a big deal, so just disable it until I figure out what's wrong.

11 years agoFix menucount
Matthew Garrett [Sat, 6 Oct 2012 21:39:21 +0000 (17:39 -0400)]
Fix menucount

Menucount wasn't being incremented for the final top level menu, so
the file explorer menu item wasn't appearing.

11 years agoFree menus and add statics
Matthew Garrett [Sat, 6 Oct 2012 21:28:03 +0000 (17:28 -0400)]
Free menus and add statics

Make sure we free menu items after exiting a menu. Also, add some missing
static annotations.

11 years agoFix menu items
Matthew Garrett [Sat, 6 Oct 2012 21:25:57 +0000 (17:25 -0400)]
Fix menu items

Only show the MOK manipulation menu item if MokNew existed

11 years agoAlways show the MokManager UI
Matthew Garrett [Sat, 6 Oct 2012 21:22:33 +0000 (17:22 -0400)]
Always show the MokManager UI

If someone explicitly starts MokManager then we want to show the UI

11 years agoFall back to MokManager if grub failed to validate
Matthew Garrett [Sat, 6 Oct 2012 21:20:30 +0000 (17:20 -0400)]
Fall back to MokManager if grub failed to validate

If we can't verify grub, fall back to MokManager. This permits shipping a
copy of shim and MokManager without distributing a key, letting
distributions provide their own for user installation.

11 years agoAdd filesystem browsing and enrollment
Matthew Garrett [Fri, 5 Oct 2012 23:03:42 +0000 (19:03 -0400)]
Add filesystem browsing and enrollment

Add a basic menu system and file explorer. This makes it possible for the
user to enrol keys from media from within shim rather than having to boot
an OS first. This would permit vendors to distribute a signed shim without
having to install their own keys first - the keys could be stored on the
install media instead.

11 years agoDon't show the invalid key number
Gary Ching-Pang Lin [Thu, 4 Oct 2012 09:35:02 +0000 (17:35 +0800)]
Don't show the invalid key number

11 years agoUse the same function to get commands and password
Gary Ching-Pang Lin [Thu, 4 Oct 2012 09:23:18 +0000 (17:23 +0800)]
Use the same function to get commands and password

11 years agoPrint the key number for the non-existent key also
Gary Ching-Pang Lin [Thu, 4 Oct 2012 08:28:52 +0000 (16:28 +0800)]
Print the key number for the non-existent key also

11 years agoDon't print Backspace as we print nothing
Gary Ching-Pang Lin [Tue, 2 Oct 2012 10:17:29 +0000 (18:17 +0800)]
Don't print Backspace as we print nothing

11 years agoCalculate SHA1 fingerprint
Gary Ching-Pang Lin [Tue, 2 Oct 2012 06:51:42 +0000 (14:51 +0800)]
Calculate SHA1 fingerprint

openssl shows sha1 fingerprint by default.

11 years agoReplace functions with the ones in gnu-efi
Gary Ching-Pang Lin [Tue, 2 Oct 2012 04:45:46 +0000 (12:45 +0800)]
Replace functions with the ones in gnu-efi

11 years agoUse LibDeleteVariable in gnu-efi
Gary Ching-Pang Lin [Tue, 2 Oct 2012 03:55:44 +0000 (11:55 +0800)]
Use LibDeleteVariable in gnu-efi

11 years agoMore tips for the MOK password
Gary Ching-Pang Lin [Thu, 27 Sep 2012 08:54:38 +0000 (16:54 +0800)]
More tips for the MOK password

11 years agoFilter out newline from the password array
Gary Ching-Pang Lin [Wed, 26 Sep 2012 09:19:27 +0000 (17:19 +0800)]
Filter out newline from the password array

11 years agocorrect wording
Gary Ching-Pang Lin [Wed, 26 Sep 2012 08:36:53 +0000 (16:36 +0800)]
correct wording

11 years agoBuild debug image for all efi files
Gary Ching-Pang Lin [Wed, 26 Sep 2012 07:46:42 +0000 (15:46 +0800)]
Build debug image for all efi files

11 years agoDefine the max length of password
Gary Ching-Pang Lin [Mon, 24 Sep 2012 09:27:52 +0000 (17:27 +0800)]
Define the max length of password

11 years agoRequest a password to verify the key list
Gary Ching-Pang Lin [Fri, 21 Sep 2012 10:38:31 +0000 (18:38 +0800)]
Request a password to verify the key list

The password must contain 8 characters at least and 16 characters
at most and will be hashed with the key list altogether. The keys
in MokNew won't be allowed to be enrolled unless the user provides
the correct password.

11 years agoErase stored keys when there is no key in the new key list
Gary Ching-Pang Lin [Fri, 21 Sep 2012 08:43:07 +0000 (16:43 +0800)]
Erase stored keys when there is no key in the new key list

11 years agoMake sure the variables are not broken
Gary Ching-Pang Lin [Fri, 21 Sep 2012 07:46:10 +0000 (15:46 +0800)]
Make sure the variables are not broken

11 years agoAllow the new keys to be listed again
Gary Ching-Pang Lin [Fri, 21 Sep 2012 07:36:57 +0000 (15:36 +0800)]
Allow the new keys to be listed again

11 years agoReject the binary when there is no key in MokList
Gary Ching-Pang Lin [Fri, 21 Sep 2012 07:10:31 +0000 (15:10 +0800)]
Reject the binary when there is no key in MokList

11 years agoMake the key list interactive
Gary Ching-Pang Lin [Thu, 20 Sep 2012 10:15:50 +0000 (18:15 +0800)]
Make the key list interactive

11 years agoMake sure the time string is set
Gary Ching-Pang Lin [Thu, 20 Sep 2012 07:54:57 +0000 (15:54 +0800)]
Make sure the time string is set

11 years agoImprove the layout of the key info
Gary Ching-Pang Lin [Thu, 20 Sep 2012 06:27:15 +0000 (14:27 +0800)]
Improve the layout of the key info

11 years agoRemove the unused debug message
Gary Ching-Pang Lin [Thu, 20 Sep 2012 02:35:43 +0000 (10:35 +0800)]
Remove the unused debug message

11 years agoCheck the MOK list correctly
Gary Ching-Pang Lin [Thu, 20 Sep 2012 02:28:00 +0000 (10:28 +0800)]
Check the MOK list correctly

11 years agoSimplify the key management
Gary Ching-Pang Lin [Wed, 19 Sep 2012 09:12:30 +0000 (17:12 +0800)]
Simplify the key management

Move the key list building and management to mokutil to keep
MokManager as simple as possible.

11 years agoAbandon the variable, MokMgmt
Gary Ching-Pang Lin [Wed, 19 Sep 2012 06:54:35 +0000 (14:54 +0800)]
Abandon the variable, MokMgmt

11 years agoCopy the MOK list to a RT variable
Gary Ching-Pang Lin [Tue, 11 Sep 2012 09:43:44 +0000 (17:43 +0800)]
Copy the MOK list to a RT variable

The RT variable, MokListRT, is a copy of MokList so that the
runtime applications can synchronize the key list without touching
the BS variable.

11 years agoUse the machine owner keys to verify images
Gary Ching-Pang Lin [Tue, 11 Sep 2012 08:39:12 +0000 (16:39 +0800)]
Use the machine owner keys to verify images

11 years agoAdd a separate efi application to manage MOKs
Gary Ching-Pang Lin [Tue, 11 Sep 2012 08:38:29 +0000 (16:38 +0800)]
Add a separate efi application to manage MOKs

11 years agoAlways try StartImage first
Gary Ching-Pang Lin [Tue, 11 Sep 2012 08:37:02 +0000 (16:37 +0800)]
Always try StartImage first

11 years agoOnly launch MokManager when necessary
Gary Ching-Pang Lin [Tue, 11 Sep 2012 08:34:25 +0000 (16:34 +0800)]
Only launch MokManager when necessary

11 years agoRetrieve attributes of variables
Gary Ching-Pang Lin [Tue, 11 Sep 2012 08:31:05 +0000 (16:31 +0800)]
Retrieve attributes of variables

We have to make sure the machine owner key is stored in a BS
variable.

11 years agoMerge branch 'master' into mok-prototype3
Gary Ching-Pang Lin [Fri, 7 Sep 2012 10:22:34 +0000 (18:22 +0800)]
Merge branch 'master' into mok-prototype3

Conflicts:
shim.c

11 years agoLoad MokManager for MOK management
Gary Ching-Pang Lin [Fri, 7 Sep 2012 10:11:45 +0000 (18:11 +0800)]
Load MokManager for MOK management

11 years agoMake the image loading process more generic
Gary Ching-Pang Lin [Fri, 7 Sep 2012 09:43:21 +0000 (17:43 +0800)]
Make the image loading process more generic

11 years agoFix data alignment on vendor_cert so we don't wind up with padding.
Peter Jones [Thu, 6 Sep 2012 20:32:41 +0000 (16:32 -0400)]
Fix data alignment on vendor_cert so we don't wind up with padding.

11 years agoAdd some convenience make targets.
Peter Jones [Thu, 6 Sep 2012 16:37:58 +0000 (12:37 -0400)]
Add some convenience make targets.

Adds targets for "test-archive" and "archive"

11 years agoBreak out of our db checking loop at the appropriate time.
Peter Jones [Thu, 6 Sep 2012 15:08:09 +0000 (11:08 -0400)]
Break out of our db checking loop at the appropriate time.

The break in check_db_cert is at the wrong level due to a typo in
indentation, and as a result only the last cert in the list can
correctly match.  Rectify that.

Signed-off-by: Peter Jones <pjones@redhat.com>