Merge pull request #116 from lumag/master

Use PKCS7 drivers compiled from OVMF source
This commit is contained in:
Jia Zhang
2019-09-04 22:20:29 +08:00
committed by GitHub
2 changed files with 65 additions and 13 deletions
@@ -21,7 +21,7 @@ LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d9bf404642f21afb4ad89f95d7bc91ee"
DEPENDS += "\
gnu-efi sbsigntool-native openssl-native \
gnu-efi sbsigntool-native openssl-native ovmf \
"
PV = "0.4.6+git${SRCPV}"
@@ -53,10 +53,6 @@ EFI_TARGET = "/boot/efi/EFI/BOOT"
python do_sign() {
sb_sign(d.expand('${B}/Src/Efi/SELoader.efi'), \
d.expand('${B}/Src/Efi/SELoader.efi.signed'), d)
sb_sign(d.expand('${B}/Bin/Hash2DxeCrypto.efi'), \
d.expand('${B}/Bin/Hash2DxeCrypto.efi.signed'), d)
sb_sign(d.expand('${B}/Bin/Pkcs7VerifyDxe.efi'), \
d.expand('${B}/Bin/Pkcs7VerifyDxe.efi.signed'), d)
}
addtask sign after do_compile before do_install
do_sign[prefuncs] += "check_deploy_keys"
@@ -65,6 +61,9 @@ do_install() {
install -d ${D}${EFI_TARGET}
oe_runmake install EFI_DESTDIR=${D}${EFI_TARGET}
# Remove precompiled files, now provided by OVMF
rm -f ${D}${EFI_TARGET}/Hash2DxeCrypto.efi
rm -f ${D}${EFI_TARGET}/Pkcs7VerifyDxe.efi
if [ x"${UEFI_SB}" = x"1" ]; then
if [ x"${MOK_SB}" != x"1" ]; then
@@ -80,8 +79,6 @@ do_deploy() {
install -m 0600 "${B}/Src/Efi/SELoader.efi" \
"${DEPLOYDIR}/efi-unsigned/SELoader${EFI_ARCH}.efi"
install -m 0600 "${B}/Bin/Hash2DxeCrypto.efi" "${DEPLOYDIR}/efi-unsigned"
install -m 0600 "${B}/Bin/Pkcs7VerifyDxe.efi" "${DEPLOYDIR}/efi-unsigned"
# Deploy the signed images
if [ x"${UEFI_SB}" = x"1" -a x"${MOK_SB}" != x"1" ]; then
@@ -91,15 +88,11 @@ do_deploy() {
fi
install -m 0600 "${D}${EFI_TARGET}/${SEL_NAME}${EFI_ARCH}.efi" \
"${DEPLOYDIR}/${SEL_NAME}${EFI_ARCH}.efi"
install -m 0600 "${D}${EFI_TARGET}/Hash2DxeCrypto.efi" \
"${DEPLOYDIR}/Hash2DxeCrypto.efi"
install -m 0600 "${D}${EFI_TARGET}/Pkcs7VerifyDxe.efi" \
"${DEPLOYDIR}/Pkcs7VerifyDxe.efi"
}
addtask deploy after do_install before do_build
RDEPENDS_${PN} += "ovmf-pkcs7-efi"
FILES_${PN} += "${EFI_TARGET}"
SSTATE_DUPWHITELIST += "${DEPLOY_DIR_IMAGE}/efi-unsigned"
SSTATE_DUPWHITELIST += "${DEPLOY_DIR_IMAGE}/Hash2DxeCrypto.efi"
SSTATE_DUPWHITELIST += "${DEPLOY_DIR_IMAGE}/Pkcs7VerifyDxe.efi"
@@ -0,0 +1,59 @@
inherit user-key-store
PACKAGECONFIG_append = " secureboot"
# For SELoader
do_compile_class-target_append() {
if ${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'true', 'false', d)}; then
secbuild_dir="${S}/Build/SecurityPkg/RELEASE_${FIXED_GCCVER}"
${S}/OvmfPkg/build.sh $PARALLEL_JOBS -a $OVMF_ARCH -b RELEASE -t ${FIXED_GCCVER} ${OVMF_SECURE_BOOT_FLAGS} -p SecurityPkg/SecurityPkg.dsc
ln ${secbuild_dir}/${OVMF_ARCH}/Hash2DxeCrypto.efi ${WORKDIR}/ovmf/
ln ${secbuild_dir}/${OVMF_ARCH}/Pkcs7VerifyDxe.efi ${WORKDIR}/ovmf/
fi
}
EFI_TARGET = "/boot/efi/EFI/BOOT"
do_install_class-target_append() {
if ${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'true', 'false', d)}; then
mkdir -p ${D}${EFI_TARGET}
if [ x"${UEFI_SB}" = x"1" ]; then
install ${WORKDIR}/ovmf/Hash2DxeCrypto.efi.signed ${D}${EFI_TARGET}/Hash2DxeCrypto.efi
install ${WORKDIR}/ovmf/Pkcs7VerifyDxe.efi.signed ${D}${EFI_TARGET}/Pkcs7VerifyDxe.efi
else
install ${WORKDIR}/ovmf/Hash2DxeCrypto.efi ${D}${EFI_TARGET}/Hash2DxeCrypto.efi
install ${WORKDIR}/ovmf/Pkcs7VerifyDxe.efi ${D}${EFI_TARGET}/Pkcs7VerifyDxe.efi
fi
fi
}
python do_sign() {
}
python do_sign_class-target() {
sb_sign(d.expand('${WORKDIR}/ovmf/Hash2DxeCrypto.efi'), d.expand('${WORKDIR}/ovmf/Hash2DxeCrypto.efi.signed'), d)
sb_sign(d.expand('${WORKDIR}/ovmf/Pkcs7VerifyDxe.efi'), d.expand('${WORKDIR}/ovmf/Pkcs7VerifyDxe.efi.signed'), d)
}
addtask sign after do_compile before do_install
do_deploy_class-target_append() {
if [ x"${UEFI_SB}" = x"1" ]; then
install -d ${DEPLOYDIR}/efi-unsigned
install ${WORKDIR}/ovmf/Pkcs7VerifyDxe.efi "${DEPLOYDIR}/efi-unsigned/Pkcs7VerifyDxe.efi"
install ${WORKDIR}/ovmf/Hash2DxeCrypto.efi "${DEPLOYDIR}/efi-unsigned/Hash2DxeCrypto.efi"
install ${WORKDIR}/ovmf/Pkcs7VerifyDxe.efi.signed "${DEPLOYDIR}/Pkcs7VerifyDxe.efi"
install ${WORKDIR}/ovmf/Hash2DxeCrypto.efi.signed "${DEPLOYDIR}/Hash2DxeCrypto.efi"
else
install ${WORKDIR}/ovmf/Pkcs7VerifyDxe.efi "${DEPLOYDIR}/Pkcs7VerifyDxe.efi"
install ${WORKDIR}/ovmf/Hash2DxeCrypto.efi "${DEPLOYDIR}/Hash2DxeCrypto.efi"
fi
}
PACKAGES += " \
ovmf-pkcs7-efi \
"
FILES_ovmf-pkcs7-efi += " \
${EFI_TARGET}/Hash2DxeCrypto.efi \
${EFI_TARGET}/Pkcs7VerifyDxe.efi \
"