Commit Graph

145 Commits

Author SHA1 Message Date
Matthew Garrett
fb620efef8 Callbacks should return INTN, not UINTN 2012-10-09 09:44:55 -04:00
Matthew Garrett
3839b92b85 Remove unused variable 2012-10-09 09:43:37 -04:00
Matthew Garrett
fcb7401ed6 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.
2012-10-09 09:43:08 -04:00
Matthew Garrett
cfa77df48e Fix filesystem enrollment
We would always enrol a single key, deleting any existing keys in the
database. Fix that up.
2012-10-08 17:35:50 -04:00
Matthew Garrett
27db5b66aa 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.
2012-10-08 17:34:55 -04:00
Matthew Garrett
ae46cf9d05 Add __attribute__ ((packed)) to MokListNode definition
Packing this lets us use MokListNode with the binary MokList representation.
2012-10-08 17:33:32 -04:00
Matthew Garrett
19423e7f2b 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.
2012-10-06 17:52:38 -04:00
Matthew Garrett
ea5bba7315 Fix menucount
Menucount wasn't being incremented for the final top level menu, so
the file explorer menu item wasn't appearing.
2012-10-06 17:39:21 -04:00
Matthew Garrett
13f88088c9 Free menus and add statics
Make sure we free menu items after exiting a menu. Also, add some missing
static annotations.
2012-10-06 17:30:49 -04:00
Matthew Garrett
d2188bbf12 Fix menu items
Only show the MOK manipulation menu item if MokNew existed
2012-10-06 17:30:46 -04:00
Matthew Garrett
ba3c876b24 Always show the MokManager UI
If someone explicitly starts MokManager then we want to show the UI
2012-10-06 17:22:33 -04:00
Matthew Garrett
32b08c73d8 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.
2012-10-06 17:20:30 -04:00
Matthew Garrett
e4889c525b 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.
2012-10-05 19:04:57 -04:00
Gary Ching-Pang Lin
0e81abac81 Don't show the invalid key number 2012-10-04 17:39:59 +08:00
Gary Ching-Pang Lin
8bddd68127 Use the same function to get commands and password 2012-10-04 17:39:54 +08:00
Gary Ching-Pang Lin
419c5e3577 Print the key number for the non-existent key also 2012-10-04 16:28:52 +08:00
Gary Ching-Pang Lin
27129e60a6 Don't print Backspace as we print nothing 2012-10-02 18:17:29 +08:00
Gary Ching-Pang Lin
3b8cc123ce Calculate SHA1 fingerprint
openssl shows sha1 fingerprint by default.
2012-10-02 14:51:42 +08:00
Gary Ching-Pang Lin
7ad1f3b86d Replace functions with the ones in gnu-efi 2012-10-02 12:58:32 +08:00
Gary Ching-Pang Lin
000e235101 Use LibDeleteVariable in gnu-efi 2012-10-02 11:55:44 +08:00
Gary Ching-Pang Lin
a737c14265 More tips for the MOK password 2012-09-27 16:54:38 +08:00
Gary Ching-Pang Lin
77e0d721ec Filter out newline from the password array 2012-09-26 17:19:27 +08:00
Gary Ching-Pang Lin
a2cc3b0d11 correct wording 2012-09-26 16:36:53 +08:00
Gary Ching-Pang Lin
c6bd45d065 Build debug image for all efi files 2012-09-26 15:46:42 +08:00
Gary Ching-Pang Lin
c83f32162d Define the max length of password 2012-09-24 17:27:52 +08:00
Gary Ching-Pang Lin
7dc45398d6 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.
2012-09-24 15:48:01 +08:00
Gary Ching-Pang Lin
f42825e60e Erase stored keys when there is no key in the new key list 2012-09-21 16:45:02 +08:00
Gary Ching-Pang Lin
ce2384495c Make sure the variables are not broken 2012-09-21 16:44:56 +08:00
Gary Ching-Pang Lin
b386860250 Allow the new keys to be listed again 2012-09-21 15:36:57 +08:00
Gary Ching-Pang Lin
03953e08bc Reject the binary when there is no key in MokList 2012-09-21 15:10:31 +08:00
Gary Ching-Pang Lin
12e2d62500 Make the key list interactive 2012-09-20 18:15:50 +08:00
Gary Ching-Pang Lin
caf006b44f Make sure the time string is set 2012-09-20 15:54:57 +08:00
Gary Ching-Pang Lin
ff8d867c68 Improve the layout of the key info 2012-09-20 15:22:53 +08:00
Gary Ching-Pang Lin
e6194ddd0a Remove the unused debug message 2012-09-20 10:35:43 +08:00
Gary Ching-Pang Lin
b3ff35663b Check the MOK list correctly 2012-09-20 10:28:00 +08:00
Gary Ching-Pang Lin
1d7c0f8602 Simplify the key management
Move the key list building and management to mokutil to keep
MokManager as simple as possible.
2012-09-19 17:12:30 +08:00
Gary Ching-Pang Lin
5d4b6ba037 Abandon the variable, MokMgmt 2012-09-19 14:54:35 +08:00
Gary Ching-Pang Lin
ed2ecf8655 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.
2012-09-11 17:43:44 +08:00
Gary Ching-Pang Lin
28c581335e Use the machine owner keys to verify images 2012-09-11 16:39:12 +08:00
Gary Ching-Pang Lin
481c1e1e76 Add a separate efi application to manage MOKs 2012-09-11 16:38:29 +08:00
Gary Ching-Pang Lin
1395a9916b Always try StartImage first 2012-09-11 16:37:02 +08:00
Gary Ching-Pang Lin
5f00e44f9a Only launch MokManager when necessary 2012-09-11 16:34:25 +08:00
Gary Ching-Pang Lin
19e957f489 Retrieve attributes of variables
We have to make sure the machine owner key is stored in a BS
variable.
2012-09-11 16:31:05 +08:00
Gary Ching-Pang Lin
1fe0d49c9b Merge branch 'master' into mok-prototype3
Conflicts:
	shim.c
2012-09-07 18:22:34 +08:00
Gary Ching-Pang Lin
0d7c3dbde5 Load MokManager for MOK management 2012-09-07 18:11:45 +08:00
Gary Ching-Pang Lin
e235c85af1 Make the image loading process more generic 2012-09-07 17:43:21 +08:00
Peter Jones
bcd0a4e8df Fix data alignment on vendor_cert so we don't wind up with padding. 2012-09-06 16:43:30 -04:00
Peter Jones
07c21a109d Add some convenience make targets.
Adds targets for "test-archive" and "archive"
2012-09-06 12:38:30 -04:00
Peter Jones
3c2f1d6c3d 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>
2012-09-06 12:13:44 -04:00
Matthew Garrett
3682a89543 Use the file size, not the image size field, for verification. 2012-09-06 12:13:44 -04:00