--- lib/hash.c.orig 2020-12-20 20:43:47.000000000 -0600 +++ lib/hash.c 2020-12-20 20:51:47.000000000 -0600 @@ -41,12 +41,14 @@ #include #include #include +/* #ifdef __APPLE__ #include #include #else + */ #include -#endif +/* #endif */ #include "xar.h" #include "hash.h" @@ -58,6 +60,7 @@ #pragma mark Hash Wrapper Object +/* #ifdef __APPLE__ CCDigestRef digestRef_from_name(const char* name, unsigned int *outHashSize) { @@ -89,17 +92,20 @@ return result; } #endif // __APPLE__ + */ struct __xar_hash_t { const char *digest_name; void *context; +/* #ifdef __APPLE__ CCDigestRef digest; #else + */ EVP_MD_CTX *digest; const EVP_MD *type; -#endif +/* #endif */ unsigned int length; }; @@ -113,14 +119,16 @@ if( context ) HASH_CTX(hash)->context = context; +/* #ifdef __APPLE__ HASH_CTX(hash)->digest = digestRef_from_name(digest_name, &HASH_CTX(hash)->length); #else + */ OpenSSL_add_all_digests(); HASH_CTX(hash)->type = EVP_get_digestbyname(digest_name); HASH_CTX(hash)->digest = EVP_MD_CTX_create(); EVP_DigestInit(HASH_CTX(hash)->digest, HASH_CTX(hash)->type); -#endif +/* #endif */ HASH_CTX(hash)->digest_name = strdup(digest_name); @@ -136,29 +144,35 @@ } void xar_hash_update(xar_hash_t hash, void *buffer, size_t nbyte) { +/* #ifdef __APPLE__ CCDigestUpdate(HASH_CTX(hash)->digest, buffer, nbyte); #else + */ EVP_DigestUpdate(HASH_CTX(hash)->digest, buffer, nbyte); -#endif +/* #endif */ } void *xar_hash_finish(xar_hash_t hash, size_t *nbyte) { +/* #ifdef __APPLE__ void *buffer = calloc(1, CC_SHA512_DIGEST_LENGTH); // current biggest digest size This is what OpenSSL uses #else + */ void *buffer = calloc(1, EVP_MAX_MD_SIZE); -#endif +/* #endif */ if( ! buffer ) return NULL; +/* #ifdef __APPLE__ CCDigestFinal(HASH_CTX(hash)->digest, buffer); CCDigestDestroy(HASH_CTX(hash)->digest); #else + */ EVP_DigestFinal(HASH_CTX(hash)->digest, buffer, &HASH_CTX(hash)->length); EVP_MD_CTX_destroy(HASH_CTX(hash)->digest); -#endif +/* #endif */ *nbyte = HASH_CTX(hash)->length; free((void *)HASH_CTX(hash)->digest_name);