df6f2801f5
The code to verify the new kernels sha digest is applicable for all architectures. Move it to common code. One problem is the string.c implementation on x86. Currently sha256 includes x86/boot/string.h which defines memcpy and memset to be gcc builtins. By moving the sha256 implementation to common code and changing the include to linux/string.h both functions are no longer defined. Thus definitions have to be provided in x86/purgatory/string.c Link: http://lkml.kernel.org/r/20180321112751.22196-12-prudo@linux.vnet.ibm.com Signed-off-by: Philipp Rudo <prudo@linux.vnet.ibm.com> Acked-by: Dave Young <dyoung@redhat.com> Cc: AKASHI Takahiro <takahiro.akashi@linaro.org> Cc: Eric Biederman <ebiederm@xmission.com> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Thiago Jung Bauermann <bauerman@linux.vnet.ibm.com> Cc: Vivek Goyal <vgoyal@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
30 lines
807 B
C
30 lines
807 B
C
/*
|
|
* Copyright (C) 2014 Red Hat Inc.
|
|
*
|
|
* Author: Vivek Goyal <vgoyal@redhat.com>
|
|
*
|
|
* This source code is licensed under the GNU General Public License,
|
|
* Version 2. See the file COPYING for more details.
|
|
*/
|
|
|
|
#ifndef SHA256_H
|
|
#define SHA256_H
|
|
|
|
#include <linux/types.h>
|
|
#include <crypto/sha.h>
|
|
|
|
/*
|
|
* Stand-alone implementation of the SHA256 algorithm. It is designed to
|
|
* have as little dependencies as possible so it can be used in the
|
|
* kexec_file purgatory. In other cases you should use the implementation in
|
|
* crypto/.
|
|
*
|
|
* For details see lib/sha256.c
|
|
*/
|
|
|
|
extern int sha256_init(struct sha256_state *sctx);
|
|
extern int sha256_update(struct sha256_state *sctx, const u8 *input,
|
|
unsigned int length);
|
|
extern int sha256_final(struct sha256_state *sctx, u8 *hash);
|
|
|
|
#endif /* SHA256_H */
|