summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-06-10Make DBX be included in build if the environment is set right.Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-06-10Make .vendor_cert get the right flags set.Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-06-10Make .vendor_cert get the right flags set.Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-06-10add a .gitignorePeter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-06-10add a .gitignorePeter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-06-10Move embedded certificates to their own section.Peter Jones
With this change, the embedded certificate and dbx lists (vendor_cert, vendor_cert_size, vendor_dbx, and vendor_dbx_size) wind up being in a section named .vendor_cert, and so will look something like: ------ fenchurch:~/devel/github.com/shim$ objdump -h shim.efi shim.efi: file format pei-x86-64 Sections: Idx Name Size VMA LMA File off Algn 0 .eh_frame 000174a8 0000000000005000 0000000000005000 00000400 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA 1 .text 000aa7e1 000000000001d000 000000000001d000 00017a00 2**4 CONTENTS, ALLOC, LOAD, READONLY, CODE 2 .reloc 0000000a 00000000000c8000 00000000000c8000 000c2200 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA 3 .data 00031228 00000000000c9000 00000000000c9000 000c2400 2**5 CONTENTS, ALLOC, LOAD, DATA 4 .vendor_cert 00000375 00000000000fb000 00000000000fb000 000f3800 2**0 CONTENTS, READONLY 5 .dynamic 000000f0 00000000000fc000 00000000000fc000 000f3c00 2**3 CONTENTS, ALLOC, LOAD, DATA 6 .rela 0002afa8 00000000000fd000 00000000000fd000 000f3e00 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA 7 .dynsym 0000f1f8 0000000000128000 0000000000128000 0011ee00 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA ------ This simplifies a security audit, because it means that different versions of shim with substantially the same code with different keys will be more easily comperable, and therefore logic differences may be more easily identified. This also means that if there's a trusted build you want to use, you can remove the certificates, implant new ones, and have it signed, and the code sections won't change. Signed-off-by: Peter Jones <pjones@redhat.com>
2013-06-10Move embedded certificates to their own section.Peter Jones
With this change, the embedded certificate and dbx lists (vendor_cert, vendor_cert_size, vendor_dbx, and vendor_dbx_size) wind up being in a section named .vendor_cert, and so will look something like: ------ fenchurch:~/devel/github.com/shim$ objdump -h shim.efi shim.efi: file format pei-x86-64 Sections: Idx Name Size VMA LMA File off Algn 0 .eh_frame 000174a8 0000000000005000 0000000000005000 00000400 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA 1 .text 000aa7e1 000000000001d000 000000000001d000 00017a00 2**4 CONTENTS, ALLOC, LOAD, READONLY, CODE 2 .reloc 0000000a 00000000000c8000 00000000000c8000 000c2200 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA 3 .data 00031228 00000000000c9000 00000000000c9000 000c2400 2**5 CONTENTS, ALLOC, LOAD, DATA 4 .vendor_cert 00000375 00000000000fb000 00000000000fb000 000f3800 2**0 CONTENTS, READONLY 5 .dynamic 000000f0 00000000000fc000 00000000000fc000 000f3c00 2**3 CONTENTS, ALLOC, LOAD, DATA 6 .rela 0002afa8 00000000000fd000 00000000000fd000 000f3e00 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA 7 .dynsym 0000f1f8 0000000000128000 0000000000128000 0011ee00 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA ------ This simplifies a security audit, because it means that different versions of shim with substantially the same code with different keys will be more easily comperable, and therefore logic differences may be more easily identified. This also means that if there's a trusted build you want to use, you can remove the certificates, implant new ones, and have it signed, and the code sections won't change. Signed-off-by: Peter Jones <pjones@redhat.com>
2013-06-10vendor_cert_size's size in the binary should be 4, not -4.Peter Jones
The thing about subtraction is that the minuend needs to be before the subtrahend in the text. Signed-off-by: Peter Jones <pjones@redhat.com>
2013-06-10vendor_cert_size's size in the binary should be 4, not -4.Peter Jones
The thing about subtraction is that the minuend needs to be before the subtrahend in the text. Signed-off-by: Peter Jones <pjones@redhat.com>
2013-06-10Remove FALLBACK_OBJS during clean as well.Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-06-10Remove FALLBACK_OBJS during clean as well.Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-06-10Make sure all the Makefiles use the same arguments for mmx/sse/ms_abi.Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-06-10Make sure all the Makefiles use the same arguments for mmx/sse/ms_abi.Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-31EFI_PXE_BASE_CODE_DHCPV6_PACKET is in gnu-efi-3.0tPeter Jones
2013-05-31EFI_PXE_BASE_CODE_DHCPV6_PACKET is in gnu-efi-3.0tPeter Jones
2013-05-31Don't use MMX and SSE registers, they aren't initialized.Peter Jones
GCC 4.8.0 will try to use these by default, and you'll wind up looping across the (uninitialized!) trap handler for uninitialized instructions. Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-31Don't use MMX and SSE registers, they aren't initialized.Peter Jones
GCC 4.8.0 will try to use these by default, and you'll wind up looping across the (uninitialized!) trap handler for uninitialized instructions. Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-16Bump version to 0.3Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-16Bump version to 0.30.3Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-16Use MS ABI instead of terrible wrappers.Peter Jones
This means that we now require gnu-efi 3.0s Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-16Use MS ABI instead of terrible wrappers.Peter Jones
This means that we now require gnu-efi 3.0s Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-15Use the correct define on Open.Peter Jones
The value here doesn't actually change any, but we should still use the right name. Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-15Use the correct define on Open.Peter Jones
The value here doesn't actually change any, but we should still use the right name. Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-15Add some error messages when things don't work.Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-15Add some error messages when things don't work.Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-15Remove some unnecessary code.Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-15Remove some unnecessary code.Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-15Fix some minor type errors.Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-15Fix some minor type errors.Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-14Pass parameters correctly when booting.Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-14Pass parameters correctly when booting.Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-02[fallback] Try to execute the first new boot option.Peter Jones
I'm told rebooting is sometimes unreliable when called here, and we'll get bootx64.efi loaded anyway. I'll just assume that's true and try to load the first option, since it's clearly what we'd prefer happens next. Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-02[fallback] Try to execute the first new boot option.Peter Jones
I'm told rebooting is sometimes unreliable when called here, and we'll get bootx64.efi loaded anyway. I'll just assume that's true and try to load the first option, since it's clearly what we'd prefer happens next. Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30Explain byte order handling better.Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30Explain byte order handling better.Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30Don't update BootOrder until all csv files are processedGary Ching-Pang Lin
2013-04-30Don't update BootOrder until all csv files are processedGary Ching-Pang Lin
2013-04-30Reset the system after restoring the boot entriesGary Ching-Pang Lin
2013-04-30Reset the system after restoring the boot entriesGary Ching-Pang Lin
2013-04-30Fix crash due to memory allocationGary Ching-Pang Lin
2013-04-30Fix crash due to memory allocationGary Ching-Pang Lin
2013-04-30Get rid of extra "continue".Peter Jones
It's confusing, and it doesn't actually accomplish anything when applied to *either* loop. Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30Get rid of extra "continue".Peter Jones
It's confusing, and it doesn't actually accomplish anything when applied to *either* loop. Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30Fix error checking on AllocateZeroPool() in update_boot_order()Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30Fix error checking on AllocateZeroPool() in update_boot_order()Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30Make shim use fallback when appropriate.Peter Jones
If we're called as /BOOT/EFI/BOOT*.EFI, and /BOOT/EFI/FALLBACK.EFI exists, give it a shot. Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30Make shim use fallback when appropriate.Peter Jones
If we're called as /BOOT/EFI/BOOT*.EFI, and /BOOT/EFI/FALLBACK.EFI exists, give it a shot. Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30Add a fallback loader for when shim is invoked as BOOTX64.EFIPeter Jones
If shim is invoked as \EFI\BOOT\BOOT*.EFI and a file exists named \EFI\BOOT\FALLBACK.EFI, try it instead of our second stage. So don't put fallback.efi on your install media in \EFI\BOOT, because that won't do whatever it is you're hoping for, unless you're hoping not to start the installer. So here's the process for using this: in /EFI/fedora/ (or whichever directory you happen to own), you put: shim.efi grub.efi boot.csv - format is: shim.efi,Nice Label,cmdline arguments,comments - filenames refer only to files in this directory, with no leading characters such as L"./" or L"/EFI/fedora/" - note that while this is CSV, the character encoding is UCS-2 and if /EFI/BOOT/BOOTX64.EFI doesn't already exist, then in /EFI/BOOT: shim.efi as BOOTX64.EFI fallback.efi Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30Add a fallback loader for when shim is invoked as BOOTX64.EFIPeter Jones
If shim is invoked as \EFI\BOOT\BOOT*.EFI and a file exists named \EFI\BOOT\FALLBACK.EFI, try it instead of our second stage. So don't put fallback.efi on your install media in \EFI\BOOT, because that won't do whatever it is you're hoping for, unless you're hoping not to start the installer. So here's the process for using this: in /EFI/fedora/ (or whichever directory you happen to own), you put: shim.efi grub.efi boot.csv - format is: shim.efi,Nice Label,cmdline arguments,comments - filenames refer only to files in this directory, with no leading characters such as L"./" or L"/EFI/fedora/" - note that while this is CSV, the character encoding is UCS-2 and if /EFI/BOOT/BOOTX64.EFI doesn't already exist, then in /EFI/BOOT: shim.efi as BOOTX64.EFI fallback.efi Signed-off-by: Peter Jones <pjones@redhat.com>
2013-04-30Add StrCSpn()Peter Jones
Signed-off-by: Peter Jones <pjones@redhat.com>