Commit Graph

1510 Commits

Author SHA1 Message Date
Peter Jones
c41efe5a8c Don't print anything or delay when start_image() succeeds.
Signed-off-by: Peter Jones <pjones@redhat.com>
2015-06-29 14:41:21 -04:00
Peter Jones
f7c34e9b5f Don't print anything or delay when start_image() succeeds.
Signed-off-by: Peter Jones <pjones@redhat.com>
2015-06-29 14:41:21 -04:00
Peter Jones
dcfd6b68be MokManager: Nerf SHA-1 again for actual hashes and signatures.
Nobody should be deploying SHA-1.  No hardware deploys it, and the rate
of change on https://en.wikipedia.org/wiki/SHA-1#Attacks is wildly
uninspiring.

Signed-off-by: Peter Jones <pjones@redhat.com>
2015-06-16 11:46:14 -04:00
Peter Jones
6d4803a1c0 MokManager: Nerf SHA-1 again for actual hashes and signatures.
Nobody should be deploying SHA-1.  No hardware deploys it, and the rate
of change on https://en.wikipedia.org/wiki/SHA-1#Attacks is wildly
uninspiring.

Signed-off-by: Peter Jones <pjones@redhat.com>
2015-06-16 11:46:14 -04:00
Gary Ching-Pang Lin
91ef3c4b67 MokManager: fix comparison between signed and unsigned integer
Patch from Johannes Segitz <jsegitz@suse.com>
2015-06-16 11:46:14 -04:00
Gary Ching-Pang Lin
0807ec7cec MokManager: fix comparison between signed and unsigned integer
Patch from Johannes Segitz <jsegitz@suse.com>
2015-06-16 11:46:14 -04:00
Gary Ching-Pang Lin
e9afe1f9d3 MokManager: Discard the list contains an invalid signature
Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:46:14 -04:00
Gary Ching-Pang Lin
efa9c47690 MokManager: Discard the list contains an invalid signature
Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:46:14 -04:00
Gary Ching-Pang Lin
5a778db50b MokManager: Support SHA224, SHA384, and SHA512
Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:46:14 -04:00
Gary Ching-Pang Lin
439f031711 MokManager: Support SHA224, SHA384, and SHA512
Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:46:14 -04:00
Gary Ching-Pang Lin
60b59afb7e MokManager: Add more key list safe checks
Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:46:14 -04:00
Gary Ching-Pang Lin
7db9f7c71c MokManager: Add more key list safe checks
Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:46:14 -04:00
Gary Ching-Pang Lin
0402903011 MokManager: fix the return value and type
There are some functions that the return value and the type
didn't match.

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
ab9d755484 MokManager: fix the return value and type
There are some functions that the return value and the type
didn't match.

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
2ad3a95ef0 MokManager: Support SHA1 hash in MOK
Add SHA1 hash support and amend the code to make it easier to support
other SHA digests.
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
8bd6b9cd5a MokManager: Support SHA1 hash in MOK
Add SHA1 hash support and amend the code to make it easier to support
other SHA digests.
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
38df5caad3 MokManager: fix the hash list counting in delete
match_hash() requests the number of keys in a list and it was
mistakenly replaced with the size of the Mok node. This would
made MokManager to remove the whole Mok node instead of one
hash.

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
cd15cc0efc MokManager: fix the hash list counting in delete
match_hash() requests the number of keys in a list and it was
mistakenly replaced with the size of the Mok node. This would
made MokManager to remove the whole Mok node instead of one
hash.

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
607d370c2f MokManager: calculate the variable size correctly
MokSize of the hash signature list includes the owner GUID,
so we should not add the 16bytes compensation.

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
8449925662 MokManager: calculate the variable size correctly
MokSize of the hash signature list includes the owner GUID,
so we should not add the 16bytes compensation.

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
c9b0c3520c Make shim to check MokXAuth for MOKX reset
Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
7cb3ee9213 Make shim to check MokXAuth for MOKX reset
Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
894c0b99dc Verify the EFI images with MOK blacklist
Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
b8d1bc6e98 Verify the EFI images with MOK blacklist
Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
ed8363efd2 Copy the MOK blacklist to a RT variable
Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
9a811c3233 Copy the MOK blacklist to a RT variable
Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
c9cf07a0e0 MokManager: Write the hash list properly
also return to the previous entry in the list

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
6068f51099 MokManager: Write the hash list properly
also return to the previous entry in the list

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
c9261eab2a MokManager: Match all hashes in the list
Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
de2acfb43e MokManager: Match all hashes in the list
Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
7659efe09d MokManager: delete the hash properly
Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
c0fd34674b MokManager: delete the hash properly
Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
8d7e85a289 MokManager: show the hash list properly
Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
a462c735fa MokManager: show the hash list properly
Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
10a2161a90 Support MOK blacklist
The new blacklist, MokListX, stores the keys and hashes that are
banned.

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Gary Ching-Pang Lin
64c5066ce0 Support MOK blacklist
The new blacklist, MokListX, stores the keys and hashes that are
banned.

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-06-16 11:41:32 -04:00
Peter Jones
1fefa29c34 Fix console_print_box*() parameters.
When we made lib build with the correct CFLAGS, it inherited
-Werror=sign-compare, and I fixed up some parameters on
console_print_box() and console_print_box_at() to avoid sign comparison
errors.

