This last week, I took the opportunity during the Atlassian ShipIt to work on my CRSCE compression algorithm, rewriting the crsce utility in C rather than Python (for speed and other efficiencies). But while writing the HSM Buffer, I got the following error from the compiler:
In file included from ./hsm_buffer.h:3: In file included from ./crypto/crypto.h:17: ./crypto/crypto.c:24:18: fatal error: 'openssl/sha.h' file not found #include <openssl/sha.h>
I was trying to compile my project on a Mac Book Pro (El Capitan) using GCC. While I know that Mac provides its own encryption libraries (and plan to support them at some point), most people interested in CRSCE will want to use it on a Linux or Windows machine (and that means OpenSSL is the greatest bang for the buck.
Here's the fix I came up with...
(1) Install openSSL using brew:
brew install openssl --upgrade
I already had openssl installed but the upgrade to El Capitan broke the libraries. So, reinstalling with --upgrade helped me fix my broken state.
(2) When compiling, I had been using:
gcc main.c -o crsce
What I should be doing is...
gcc main.c \ -o crsce \ -I /usr/local/opt/openssl/include \ -L /usr/local/opt/openssl/lib
The conclusion is that this works now and all is well in the world...
#ifdef OS_MAC #ifdef CRSCE_CRYPTO_OPENSSL // // If using MAC, be sure to... // // brew install openssl // // to install openssl library, then when building use... // // gcc <topLevel.c> \ // -o <binaryName> \ // -I /usr/local/opt/openssl/include \ // -L /usr/local/opt/openssl/lib // // which will tell GCC where the files are located. // #include <openssl/sha.h> #define CRSCE_CRYPTO_READY openssl // //#elif CRSCE_CRYPTO_<PACKAGENAME> // #include "...path.../file.h" // #else #pragma GCC error ("No recognized crypto package included") #endif #ifdef CRSCE_CRYPTO_READY #pragma message ("A Crypto Package has been included") #else #pragma GCC error ("No crypto package has been included in crypto.c") #endif
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.