mirror of
https://github.com/jiazhang0/meta-secure-core.git
synced 2026-07-17 05:06:59 +00:00
Merge pull request #116 from lumag/master
Use PKCS7 drivers compiled from OVMF source
This commit is contained in:
@@ -21,7 +21,7 @@ LICENSE = "BSD-3-Clause"
|
|||||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=d9bf404642f21afb4ad89f95d7bc91ee"
|
LIC_FILES_CHKSUM = "file://LICENSE;md5=d9bf404642f21afb4ad89f95d7bc91ee"
|
||||||
|
|
||||||
DEPENDS += "\
|
DEPENDS += "\
|
||||||
gnu-efi sbsigntool-native openssl-native \
|
gnu-efi sbsigntool-native openssl-native ovmf \
|
||||||
"
|
"
|
||||||
|
|
||||||
PV = "0.4.6+git${SRCPV}"
|
PV = "0.4.6+git${SRCPV}"
|
||||||
@@ -53,10 +53,6 @@ EFI_TARGET = "/boot/efi/EFI/BOOT"
|
|||||||
python do_sign() {
|
python do_sign() {
|
||||||
sb_sign(d.expand('${B}/Src/Efi/SELoader.efi'), \
|
sb_sign(d.expand('${B}/Src/Efi/SELoader.efi'), \
|
||||||
d.expand('${B}/Src/Efi/SELoader.efi.signed'), d)
|
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
|
addtask sign after do_compile before do_install
|
||||||
do_sign[prefuncs] += "check_deploy_keys"
|
do_sign[prefuncs] += "check_deploy_keys"
|
||||||
@@ -65,6 +61,9 @@ do_install() {
|
|||||||
install -d ${D}${EFI_TARGET}
|
install -d ${D}${EFI_TARGET}
|
||||||
|
|
||||||
oe_runmake install EFI_DESTDIR=${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"${UEFI_SB}" = x"1" ]; then
|
||||||
if [ x"${MOK_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" \
|
install -m 0600 "${B}/Src/Efi/SELoader.efi" \
|
||||||
"${DEPLOYDIR}/efi-unsigned/SELoader${EFI_ARCH}.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
|
# Deploy the signed images
|
||||||
if [ x"${UEFI_SB}" = x"1" -a x"${MOK_SB}" != x"1" ]; then
|
if [ x"${UEFI_SB}" = x"1" -a x"${MOK_SB}" != x"1" ]; then
|
||||||
@@ -91,15 +88,11 @@ do_deploy() {
|
|||||||
fi
|
fi
|
||||||
install -m 0600 "${D}${EFI_TARGET}/${SEL_NAME}${EFI_ARCH}.efi" \
|
install -m 0600 "${D}${EFI_TARGET}/${SEL_NAME}${EFI_ARCH}.efi" \
|
||||||
"${DEPLOYDIR}/${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
|
addtask deploy after do_install before do_build
|
||||||
|
|
||||||
|
RDEPENDS_${PN} += "ovmf-pkcs7-efi"
|
||||||
|
|
||||||
FILES_${PN} += "${EFI_TARGET}"
|
FILES_${PN} += "${EFI_TARGET}"
|
||||||
|
|
||||||
SSTATE_DUPWHITELIST += "${DEPLOY_DIR_IMAGE}/efi-unsigned"
|
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 \
|
||||||
|
"
|
||||||
Reference in New Issue
Block a user