The fixups were *completely wrong*, as some behavior relies on negative
values.  So this fixes them in a completely different way, by casting
appropriately to signed types where we're doing comparisons.

Signed-off-by: Peter Jones <pjones@redhat.com>
2015-06-16 11:41:32 -04:00
Peter Jones
7bb0d6f71d Fix console_print_box*() parameters.
When we made lib build with the correct CFLAGS, it inherited
-Werror=sign-compare, and I fixed up some parameters on
console_print_box() and console_print_box_at() to avoid sign comparison
errors.

The fixups were *completely wrong*, as some behavior relies on negative
values.  So this fixes them in a completely different way, by casting
appropriately to signed types where we're doing comparisons.

Signed-off-by: Peter Jones <pjones@redhat.com>
2015-06-16 11:41:32 -04:00
Peter Jones
0a7003faec Ensure that apps launched by shim get correct BS->Exit() behavior
Right now applications run by shim get our wrapper for Exit(), but it
doesn't do as much cleanup as it should - shim itself also exits, but
currently is not doing all the cleanup it should be doing.

This changes it so all of shim's cleanup is also performed.

Based on a patch and lots of review from Gary Lin.

Signed-off-by: Peter Jones <pjones@redhat.com>
2015-06-11 13:25:56 -04:00
Peter Jones
7ad94952cd Ensure that apps launched by shim get correct BS->Exit() behavior
Right now applications run by shim get our wrapper for Exit(), but it
doesn't do as much cleanup as it should - shim itself also exits, but
currently is not doing all the cleanup it should be doing.

This changes it so all of shim's cleanup is also performed.

Based on a patch and lots of review from Gary Lin.

Signed-off-by: Peter Jones <pjones@redhat.com>
2015-06-11 13:25:56 -04:00
Peter Jones
b9f98904ba Don't leave in_protocol==1 when shim_verify() isn't enforcing.
Right now if shim_verify() sees secure_mode()==0, it exits with
EFI_SUCCESS, but accidentally leaves in_protocol=1.  This means any
other call will have supressed error/warning messages.

That's wrong, so don't do it.

Signed-off-by: Peter Jones <pjones@redhat.com>
2015-06-11 13:20:09 -04:00
Peter Jones
a0e830769d Don't leave in_protocol==1 when shim_verify() isn't enforcing.
Right now if shim_verify() sees secure_mode()==0, it exits with
EFI_SUCCESS, but accidentally leaves in_protocol=1.  This means any
other call will have supressed error/warning messages.

That's wrong, so don't do it.

Signed-off-by: Peter Jones <pjones@redhat.com>
2015-06-11 13:20:09 -04:00
Peter Jones
8837b9054f Only run MokManager if asked or a security violation occurs.
Don't run MokManager on any random error from start_image(second_stage);
only try it if it /is/ the second stage, or if start_image gave us
EFI_SECURITY_VIOLATION.

Signed-off-by: Peter Jones <pjones@redhat.com>
2015-06-04 10:19:30 -04:00
Peter Jones
0b394a9480 Only run MokManager if asked or a security violation occurs.
Don't run MokManager on any random error from start_image(second_stage);
only try it if it /is/ the second stage, or if start_image gave us
EFI_SECURITY_VIOLATION.

Signed-off-by: Peter Jones <pjones@redhat.com>
2015-06-04 10:19:30 -04:00
Mathieu Trudel-Lapierre
c2f285a93f More GCC 5 fixes: stdarg.h and other include tweaks, cherry-pick from
d51739a4.
2015-05-12 21:51:24 -04:00
Mathieu Trudel-Lapierre
d6f876b850 Fix build with GCC 5, forcing -std=gnu89 to not rely on stdint.h
required by efibind.h, and not found with -nostdinc. (LP: #1429978)
2015-05-12 21:48:09 -04:00
Gary Ching-Pang Lin
80bcb57823 Make the build failed with objcopy < 2.24
The wildcard support was introduced in objcopy since binutils 2.24.
However, objcopy < 2.24 never issues any warning message with the
wildcard and a faulty binary will be generated. This commit makes
the build failed as a notification for the usage of binutils < 2.24.

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-05-12 13:52:22 -04:00
Gary Ching-Pang Lin
929b5b762b Make the build failed with objcopy < 2.24
The wildcard support was introduced in objcopy since binutils 2.24.
However, objcopy < 2.24 never issues any warning message with the
wildcard and a faulty binary will be generated. This commit makes
the build failed as a notification for the usage of binutils < 2.24.

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-05-12 13:52:22 -04:00
Gary Ching-Pang Lin
f3653b08a4 Update Cryptlib and openssl
Update Cryptlib to r16559 and openssl to 0.9.8zf

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-05-12 13:51:02 -04:00
Gary Ching-Pang Lin
3285f53941 Update Cryptlib and openssl
Update Cryptlib to r16559 and openssl to 0.9.8zf

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-05-12 13:51:02 -04:00