summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJia Zhang <qianyue.zj@alibaba-inc.com>2019-09-04 22:20:29 +0800
committerGitHub <noreply@github.com>2019-09-04 22:20:29 +0800
commit0cea6e869fe9b1597042b2febaa60c85710ba306 (patch)
tree58fb9da74ff4b530f2a1ffccc79456370f822aa1
parentdf51a87b5a8a99902a43cf3ec139df0a0927fe81 (diff)
parent883be5aff51ab9e752357fae358d654529bf3d1f (diff)
downloadmeta-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.bb19
-rw-r--r--meta-efi-secure-boot/recipes-core/ovmf/ovmf_%.bbappend59
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"
21LIC_FILES_CHKSUM = "file://LICENSE;md5=d9bf404642f21afb4ad89f95d7bc91ee" 21LIC_FILES_CHKSUM = "file://LICENSE;md5=d9bf404642f21afb4ad89f95d7bc91ee"
22 22
23DEPENDS += "\ 23DEPENDS += "\
24 gnu-efi sbsigntool-native openssl-native \ 24 gnu-efi sbsigntool-native openssl-native ovmf \
25" 25"
26 26
27PV = "0.4.6+git${SRCPV}" 27PV = "0.4.6+git${SRCPV}"
@@ -53,10 +53,6 @@ EFI_TARGET = "/boot/efi/EFI/BOOT"
53python do_sign() { 53python 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}
61addtask sign after do_compile before do_install 57addtask sign after do_compile before do_install
62do_sign[prefuncs] += "check_deploy_keys" 58do_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}
99addtask deploy after do_install before do_build 92addtask deploy after do_install before do_build
100 93
94RDEPENDS_${PN} += "ovmf-pkcs7-efi"
95
101FILES_${PN} += "${EFI_TARGET}" 96FILES_${PN} += "${EFI_TARGET}"
102 97
103SSTATE_DUPWHITELIST += "${DEPLOY_DIR_IMAGE}/efi-unsigned" 98SSTATE_DUPWHITELIST += "${DEPLOY_DIR_IMAGE}/efi-unsigned"
104SSTATE_DUPWHITELIST += "${DEPLOY_DIR_IMAGE}/Hash2DxeCrypto.efi"
105SSTATE_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 @@
1inherit user-key-store
2
3PACKAGECONFIG_append = " secureboot"
4
5# For SELoader
6do_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
15EFI_TARGET = "/boot/efi/EFI/BOOT"
16
17do_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
30python do_sign() {
31}
32
33python 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}
37addtask sign after do_compile before do_install
38
39do_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
52PACKAGES += " \
53 ovmf-pkcs7-efi \
54"
55
56FILES_ovmf-pkcs7-efi += " \
57 ${EFI_TARGET}/Hash2DxeCrypto.efi \
58 ${EFI_TARGET}/Pkcs7VerifyDxe.efi \
59"