Commit f937540e authored by Dr. Matthias St. Pierre's avatar Dr. Matthias St. Pierre
Browse files

Add FIPS support for Android Arm 64-bit



Fixes #2490
Fixes #8711

In commit 6db8e3bd, support for Android Arm 64-bit was added to
the OpenSSL FIPS Object Module. For some reason, the corresponding
target 'android64-aarch64' was missing OpenSSL 1.0.2, whence it
could not be built with FIPS support on Android Arm 64-bit.
This commit adds the missing target.

Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/8713)
parent d3299a33
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -9,7 +9,13 @@

 Changes between 1.0.2r and 1.0.2s [xx XXX xxxx]

  *)
  *) Add FIPS support for Android Arm 64-bit

     Support for Android Arm 64-bit was added to the OpenSSL FIPS Object Module in
     Version 2.0.10. For some reason, the corresponding target 'android64-aarch64'
     was missing OpenSSL 1.0.2, whence it could not be built with FIPS support on
     Android Arm 64-bit. This omission has been fixed.
     [Matthias St. Pierre]

 Changes between 1.0.2q and 1.0.2r [26 Feb 2019]

+1 −0
Original line number Diff line number Diff line
@@ -475,6 +475,7 @@ my %table=(
"android-x86","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:".eval{my $asm=${x86_elf_asm};$asm=~s/:elf/:android/;$asm}.":dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"android-armv7","gcc:-march=armv7-a -mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"android-mips","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips32_asm}:o32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"android64-aarch64","gcc:-mandroid -fPIC -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -Wall::-D_REENTRANT::-pie%-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${aarch64_asm}:linux64:dlfcn:linux-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",

#### *BSD [do see comment about ${BSDthreads} above!]
"BSD-generic32","gcc:-O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+34 −0
Original line number Diff line number Diff line
@@ -1190,6 +1190,40 @@ $ranlib =
$arflags      = 
$multilib     = 

*** android64-aarch64
$cc           = gcc
$cflags       = -mandroid -fPIC -I$(ANDROID_DEV)/include -B$(ANDROID_DEV)/lib -O3 -Wall
$unistd       = 
$thread_cflag = -D_REENTRANT
$sys_id       = 
$lflags       = -pie%-ldl
$bn_ops       = SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR
$cpuid_obj    = armcap.o arm64cpuid.o mem_clr.o
$bn_obj       = 
$ec_obj       = 
$des_obj      = 
$aes_obj      = aes_core.o aes_cbc.o aesv8-armx.o
$bf_obj       = 
$md5_obj      = 
$sha1_obj     = sha1-armv8.o sha256-armv8.o sha512-armv8.o
$cast_obj     = 
$rc4_obj      = 
$rmd160_obj   = 
$rc5_obj      = 
$wp_obj       = 
$cmll_obj     = 
$modes_obj    = ghashv8-armx.o
$engines_obj  = 
$perlasm_scheme = linux64
$dso_scheme   = dlfcn
$shared_target= linux-shared
$shared_cflag = 
$shared_ldflag = 
$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib       = 
$arflags      = 
$multilib     = 

*** aux3-gcc
$cc           = gcc
$cflags       = -O2 -DTERMIO
+1 −0
Original line number Diff line number Diff line
@@ -871,6 +871,7 @@ case "$GUESSOS" in
  *-*-qnx6) OUT="QNX6" ;;
  x86-*-android|i?86-*-android) OUT="android-x86" ;;
  armv[7-9]*-*-android) OUT="android-armv7" ;;
  aarch64-*-android) OUT="android64-aarch64" ;;
  *) OUT=`echo $GUESSOS | awk -F- '{print $3}'`;;
esac