From 3ab91fbec937830f184108a244795a2e05cb275c Mon Sep 17 00:00:00 2001 From: Claudio Carvalho Date: Sat, 9 Dec 2017 02:52:19 -0200 Subject: libstb/secureboot.c: import sb_verify() from stb.c This imports the sb_verify() function from stb.c, but now it calls the CVC verify wrapper in order to verify signed firmware images. The hw-key-hash and hw-key-hash-size initialized in secureboot.c are passed to the CVC verify function wrapper. In secureboot.c, the sb_verify() is renamed to secureboot_verify(). The sb_verify() calls are updated in a subsequent patch. Signed-off-by: Claudio Carvalho Signed-off-by: Stewart Smith --- asm/Makefile.inc | 2 +- asm/cvc_entry.S | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ asm/rom_entry.S | 52 ---------------------------------------------------- 3 files changed, 53 insertions(+), 53 deletions(-) create mode 100644 asm/cvc_entry.S delete mode 100644 asm/rom_entry.S (limited to 'asm') diff --git a/asm/Makefile.inc b/asm/Makefile.inc index 34e2b288..2828caf9 100644 --- a/asm/Makefile.inc +++ b/asm/Makefile.inc @@ -1,7 +1,7 @@ # -*-Makefile-*- SUBDIRS += asm -ASM_OBJS = head.o misc.o kernel-wrapper.o rom_entry.o +ASM_OBJS = head.o misc.o kernel-wrapper.o cvc_entry.o ASM=asm/built-in.o # Add extra dependency to the kernel wrapper diff --git a/asm/cvc_entry.S b/asm/cvc_entry.S new file mode 100644 index 00000000..ccca006b --- /dev/null +++ b/asm/cvc_entry.S @@ -0,0 +1,52 @@ +# IBM_PROLOG_BEGIN_TAG +# This is an automatically generated prolog. +# +# $Source: src/usr/secureboot/base/rom_entry.S $ +# +# OpenPOWER HostBoot Project +# +# COPYRIGHT International Business Machines Corp. 2013,2016 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. See the License for the specific language governing +# permissions and limitations under the License. +# +# IBM_PROLOG_END_TAG + +#.include "kernel/ppcconsts.S" + +.section .text + +.global __cvc_verify_v1 +.global call_rom_SHA512 + +__cvc_verify_v1: +call_rom_SHA512: + +call_rom_entry: + std %r2, 40(%r1) + mflr %r0 + std %r0, 16(%r1) + stdu %r1, -128(%r1) + li %r2, 0 + mtctr %r3 + mr %r3, %r4 + mr %r4, %r5 + mr %r5, %r6 + mr %r6, %r7 + mr %r7, %r8 + bctrl + addi %r1, %r1, 128 + ld %r2, 40(%r1) + ld %r0, 16(%r1) + mtlr %r0 + blr + diff --git a/asm/rom_entry.S b/asm/rom_entry.S deleted file mode 100644 index 26d1b967..00000000 --- a/asm/rom_entry.S +++ /dev/null @@ -1,52 +0,0 @@ -# IBM_PROLOG_BEGIN_TAG -# This is an automatically generated prolog. -# -# $Source: src/usr/secureboot/base/rom_entry.S $ -# -# OpenPOWER HostBoot Project -# -# COPYRIGHT International Business Machines Corp. 2013,2016 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. See the License for the specific language governing -# permissions and limitations under the License. -# -# IBM_PROLOG_END_TAG - -#.include "kernel/ppcconsts.S" - -.section .text - -.global call_rom_verify -.global call_rom_SHA512 - -call_rom_verify: -call_rom_SHA512: - -call_rom_entry: - std %r2, 40(%r1) - mflr %r0 - std %r0, 16(%r1) - stdu %r1, -128(%r1) - li %r2, 0 - mtctr %r3 - mr %r3, %r4 - mr %r4, %r5 - mr %r5, %r6 - mr %r6, %r7 - mr %r7, %r8 - bctrl - addi %r1, %r1, 128 - ld %r2, 40(%r1) - ld %r0, 16(%r1) - mtlr %r0 - blr - -- cgit v1.2.1