Android: add example of setting per-architecture verifyCore[] hash in CMakeLists.txt with WOLFCRYPT_FIPS_CORE_HASH_VALUE
parent
29bfb452df
commit
4863cb49b9
|
@ -74,6 +74,45 @@ if ("${WOLFSSL_PKG_TYPE}" MATCHES "normal")
|
||||||
)
|
)
|
||||||
|
|
||||||
elseif("${WOLFSSL_PKG_TYPE}" MATCHES "fipsready")
|
elseif("${WOLFSSL_PKG_TYPE}" MATCHES "fipsready")
|
||||||
|
# The wolfCrypt FIPS In Core Integrity checksum will vary with compiler
|
||||||
|
# versions, runtime library versions, target hardware, and build type.
|
||||||
|
# Anytime the module is shifted up or down in memory or loaded from a new
|
||||||
|
# memory location the hash will change. This is expected during normal
|
||||||
|
# development cycles but should be stable in a production deployment.
|
||||||
|
# The verifyCore[] hash can be manually updated in
|
||||||
|
# 'wolfcrypt/src/fips_test.c' and the app recompiled. Or, the define
|
||||||
|
# WOLFCRYPT_FIPS_CORE_HASH_VALUE can be set below, which is helpful
|
||||||
|
# for Android Studio, which builds for all these architectures in the same
|
||||||
|
# build.
|
||||||
|
#
|
||||||
|
# The hash values below are only for reference and will need to
|
||||||
|
# be updated to match your build. To update this value:
|
||||||
|
#
|
||||||
|
# 1. Build and install your app which contains wolfCrypt FIPS
|
||||||
|
# 2. Run your app on each architecture, looking at the logcat output
|
||||||
|
# to see the expected verifyCore[] hash value.
|
||||||
|
# 3. Copy the expected hash value from logcat to the proper architecture
|
||||||
|
# section below.
|
||||||
|
# 4. Re-build your application now that the expected hash value has
|
||||||
|
# been set.
|
||||||
|
# 5. Re-install and re-run your application on each architecture to
|
||||||
|
# confirm the hash is stable and application runs as expected.
|
||||||
|
#
|
||||||
|
# NOTE: If using wolfSSL FIPS Ready or FIPS proper with this sample
|
||||||
|
# application and run into the scenario where the verifyCore[] hash output
|
||||||
|
# at runtime is empty, consider checking/increasing the size of the
|
||||||
|
# MAX_FIPS_DATA_SZ define in 'wolfcrypt/src/fips_test.c'.
|
||||||
|
|
||||||
|
if("${ANDROID_ABI}" MATCHES "arm64-v8a")
|
||||||
|
add_definitions(-DWOLFCRYPT_FIPS_CORE_HASH_VALUE=6F0F3E0BDA9AF973D2B7243444DE8279DF9F98A533E60D1E076DE4B6B9416F11)
|
||||||
|
elseif("${ANDROID_ABI}" MATCHES "armeabi-v7a")
|
||||||
|
add_definitions(-DWOLFCRYPT_FIPS_CORE_HASH_VALUE=6F0F3E0BDA9AF973D2B7243444DE8279DF9F98A533E60D1E076DE4B6B9416F11)
|
||||||
|
elseif("${ANDROID_ABI}" MATCHES "x86_64")
|
||||||
|
add_definitions(-DWOLFCRYPT_FIPS_CORE_HASH_VALUE=6F0F3E0BDA9AF973D2B7243444DE8279DF9F98A533E60D1E076DE4B6B9416F11)
|
||||||
|
elseif("${ANDROID_ABI}" MATCHES "x86")
|
||||||
|
add_definitions(-DWOLFCRYPT_FIPS_CORE_HASH_VALUE=6F0F3E0BDA9AF973D2B7243444DE8279DF9F98A533E60D1E076DE4B6B9416F11)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Add preprocessor defines to CFLAGS, these match those placed into
|
# Add preprocessor defines to CFLAGS, these match those placed into
|
||||||
# wolfssl/options.h by configure if using: "./configure" on a Unix/Linux
|
# wolfssl/options.h by configure if using: "./configure" on a Unix/Linux
|
||||||
# platform. The options below have been chosen to match a FIPS Ready build,
|
# platform. The options below have been chosen to match a FIPS Ready build,
|
||||||
|
@ -82,12 +121,6 @@ elseif("${WOLFSSL_PKG_TYPE}" MATCHES "fipsready")
|
||||||
# This list may be configurable depending on use case and desired
|
# This list may be configurable depending on use case and desired
|
||||||
# optimizations, being careful not to break FIPS compatibility if targeting
|
# optimizations, being careful not to break FIPS compatibility if targeting
|
||||||
# FIPS proper in the future.
|
# FIPS proper in the future.
|
||||||
|
|
||||||
# NOTE: If using wolfSSL FIPS Ready or FIPS proper with this sample
|
|
||||||
# application and run into the scenario where the verifyCore[] hash output
|
|
||||||
# at runtime is empty, consider checking/increasing the size of the
|
|
||||||
# MAX_FIPS_DATA_SZ define in 'wolfcrypt/src/fips_test.c'.
|
|
||||||
|
|
||||||
add_definitions(-DHAVE_FIPS -DHAVE_FIPS_VERSION=5 -DHAVE_FIPS_VERSION_MINOR=3
|
add_definitions(-DHAVE_FIPS -DHAVE_FIPS_VERSION=5 -DHAVE_FIPS_VERSION_MINOR=3
|
||||||
-DHAVE_HASHDRBG -DHAVE_THREAD_LS -DHAVE_REPRODUCIBLE_BUILD
|
-DHAVE_HASHDRBG -DHAVE_THREAD_LS -DHAVE_REPRODUCIBLE_BUILD
|
||||||
-DFP_MAX_BITS=16384 -DSP_INT_BITS=8192 -DWOLFSSL_PUBLIC_MP
|
-DFP_MAX_BITS=16384 -DSP_INT_BITS=8192 -DWOLFSSL_PUBLIC_MP
|
||||||
|
|
Loading…
Reference in New Issue