diff options
| author | Jia Zhang <qianyue.zj@alibaba-inc.com> | 2019-09-04 22:20:29 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-09-04 22:20:29 +0800 |
| commit | 0cea6e869fe9b1597042b2febaa60c85710ba306 (patch) | |
| tree | 58fb9da74ff4b530f2a1ffccc79456370f822aa1 | |
| parent | df51a87b5a8a99902a43cf3ec139df0a0927fe81 (diff) | |
| parent | 883be5aff51ab9e752357fae358d654529bf3d1f (diff) | |
| download | meta-secure-core-0cea6e869fe9b1597042b2febaa60c85710ba306.tar.gz | |
Merge pull request #116 from lumag/master
Use PKCS7 drivers compiled from OVMF source
| -rw-r--r-- | meta-efi-secure-boot/recipes-bsp/seloader/seloader_git.bb | 19 | ||||
| -rw-r--r-- | meta-efi-secure-boot/recipes-core/ovmf/ovmf_%.bbappend | 59 |
2 files changed, 65 insertions, 13 deletions
diff --git a/meta-efi-secure-boot/recipes-bsp/seloader/seloader_git.bb b/meta-efi-secure-boot/recipes-bsp/seloader/seloader_git.bb index 0931af3..fee1504 100644 --- a/meta-efi-secure-boot/recipes-bsp/seloader/seloader_git.bb +++ b/meta-efi-secure-boot/recipes-bsp/seloader/seloader_git.bb | |||
| @@ -21,7 +21,7 @@ LICENSE = "BSD-3-Clause" | |||
| 21 | LIC_FILES_CHKSUM = "file://LICENSE;md5=d9bf404642f21afb4ad89f95d7bc91ee" | 21 | LIC_FILES_CHKSUM = "file://LICENSE;md5=d9bf404642f21afb4ad89f95d7bc91ee" |
| 22 | 22 | ||
| 23 | DEPENDS += "\ | 23 | DEPENDS += "\ |
| 24 | gnu-efi sbsigntool-native openssl-native \ | 24 | gnu-efi sbsigntool-native openssl-native ovmf \ |
| 25 | " | 25 | " |
| 26 | 26 | ||
| 27 | PV = "0.4.6+git${SRCPV}" | 27 | PV = "0.4.6+git${SRCPV}" |
| @@ -53,10 +53,6 @@ EFI_TARGET = "/boot/efi/EFI/BOOT" | |||
| 53 | python do_sign() { | 53 | python do_sign() { |
| 54 | sb_sign(d.expand('${B}/Src/Efi/SELoader.efi'), \ | 54 | sb_sign(d.expand('${B}/Src/Efi/SELoader.efi'), \ |
| 55 | d.expand('${B}/Src/Efi/SELoader.efi.signed'), d) | 55 | d.expand('${B}/Src/Efi/SELoader.efi.signed'), d) |
| 56 | sb_sign(d.expand('${B}/Bin/Hash2DxeCrypto.efi'), \ | ||
| 57 | d.expand('${B}/Bin/Hash2DxeCrypto.efi.signed'), d) | ||
| 58 | sb_sign(d.expand('${B}/Bin/Pkcs7VerifyDxe.efi'), \ | ||
| 59 | d.expand('${B}/Bin/Pkcs7VerifyDxe.efi.signed'), d) | ||
| 60 | } | 56 | } |
| 61 | addtask sign after do_compile before do_install | 57 | addtask sign after do_compile before do_install |
| 62 | do_sign[prefuncs] += "check_deploy_keys" | 58 | do_sign[prefuncs] += "check_deploy_keys" |
| @@ -65,6 +61,9 @@ do_install() { | |||
| 65 | install -d ${D}${EFI_TARGET} | 61 | install -d ${D}${EFI_TARGET} |
| 66 | 62 | ||
| 67 | oe_runmake install EFI_DESTDIR=${D}${EFI_TARGET} | 63 | oe_runmake install EFI_DESTDIR=${D}${EFI_TARGET} |
| 64 | # Remove precompiled files, now provided by OVMF | ||
| 65 | rm -f ${D}${EFI_TARGET}/Hash2DxeCrypto.efi | ||
| 66 | rm -f ${D}${EFI_TARGET}/Pkcs7VerifyDxe.efi | ||
| 68 | 67 | ||
| 69 | if [ x"${UEFI_SB}" = x"1" ]; then | 68 | if [ x"${UEFI_SB}" = x"1" ]; then |
| 70 | if [ x"${MOK_SB}" != x"1" ]; then | 69 | if [ x"${MOK_SB}" != x"1" ]; then |
| @@ -80,8 +79,6 @@ do_deploy() { | |||
| 80 | 79 | ||
| 81 | install -m 0600 "${B}/Src/Efi/SELoader.efi" \ | 80 | install -m 0600 "${B}/Src/Efi/SELoader.efi" \ |
| 82 | "${DEPLOYDIR}/efi-unsigned/SELoader${EFI_ARCH}.efi" | 81 | "${DEPLOYDIR}/efi-unsigned/SELoader${EFI_ARCH}.efi" |
| 83 | install -m 0600 "${B}/Bin/Hash2DxeCrypto.efi" "${DEPLOYDIR}/efi-unsigned" | ||
| 84 | install -m 0600 "${B}/Bin/Pkcs7VerifyDxe.efi" "${DEPLOYDIR}/efi-unsigned" | ||
| 85 | 82 | ||
| 86 | # Deploy the signed images | 83 | # Deploy the signed images |
| 87 | if [ x"${UEFI_SB}" = x"1" -a x"${MOK_SB}" != x"1" ]; then | 84 | if [ x"${UEFI_SB}" = x"1" -a x"${MOK_SB}" != x"1" ]; then |
| @@ -91,15 +88,11 @@ do_deploy() { | |||
| 91 | fi | 88 | fi |
| 92 | install -m 0600 "${D}${EFI_TARGET}/${SEL_NAME}${EFI_ARCH}.efi" \ | 89 | install -m 0600 "${D}${EFI_TARGET}/${SEL_NAME}${EFI_ARCH}.efi" \ |
| 93 | "${DEPLOYDIR}/${SEL_NAME}${EFI_ARCH}.efi" | 90 | "${DEPLOYDIR}/${SEL_NAME}${EFI_ARCH}.efi" |
| 94 | install -m 0600 "${D}${EFI_TARGET}/Hash2DxeCrypto.efi" \ | ||
| 95 | "${DEPLOYDIR}/Hash2DxeCrypto.efi" | ||
| 96 | install -m 0600 "${D}${EFI_TARGET}/Pkcs7VerifyDxe.efi" \ | ||
| 97 | "${DEPLOYDIR}/Pkcs7VerifyDxe.efi" | ||
| 98 | } | 91 | } |
| 99 | addtask deploy after do_install before do_build | 92 | addtask deploy after do_install before do_build |
| 100 | 93 | ||
| 94 | RDEPENDS_${PN} += "ovmf-pkcs7-efi" | ||
| 95 | |||
| 101 | FILES_${PN} += "${EFI_TARGET}" | 96 | FILES_${PN} += "${EFI_TARGET}" |
| 102 | 97 | ||
| 103 | SSTATE_DUPWHITELIST += "${DEPLOY_DIR_IMAGE}/efi-unsigned" | 98 | SSTATE_DUPWHITELIST += "${DEPLOY_DIR_IMAGE}/efi-unsigned" |
| 104 | SSTATE_DUPWHITELIST += "${DEPLOY_DIR_IMAGE}/Hash2DxeCrypto.efi" | ||
| 105 | SSTATE_DUPWHITELIST += "${DEPLOY_DIR_IMAGE}/Pkcs7VerifyDxe.efi" | ||
diff --git a/meta-efi-secure-boot/recipes-core/ovmf/ovmf_%.bbappend b/meta-efi-secure-boot/recipes-core/ovmf/ovmf_%.bbappend new file mode 100644 index 0000000..69a0e4b --- /dev/null +++ b/meta-efi-secure-boot/recipes-core/ovmf/ovmf_%.bbappend | |||
| @@ -0,0 +1,59 @@ | |||
| 1 | inherit user-key-store | ||
| 2 | |||
| 3 | PACKAGECONFIG_append = " secureboot" | ||
| 4 | |||
| 5 | # For SELoader | ||
| 6 | do_compile_class-target_append() { | ||
| 7 | if ${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'true', 'false', d)}; then | ||
| 8 | secbuild_dir="${S}/Build/SecurityPkg/RELEASE_${FIXED_GCCVER}" | ||
| 9 | ${S}/OvmfPkg/build.sh $PARALLEL_JOBS -a $OVMF_ARCH -b RELEASE -t ${FIXED_GCCVER} ${OVMF_SECURE_BOOT_FLAGS} -p SecurityPkg/SecurityPkg.dsc | ||
| 10 | ln ${secbuild_dir}/${OVMF_ARCH}/Hash2DxeCrypto.efi ${WORKDIR}/ovmf/ | ||
| 11 | ln ${secbuild_dir}/${OVMF_ARCH}/Pkcs7VerifyDxe.efi ${WORKDIR}/ovmf/ | ||
| 12 | fi | ||
| 13 | } | ||
| 14 | |||
| 15 | EFI_TARGET = "/boot/efi/EFI/BOOT" | ||
| 16 | |||
| 17 | do_install_class-target_append() { | ||
| 18 | if ${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'true', 'false', d)}; then | ||
| 19 | mkdir -p ${D}${EFI_TARGET} | ||
| 20 | if [ x"${UEFI_SB}" = x"1" ]; then | ||
| 21 | install ${WORKDIR}/ovmf/Hash2DxeCrypto.efi.signed ${D}${EFI_TARGET}/Hash2DxeCrypto.efi | ||
| 22 | install ${WORKDIR}/ovmf/Pkcs7VerifyDxe.efi.signed ${D}${EFI_TARGET}/Pkcs7VerifyDxe.efi | ||
| 23 | else | ||
| 24 | install ${WORKDIR}/ovmf/Hash2DxeCrypto.efi ${D}${EFI_TARGET}/Hash2DxeCrypto.efi | ||
| 25 | install ${WORKDIR}/ovmf/Pkcs7VerifyDxe.efi ${D}${EFI_TARGET}/Pkcs7VerifyDxe.efi | ||
| 26 | fi | ||
| 27 | fi | ||
| 28 | } | ||
| 29 | |||
| 30 | python do_sign() { | ||
| 31 | } | ||
| 32 | |||
| 33 | python do_sign_class-target() { | ||
| 34 | sb_sign(d.expand('${WORKDIR}/ovmf/Hash2DxeCrypto.efi'), d.expand('${WORKDIR}/ovmf/Hash2DxeCrypto.efi.signed'), d) | ||
| 35 | sb_sign(d.expand('${WORKDIR}/ovmf/Pkcs7VerifyDxe.efi'), d.expand('${WORKDIR}/ovmf/Pkcs7VerifyDxe.efi.signed'), d) | ||
| 36 | } | ||
| 37 | addtask sign after do_compile before do_install | ||
| 38 | |||
| 39 | do_deploy_class-target_append() { | ||
| 40 | if [ x"${UEFI_SB}" = x"1" ]; then | ||
| 41 | install -d ${DEPLOYDIR}/efi-unsigned | ||
| 42 | install ${WORKDIR}/ovmf/Pkcs7VerifyDxe.efi "${DEPLOYDIR}/efi-unsigned/Pkcs7VerifyDxe.efi" | ||
| 43 | install ${WORKDIR}/ovmf/Hash2DxeCrypto.efi "${DEPLOYDIR}/efi-unsigned/Hash2DxeCrypto.efi" | ||
| 44 | install ${WORKDIR}/ovmf/Pkcs7VerifyDxe.efi.signed "${DEPLOYDIR}/Pkcs7VerifyDxe.efi" | ||
| 45 | install ${WORKDIR}/ovmf/Hash2DxeCrypto.efi.signed "${DEPLOYDIR}/Hash2DxeCrypto.efi" | ||
| 46 | else | ||
| 47 | install ${WORKDIR}/ovmf/Pkcs7VerifyDxe.efi "${DEPLOYDIR}/Pkcs7VerifyDxe.efi" | ||
| 48 | install ${WORKDIR}/ovmf/Hash2DxeCrypto.efi "${DEPLOYDIR}/Hash2DxeCrypto.efi" | ||
| 49 | fi | ||
| 50 | } | ||
| 51 | |||
| 52 | PACKAGES += " \ | ||
| 53 | ovmf-pkcs7-efi \ | ||
| 54 | " | ||
| 55 | |||
| 56 | FILES_ovmf-pkcs7-efi += " \ | ||
| 57 | ${EFI_TARGET}/Hash2DxeCrypto.efi \ | ||
| 58 | ${EFI_TARGET}/Pkcs7VerifyDxe.efi \ | ||
| 59 | " | ||
