mirror of
https://github.com/opnsense/src.git
synced 2026-06-07 07:42:26 -04:00
ossl: Move arm_arch.h to a common subdirectory
OpenSSL itself keeps only a single copy of this header. Do the same in sys/crypto/openssl to avoid the extra maintenance burden. This requires adjusting the include paths for generated asm files. No functional change intended. Reported by: jrtc27 Reviewed by: jhb MFC after: 3 months Differential Revision: https://reviews.freebsd.org/D42866
This commit is contained in:
parent
5b36076d28
commit
e655cc70df
11 changed files with 28 additions and 101 deletions
|
|
@ -46,7 +46,7 @@ ASM= ${SRCS:R:S/$/.S/} sha256-armv8.S
|
||||||
|
|
||||||
all: ${ASM}
|
all: ${ASM}
|
||||||
rm -f ${ASM:R:S/$/.s/}
|
rm -f ${ASM:R:S/$/.s/}
|
||||||
${CP} ${LCRYPTO_SRC}/crypto/arm_arch.h arm_arch.h
|
${CP} ${LCRYPTO_SRC}/crypto/arm_arch.h ../arm_arch.h
|
||||||
|
|
||||||
CLEANFILES= ${ASM}
|
CLEANFILES= ${ASM}
|
||||||
.SUFFIXES: .pl
|
.SUFFIXES: .pl
|
||||||
|
|
@ -186,6 +186,7 @@ ASM= ${SRCS:R:S/$/.S/}
|
||||||
|
|
||||||
all: ${ASM}
|
all: ${ASM}
|
||||||
rm -f ${ASM:R:S/$/.s/}
|
rm -f ${ASM:R:S/$/.s/}
|
||||||
|
${CP} ${LCRYPTO_SRC}/crypto/arm_arch.h ../arm_arch.h
|
||||||
|
|
||||||
CLEANFILES= ${ASM}
|
CLEANFILES= ${ASM}
|
||||||
.SUFFIXES: .pl
|
.SUFFIXES: .pl
|
||||||
|
|
|
||||||
|
|
@ -137,15 +137,22 @@ libkern/umoddi3.c standard
|
||||||
|
|
||||||
crypto/openssl/ossl_arm.c optional ossl
|
crypto/openssl/ossl_arm.c optional ossl
|
||||||
crypto/openssl/arm/ossl_aes_gcm.c optional ossl
|
crypto/openssl/arm/ossl_aes_gcm.c optional ossl
|
||||||
crypto/openssl/arm/aes-armv4.S optional ossl
|
crypto/openssl/arm/aes-armv4.S optional ossl \
|
||||||
|
compile-with "${NORMAL_C} -I${SRCTOP}/sys/crypto/openssl"
|
||||||
crypto/openssl/arm/bsaes-armv7.S optional ossl \
|
crypto/openssl/arm/bsaes-armv7.S optional ossl \
|
||||||
compile-with "${CC} -D__KERNEL__ -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${.IMPSRC}"
|
compile-with "${CC} -D__KERNEL__ -c ${CFLAGS:N-mgeneral-regs-only} -I${SRCTOP}/sys/crypto/openssl ${WERROR} ${.IMPSRC}"
|
||||||
crypto/openssl/arm/chacha-armv4.S optional ossl
|
crypto/openssl/arm/chacha-armv4.S optional ossl \
|
||||||
crypto/openssl/arm/ghash-armv4.S optional ossl
|
compile-with "${NORMAL_C} -I${SRCTOP}/sys/crypto/openssl"
|
||||||
crypto/openssl/arm/poly1305-armv4.S optional ossl
|
crypto/openssl/arm/ghash-armv4.S optional ossl \
|
||||||
crypto/openssl/arm/sha1-armv4-large.S optional ossl
|
compile-with "${NORMAL_C} -I${SRCTOP}/sys/crypto/openssl"
|
||||||
crypto/openssl/arm/sha256-armv4.S optional ossl
|
crypto/openssl/arm/poly1305-armv4.S optional ossl \
|
||||||
crypto/openssl/arm/sha512-armv4.S optional ossl
|
compile-with "${NORMAL_C} -I${SRCTOP}/sys/crypto/openssl"
|
||||||
|
crypto/openssl/arm/sha1-armv4-large.S optional ossl \
|
||||||
|
compile-with "${NORMAL_C} -I${SRCTOP}/sys/crypto/openssl"
|
||||||
|
crypto/openssl/arm/sha256-armv4.S optional ossl \
|
||||||
|
compile-with "${NORMAL_C} -I${SRCTOP}/sys/crypto/openssl"
|
||||||
|
crypto/openssl/arm/sha512-armv4.S optional ossl \
|
||||||
|
compile-with "${NORMAL_C} -I${SRCTOP}/sys/crypto/openssl"
|
||||||
|
|
||||||
# Annapurna support
|
# Annapurna support
|
||||||
arm/annapurna/alpine/alpine_ccu.c optional al_ccu fdt
|
arm/annapurna/alpine/alpine_ccu.c optional al_ccu fdt
|
||||||
|
|
|
||||||
|
|
@ -119,17 +119,17 @@ dev/iommu/iommu_gas.c optional iommu
|
||||||
crypto/armv8/armv8_crypto.c optional armv8crypto
|
crypto/armv8/armv8_crypto.c optional armv8crypto
|
||||||
armv8_crypto_wrap.o optional armv8crypto \
|
armv8_crypto_wrap.o optional armv8crypto \
|
||||||
dependency "$S/crypto/armv8/armv8_crypto_wrap.c" \
|
dependency "$S/crypto/armv8/armv8_crypto_wrap.c" \
|
||||||
compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} -I$S/crypto/armv8/ ${WERROR} ${NO_WCAST_QUAL} ${CFLAGS:M-march=*:S/^$/-march=armv8-a/}+crypto ${.IMPSRC}" \
|
compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} -I$S/crypto/armv8 ${WERROR} ${NO_WCAST_QUAL} ${CFLAGS:M-march=*:S/^$/-march=armv8-a/}+crypto ${.IMPSRC}" \
|
||||||
no-implicit-rule \
|
no-implicit-rule \
|
||||||
clean "armv8_crypto_wrap.o"
|
clean "armv8_crypto_wrap.o"
|
||||||
aesv8-armx.o optional armv8crypto | ossl \
|
aesv8-armx.o optional armv8crypto | ossl \
|
||||||
dependency "$S/crypto/openssl/aarch64/aesv8-armx.S" \
|
dependency "$S/crypto/openssl/aarch64/aesv8-armx.S" \
|
||||||
compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} -I$S/crypto/armv8/ ${WERROR} ${NO_WCAST_QUAL} ${CFLAGS:M-march=*:S/^$/-march=armv8-a/}+crypto ${.IMPSRC}" \
|
compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} -I$S/crypto/armv8 -I$S/crypto/openssl ${WERROR} ${NO_WCAST_QUAL} ${CFLAGS:M-march=*:S/^$/-march=armv8-a/}+crypto ${.IMPSRC}" \
|
||||||
no-implicit-rule \
|
no-implicit-rule \
|
||||||
clean "aesv8-armx.o"
|
clean "aesv8-armx.o"
|
||||||
ghashv8-armx.o optional armv8crypto \
|
ghashv8-armx.o optional armv8crypto \
|
||||||
dependency "$S/crypto/openssl/aarch64/ghashv8-armx.S" \
|
dependency "$S/crypto/openssl/aarch64/ghashv8-armx.S" \
|
||||||
compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} -I$S/crypto/armv8/ ${WERROR} ${NO_WCAST_QUAL} ${CFLAGS:M-march=*:S/^$/-march=armv8-a/}+crypto ${.IMPSRC}" \
|
compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} -I$S/crypto/armv8 -I$S/crypto/openssl ${WERROR} ${NO_WCAST_QUAL} ${CFLAGS:M-march=*:S/^$/-march=armv8-a/}+crypto ${.IMPSRC}" \
|
||||||
no-implicit-rule \
|
no-implicit-rule \
|
||||||
clean "ghashv8-armx.o"
|
clean "ghashv8-armx.o"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,84 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright 2011-2018 The OpenSSL Project Authors. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the OpenSSL license (the "License"). You may not use
|
|
||||||
* this file except in compliance with the License. You can obtain a copy
|
|
||||||
* in the file LICENSE in the source distribution or at
|
|
||||||
* https://www.openssl.org/source/license.html
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef OSSL_CRYPTO_ARM_ARCH_H
|
|
||||||
# define OSSL_CRYPTO_ARM_ARCH_H
|
|
||||||
|
|
||||||
# if !defined(__ARM_ARCH__)
|
|
||||||
# if defined(__CC_ARM)
|
|
||||||
# define __ARM_ARCH__ __TARGET_ARCH_ARM
|
|
||||||
# if defined(__BIG_ENDIAN)
|
|
||||||
# define __ARMEB__
|
|
||||||
# else
|
|
||||||
# define __ARMEL__
|
|
||||||
# endif
|
|
||||||
# elif defined(__GNUC__)
|
|
||||||
# if defined(__aarch64__)
|
|
||||||
# define __ARM_ARCH__ 8
|
|
||||||
# if __BYTE_ORDER__==__ORDER_BIG_ENDIAN__
|
|
||||||
# define __ARMEB__
|
|
||||||
# else
|
|
||||||
# define __ARMEL__
|
|
||||||
# endif
|
|
||||||
/*
|
|
||||||
* Why doesn't gcc define __ARM_ARCH__? Instead it defines
|
|
||||||
* bunch of below macros. See all_architectures[] table in
|
|
||||||
* gcc/config/arm/arm.c. On a side note it defines
|
|
||||||
* __ARMEL__/__ARMEB__ for little-/big-endian.
|
|
||||||
*/
|
|
||||||
# elif defined(__ARM_ARCH)
|
|
||||||
# define __ARM_ARCH__ __ARM_ARCH
|
|
||||||
# elif defined(__ARM_ARCH_8A__)
|
|
||||||
# define __ARM_ARCH__ 8
|
|
||||||
# elif defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \
|
|
||||||
defined(__ARM_ARCH_7R__)|| defined(__ARM_ARCH_7M__) || \
|
|
||||||
defined(__ARM_ARCH_7EM__)
|
|
||||||
# define __ARM_ARCH__ 7
|
|
||||||
# elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || \
|
|
||||||
defined(__ARM_ARCH_6K__)|| defined(__ARM_ARCH_6M__) || \
|
|
||||||
defined(__ARM_ARCH_6Z__)|| defined(__ARM_ARCH_6ZK__) || \
|
|
||||||
defined(__ARM_ARCH_6T2__)
|
|
||||||
# define __ARM_ARCH__ 6
|
|
||||||
# elif defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || \
|
|
||||||
defined(__ARM_ARCH_5E__)|| defined(__ARM_ARCH_5TE__) || \
|
|
||||||
defined(__ARM_ARCH_5TEJ__)
|
|
||||||
# define __ARM_ARCH__ 5
|
|
||||||
# elif defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__)
|
|
||||||
# define __ARM_ARCH__ 4
|
|
||||||
# else
|
|
||||||
# error "unsupported ARM architecture"
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# if !defined(__ARM_MAX_ARCH__)
|
|
||||||
# define __ARM_MAX_ARCH__ __ARM_ARCH__
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# if __ARM_MAX_ARCH__<__ARM_ARCH__
|
|
||||||
# error "__ARM_MAX_ARCH__ can't be less than __ARM_ARCH__"
|
|
||||||
# elif __ARM_MAX_ARCH__!=__ARM_ARCH__
|
|
||||||
# if __ARM_ARCH__<7 && __ARM_MAX_ARCH__>=7 && defined(__ARMEB__)
|
|
||||||
# error "can't build universal big-endian binary"
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# ifndef __ASSEMBLER__
|
|
||||||
extern unsigned int OPENSSL_armcap_P;
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# define ARMV7_NEON (1<<0)
|
|
||||||
# define ARMV7_TICK (1<<1)
|
|
||||||
# define ARMV8_AES (1<<2)
|
|
||||||
# define ARMV8_SHA1 (1<<3)
|
|
||||||
# define ARMV8_SHA256 (1<<4)
|
|
||||||
# define ARMV8_PMULL (1<<5)
|
|
||||||
# define ARMV8_SHA512 (1<<6)
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
#include <crypto/openssl/ossl_arm.h>
|
#include <crypto/openssl/ossl_arm.h>
|
||||||
#include <crypto/openssl/ossl_aes_gcm.h>
|
#include <crypto/openssl/ossl_aes_gcm.h>
|
||||||
#include <crypto/openssl/ossl_cipher.h>
|
#include <crypto/openssl/ossl_cipher.h>
|
||||||
#include <crypto/openssl/arm/arm_arch.h>
|
#include <crypto/openssl/arm_arch.h>
|
||||||
|
|
||||||
#include <opencrypto/cryptodev.h>
|
#include <opencrypto/cryptodev.h>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
#include <crypto/openssl/ossl.h>
|
#include <crypto/openssl/ossl.h>
|
||||||
#include <crypto/openssl/ossl_cipher.h>
|
#include <crypto/openssl/ossl_cipher.h>
|
||||||
#include <crypto/openssl/aarch64/arm_arch.h>
|
#include <crypto/openssl/arm_arch.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Feature bits defined in arm_arch.h
|
* Feature bits defined in arm_arch.h
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
#include <crypto/openssl/ossl.h>
|
#include <crypto/openssl/ossl.h>
|
||||||
#include <crypto/openssl/ossl_cipher.h>
|
#include <crypto/openssl/ossl_cipher.h>
|
||||||
#include <crypto/openssl/aarch64/arm_arch.h>
|
#include <crypto/openssl/arm_arch.h>
|
||||||
|
|
||||||
/* aesv8-armx.S */
|
/* aesv8-armx.S */
|
||||||
ossl_cipher_encrypt_t aes_v8_cbc_encrypt;
|
ossl_cipher_encrypt_t aes_v8_cbc_encrypt;
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ __FBSDID("$FreeBSD$");
|
||||||
|
|
||||||
#include <crypto/openssl/ossl.h>
|
#include <crypto/openssl/ossl.h>
|
||||||
#include <crypto/openssl/ossl_cipher.h>
|
#include <crypto/openssl/ossl_cipher.h>
|
||||||
#include <crypto/openssl/arm/arm_arch.h>
|
#include <crypto/openssl/arm_arch.h>
|
||||||
|
|
||||||
ossl_cipher_setkey_t AES_set_encrypt_key;
|
ossl_cipher_setkey_t AES_set_encrypt_key;
|
||||||
ossl_cipher_setkey_t AES_set_decrypt_key;
|
ossl_cipher_setkey_t AES_set_decrypt_key;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
.PATH: ${SRCTOP}/sys/crypto/armv8
|
.PATH: ${SRCTOP}/sys/crypto/armv8
|
||||||
.PATH: ${SRCTOP}/sys/crypto/openssl/aarch64
|
.PATH: ${SRCTOP}/sys/crypto/openssl/aarch64
|
||||||
|
|
||||||
|
|
@ -8,6 +7,8 @@ SRCS+= device_if.h bus_if.h opt_bus.h cryptodev_if.h
|
||||||
|
|
||||||
OBJS+= armv8_crypto_wrap.o aesv8-armx.o ghashv8-armx.o
|
OBJS+= armv8_crypto_wrap.o aesv8-armx.o ghashv8-armx.o
|
||||||
|
|
||||||
|
CFLAGS+=-I${SRCTOP}/sys/crypto/openssl
|
||||||
|
|
||||||
# Remove -nostdinc so we can get the intrinsics.
|
# Remove -nostdinc so we can get the intrinsics.
|
||||||
armv8_crypto_wrap.o: armv8_crypto_wrap.c
|
armv8_crypto_wrap.o: armv8_crypto_wrap.c
|
||||||
${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} \
|
${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} \
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,8 @@ SRCS.i386= \
|
||||||
|
|
||||||
CFLAGS.bsaes-armv7.S+= -D__KERNEL__
|
CFLAGS.bsaes-armv7.S+= -D__KERNEL__
|
||||||
|
|
||||||
|
CFLAGS+= -I${SRCTOP}/sys/crypto/openssl
|
||||||
|
|
||||||
# For arm64, we are forced to rewrite the compiler invocation for the assembly
|
# For arm64, we are forced to rewrite the compiler invocation for the assembly
|
||||||
# files, to remove -mgeneral-regs-only.
|
# files, to remove -mgeneral-regs-only.
|
||||||
${SRCS.aarch64:M*.S:S/S/o/}: ${.TARGET:R}.S
|
${SRCS.aarch64:M*.S:S/S/o/}: ${.TARGET:R}.S
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue