diff options
Diffstat (limited to 'libarchive/archive_cryptor_private.h')
-rw-r--r-- | libarchive/archive_cryptor_private.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/libarchive/archive_cryptor_private.h b/libarchive/archive_cryptor_private.h index b62ec0c..37eaad3 100644 --- a/libarchive/archive_cryptor_private.h +++ b/libarchive/archive_cryptor_private.h @@ -30,7 +30,25 @@ #ifndef ARCHIVE_CRYPTOR_PRIVATE_H_INCLUDED #define ARCHIVE_CRYPTOR_PRIVATE_H_INCLUDED +/* + * On systems that do not support any recognized crypto libraries, + * the archive_cryptor.c file will normally define no usable symbols. + * + * But some compilers and linkers choke on empty object files, so + * define a public symbol that will always exist. This could + * be removed someday if this file gains another always-present + * symbol definition. + */ +int __libarchive_cryptor_build_hack(void); + #ifdef __APPLE__ +# include <AvailabilityMacros.h> +# if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 +# define ARCHIVE_CRYPTOR_USE_Apple_CommonCrypto +# endif +#endif + +#ifdef ARCHIVE_CRYPTOR_USE_Apple_CommonCrypto #include <CommonCrypto/CommonCryptor.h> #include <CommonCrypto/CommonKeyDerivation.h> #define AES_BLOCK_SIZE 16 @@ -65,7 +83,7 @@ typedef struct { unsigned encr_pos; } archive_crypto_ctx; -#elif defined(HAVE_LIBNETTLE) +#elif defined(HAVE_LIBNETTLE) && defined(HAVE_NETTLE_AES_H) #if defined(HAVE_NETTLE_PBKDF2_H) #include <nettle/pbkdf2.h> #endif |