summaryrefslogtreecommitdiff
path: root/MokManager.c
AgeCommit message (Collapse)Author
2012-10-23Update image validation enable/disableMatthew Garrett
Update this to match the new mokutil behaviour
2012-10-23Delete MokList properlyMatthew Garrett
A cut and paste error meant that attempts to delete MokList were instead appending a zero-length addition.
2012-10-23Fix key database parsingMatthew Garrett
The pointer to the certificate needs to be incremented by the size of the entire certificate, not just the certificate data.
2012-10-18Clear screen before promptingMatthew Garrett
We were drawing prompts on top of existing text, which was less than ideal.
2012-10-18Don't print SHA1 sum when calculating file fingerprintsMatthew Garrett
There's no point in printing the SHA1 of a SHA256...
2012-10-18Clean up timeout counter handlingMatthew Garrett
Reduce menu redrawing by only redrawing the invalidated section of the menu during the timeout countdown.
2012-10-18Add MOK password authMatthew Garrett
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.
2012-10-18Pause on callback failuresMatthew Garrett
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.
2012-10-18Add support for disabling signature verificationMatthew Garrett
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.
2012-10-13Add section headersMatthew Garrett
Provide a little more contextual information when people are in shim menus.
2012-10-12Reallocate the DevPath space for the volume labelGary Ching-Pang Lin
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.
2012-10-12Switch to using db format for MokList and MokNewMatthew Garrett
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.
2012-10-11Add menu headerMatthew Garrett
Add a basic header to the menu to make it clearer what's going on. Define SHIM_VENDOR in order to override the default.
2012-10-11Clear screen on exitMatthew Garrett
2012-10-11Add timeout supportMatthew Garrett
We should time out if there aren't any keypresses at the top level menu within a reasonable timeframe.
2012-10-11Fix whitespaceMatthew Garrett
2012-10-11Remove unnecessary newlineGary Ching-Pang Lin
The newline character shouldn't be present in the menu item string
2012-10-11Pass the size of MokNew to the key enrollment functionGary Ching-Pang Lin
The size of MokNew was missing and it caused crash when enrolling new MOKs with mokutil
2012-10-09Callbacks should return INTN, not UINTNMatthew Garrett
2012-10-09Remove unused variableMatthew Garrett
2012-10-09Don't lose the last file in top-level directoriesMatthew Garrett
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-08Fix filesystem enrollmentMatthew Garrett
We would always enrol a single key, deleting any existing keys in the database. Fix that up.
2012-10-08Add an auth argument to store_keys()Matthew Garrett
If the user is manually installing keys from a filesystem then we don't need to ask for the key password.
2012-10-08Add __attribute__ ((packed)) to MokListNode definitionMatthew Garrett
Packing this lets us use MokListNode with the binary MokList representation.
2012-10-06Disable menu freeingMatthew Garrett
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-06Fix menucountMatthew Garrett
Menucount wasn't being incremented for the final top level menu, so the file explorer menu item wasn't appearing.
2012-10-06Free menus and add staticsMatthew Garrett
Make sure we free menu items after exiting a menu. Also, add some missing static annotations.
2012-10-06Fix menu itemsMatthew Garrett
Only show the MOK manipulation menu item if MokNew existed
2012-10-06Always show the MokManager UIMatthew Garrett
If someone explicitly starts MokManager then we want to show the UI
2012-10-05Add filesystem browsing and enrollmentMatthew Garrett
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-04Don't show the invalid key numberGary Ching-Pang Lin
2012-10-04Use the same function to get commands and passwordGary Ching-Pang Lin
2012-10-04Print the key number for the non-existent key alsoGary Ching-Pang Lin
2012-10-02Don't print Backspace as we print nothingGary Ching-Pang Lin
2012-10-02Calculate SHA1 fingerprintGary Ching-Pang Lin
openssl shows sha1 fingerprint by default.
2012-10-02Replace functions with the ones in gnu-efiGary Ching-Pang Lin
2012-10-02Use LibDeleteVariable in gnu-efiGary Ching-Pang Lin
2012-09-27More tips for the MOK passwordGary Ching-Pang Lin
2012-09-26Filter out newline from the password arrayGary Ching-Pang Lin
2012-09-26correct wordingGary Ching-Pang Lin
2012-09-24Define the max length of passwordGary Ching-Pang Lin
2012-09-24Request a password to verify the key listGary Ching-Pang Lin
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-21Erase stored keys when there is no key in the new key listGary Ching-Pang Lin
2012-09-21Make sure the variables are not brokenGary Ching-Pang Lin
2012-09-21Allow the new keys to be listed againGary Ching-Pang Lin
2012-09-20Make the key list interactiveGary Ching-Pang Lin
2012-09-20Make sure the time string is setGary Ching-Pang Lin
2012-09-20Improve the layout of the key infoGary Ching-Pang Lin
2012-09-20Remove the unused debug messageGary Ching-Pang Lin
2012-09-19Simplify the key managementGary Ching-Pang Lin
Move the key list building and management to mokutil to keep MokManager as simple as possible.