Backport upstream libarchive commit 70f497f456 (As per Cryptographic
Requirements, 2017-03-19). Discard more bytes of the RC4 keystream
to reduce the possibility of non-random bytes.
This was added upstream but does not make sense in CMake because we
may replace the library with a logical target name that will not
work inside a `try_compile`.
Upstream libarchive now defines this macro in two places with the same
logic in both. However, CMake's bundled copy disables this macro, so
we need to update the new location of its definition to be consistent.
OpenSSL 1.1 made some CTX structures opaque. Port our code to use the
structures only through pointers via OpenSSL 1.1 APIs. Use our adaption
layer to make this work with OpenSSL 1.0 and below.
Patch-by: Tomas Mraz <tmraz@redhat.com>
Patch-from: https://bugzilla.redhat.com/1383744
Add private forwarding headers for `openssl/{evp,hmac}.h` to give us a
central place to add adaptation code to work across multiple
incompatible OpenSSL versions. Provide compatibility implementations of
some OpenSSL 1.1 APIs when using older OpenSSL versions.
In commit v3.6.0-rc1~100^2 (libarchive: Drop early use of crypto
library, 2016-05-03) we accidentally dropped the include directory for
OpenSSL as well as the library. Without that, it works only
accidentally when CHECK_CRYPTO happens to choose the OpenSSL
implementation and add the include directory.
Reported-by: Bradley Lowekamp <blowekamp@mail.nih.gov>
We already add the crypto library after the ssl library when using
OpenSSL. Do not add it to the list of libraries individually or we may
end up with the wrong order later. Further investigation will be needed
to see how this change can be reconciled with the upstream need for the
original line.
We will now manage the libarchive source tree updates using
the `Utilities/Scripts/update-libarchive.bash` script. Drop
the README that covered the old method.
Port upstream LibArchive commit "compute string pointers after
concatenation" (2014-09-25) and commit "Move variables to top of
function for non-C99 compilers" (2014-11-15) to our CMake copy.
Otherwise we may compute a pointer to memory that is about to be freed
and then compute a bad size to give to CryptGenRandom.
Inspired-by: Tim Kientzle <kientzle@gmail.com>
When testing CMAKE_<LANG>_COMPILER_ID values, do not explicitly
dereference or quote the variable. We want if() to auto-dereference the
variable and not its value. Also replace MATCHES with STREQUAL where
equivalent.
Newer HP-UX versions (e.g. 11.31) also offers F_SETTIMES, but with a different
struct for the timing information.
Suggested-by: Eric Berge <ericmberge@gmail.com>
67f5f0a9 libarchive: Use _snprintf on Windows, not snprintf
fcfbb0a9 libarchive: Drop LIBARCHIVE_ADDITIONAL_LIBS, CMake does not need it
61a649d9 libarchive: Update README-CMake.txt for new snapshot
4533560c Merge branch 'libarchive-upstream' into update-libarchive
44d6b82f libarchive: Disable all whitespace checks in third-party code
37f225b7 libarchive 3.1.2-246-ga5a5d28b (reduced)
6ab7c326 libarchive: Avoid left-shift overflow of signed integer