diff options
author | Brad King <brad.king@kitware.com> | 2015-10-21 18:30:16 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-10-22 14:18:26 (GMT) |
commit | 8f837fc9a9fc335f87613e0c113050e1533d9efd (patch) | |
tree | f13c01df5fe28166a9b9bcf1aad0a2a964e251dc /Utilities/cmlibarchive | |
parent | 61a0251e824559b27e751ce7ff0be72b9bb8ec69 (diff) | |
download | CMake-8f837fc9a9fc335f87613e0c113050e1533d9efd.zip CMake-8f837fc9a9fc335f87613e0c113050e1533d9efd.tar.gz CMake-8f837fc9a9fc335f87613e0c113050e1533d9efd.tar.bz2 |
libarchive: Use CommonCrypto APIs on OS X only when available
Use each CommonCrypto API only when using an OS X SDK version new enough
to provide it.
Diffstat (limited to 'Utilities/cmlibarchive')
4 files changed, 20 insertions, 3 deletions
diff --git a/Utilities/cmlibarchive/libarchive/archive_cryptor.c b/Utilities/cmlibarchive/libarchive/archive_cryptor.c index 9b01df8..efd350d 100644 --- a/Utilities/cmlibarchive/libarchive/archive_cryptor.c +++ b/Utilities/cmlibarchive/libarchive/archive_cryptor.c @@ -31,7 +31,7 @@ #include "archive.h" #include "archive_cryptor_private.h" -#ifdef __APPLE__ +#ifdef ARCHIVE_CRYPTOR_USE_Apple_CommonCrypto static int pbkdf2_sha1(const char *pw, size_t pw_len, const uint8_t *salt, @@ -114,7 +114,10 @@ pbkdf2_sha1(const char *pw, size_t pw_len, const uint8_t *salt, #endif -#ifdef __APPLE__ +#ifdef ARCHIVE_CRYPTOR_USE_Apple_CommonCrypto +# if MAC_OS_X_VERSION_MAX_ALLOWED < 1090 +# define kCCAlgorithmAES kCCAlgorithmAES128 +# endif static int aes_ctr_init(archive_crypto_ctx *ctx, const uint8_t *key, size_t key_len) diff --git a/Utilities/cmlibarchive/libarchive/archive_cryptor_private.h b/Utilities/cmlibarchive/libarchive/archive_cryptor_private.h index b62ec0c..9a96aee 100644 --- a/Utilities/cmlibarchive/libarchive/archive_cryptor_private.h +++ b/Utilities/cmlibarchive/libarchive/archive_cryptor_private.h @@ -31,6 +31,13 @@ #define ARCHIVE_CRYPTOR_PRIVATE_H_INCLUDED #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 diff --git a/Utilities/cmlibarchive/libarchive/archive_hmac.c b/Utilities/cmlibarchive/libarchive/archive_hmac.c index 898853b..36e3e1c 100644 --- a/Utilities/cmlibarchive/libarchive/archive_hmac.c +++ b/Utilities/cmlibarchive/libarchive/archive_hmac.c @@ -31,7 +31,7 @@ #include "archive.h" #include "archive_hmac_private.h" -#ifdef __APPLE__ +#ifdef ARCHIVE_HMAC_USE_Apple_CommonCrypto static int __hmac_sha1_init(archive_hmac_sha1_ctx *ctx, const uint8_t *key, size_t key_len) diff --git a/Utilities/cmlibarchive/libarchive/archive_hmac_private.h b/Utilities/cmlibarchive/libarchive/archive_hmac_private.h index 6a8bbf2..a9fb8ec 100644 --- a/Utilities/cmlibarchive/libarchive/archive_hmac_private.h +++ b/Utilities/cmlibarchive/libarchive/archive_hmac_private.h @@ -31,6 +31,13 @@ #define ARCHIVE_HMAC_PRIVATE_H_INCLUDED #ifdef __APPLE__ +# include <AvailabilityMacros.h> +# if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060 +# define ARCHIVE_HMAC_USE_Apple_CommonCrypto +# endif +#endif + +#ifdef ARCHIVE_HMAC_USE_Apple_CommonCrypto #include <CommonCrypto/CommonHMAC.h> typedef CCHmacContext archive_hmac_sha1_ctx; |