Commit fb1c9f8
committed
Work around non specs-compliant firmwares that reject EFI_VARIABLE_AUTHENTICATION_2 with ContentInfo
* Welp, the EDK2 screwed up their implementation of VerifyTimeBasedPayload(), in breach of the UEFI specs, to return
EFI_SECURITY_VIOLATION if the PKCS#7 SignedData section contained a ContentInfo section, whereas, ever since 2.3.1,
the specs have clearly stated that ContentInfo should be part of the signature data.
* This was eventually fixed in tianocore/edk2@37d3eb0 but not before sways of UEFI
firmwares, such as the HP ProDesk ones, were shipped with the non specs compliant code...
* Since the HP firmware requires the provision of signed payloads when calling SetVariable() in Setup Mode, we now
make sure that our signed EFI_VARIABLE_AUTHENTICATION_2 structures are stripped of the ContentInfo section.
* Oh, and as a result of this mishap, recent UEFI specs have had to be modified to indicate that a modern compliant
implementation should accept signed payloads with OR without ContentInfo...
* Closes #17.1 parent 060f986 commit fb1c9f8
1 file changed
+16
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
585 | 585 | | |
586 | 586 | | |
587 | 587 | | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
588 | 602 | | |
589 | 603 | | |
590 | 604 | | |
591 | 605 | | |
592 | 606 | | |
593 | 607 | | |
594 | 608 | | |
595 | | - | |
| 609 | + | |
596 | 610 | | |
597 | 611 | | |
598 | 612 | | |
| |||
601 | 615 | | |
602 | 616 | | |
603 | 617 | | |
604 | | - | |
| 618 | + | |
605 | 619 | | |
606 | 620 | | |
607 | 621 | | |
| |||
0 commit comments