diff --git a/mz_crypt_apple.c b/mz_crypt_apple.c index 998617f1..8485c6a6 100644 --- a/mz_crypt_apple.c +++ b/mz_crypt_apple.c @@ -20,8 +20,12 @@ /***************************************************************************/ -/* Avoid use of private API for iOS, Apple does not allow it on App Store. Zip format doesn't need GCM. */ -#if !defined(__APPLE__) +#ifndef MZ_TARGET_APPSTORE +#define MZ_TARGET_APPSTORE 1 +#endif + +/* Avoid use of private API for App Store as Apple does not allow it. Zip format doesn't need GCM. */ +#if !MZ_TARGET_APPSTORE enum { kCCModeGCM = 11, }; @@ -227,7 +231,7 @@ int32_t mz_crypt_aes_encrypt(void *handle, const void *aad, int32_t aad_size, ui return MZ_PARAM_ERROR; if (aes->mode == MZ_AES_MODE_GCM) { -#if defined(__APPLE__) +#if MZ_TARGET_APPSTORE return MZ_SUPPORT_ERROR; #else if (aad && aad_size > 0) { @@ -251,14 +255,14 @@ int32_t mz_crypt_aes_encrypt(void *handle, const void *aad, int32_t aad_size, ui int32_t mz_crypt_aes_encrypt_final(void *handle, uint8_t *buf, int32_t size, uint8_t *tag, int32_t tag_size) { mz_crypt_aes *aes = (mz_crypt_aes *)handle; -#if !defined(__APPLE__) +#if !MZ_TARGET_APPSTORE size_t tag_outsize = tag_size; #endif if (!aes || !tag || !tag_size || !aes->crypt || aes->mode != MZ_AES_MODE_GCM) return MZ_PARAM_ERROR; -#if defined(__APPLE__) +#if MZ_TARGET_APPSTORE return MZ_SUPPORT_ERROR; #else aes->error = CCCryptorGCMEncrypt(aes->crypt, buf, size, buf); @@ -282,7 +286,7 @@ int32_t mz_crypt_aes_decrypt(void *handle, const void *aad, int32_t aad_size, ui return MZ_PARAM_ERROR; if (aes->mode == MZ_AES_MODE_GCM) { -#if defined(__APPLE__) +#if MZ_TARGET_APPSTORE return MZ_SUPPORT_ERROR; #else if (aad && aad_size > 0) { @@ -306,7 +310,7 @@ int32_t mz_crypt_aes_decrypt(void *handle, const void *aad, int32_t aad_size, ui int32_t mz_crypt_aes_decrypt_final(void *handle, uint8_t *buf, int32_t size, const uint8_t *tag, int32_t tag_length) { mz_crypt_aes *aes = (mz_crypt_aes *)handle; -#if !defined(__APPLE__) +#if !MZ_TARGET_APPSTORE uint8_t tag_actual_buf[MZ_AES_BLOCK_SIZE]; size_t tag_actual_len = sizeof(tag_actual_buf); uint8_t *tag_actual = tag_actual_buf; @@ -317,7 +321,7 @@ int32_t mz_crypt_aes_decrypt_final(void *handle, uint8_t *buf, int32_t size, con if (!aes || !tag || !tag_length || !aes->crypt || aes->mode != MZ_AES_MODE_GCM) return MZ_PARAM_ERROR; -#if defined(__APPLE__) +#if MZ_TARGET_APPSTORE return MZ_SUPPORT_ERROR; #else aes->error = CCCryptorGCMDecrypt(aes->crypt, buf, size, buf); @@ -353,7 +357,7 @@ static int32_t mz_crypt_aes_set_key(void *handle, const void *key, int32_t key_l else if (aes->mode == MZ_AES_MODE_ECB) mode = kCCModeECB; else if (aes->mode == MZ_AES_MODE_GCM) -#if !defined(__APPLE__) +#if !MZ_TARGET_APPSTORE mode = kCCModeGCM; #else return MZ_SUPPORT_ERROR; @@ -369,7 +373,7 @@ static int32_t mz_crypt_aes_set_key(void *handle, const void *key, int32_t key_l if (aes->error != kCCSuccess) return MZ_HASH_ERROR; -#if !defined(__APPLE__) +#if !MZ_TARGET_APPSTORE if (aes->mode == MZ_AES_MODE_GCM) { aes->error = CCCryptorGCMAddIV(aes->crypt, iv, iv_length);