Oddly, iOS doesn’t provide any OpenSSL implementation at all — If you want to do anything with crypto (like checking signatures, checksumming, etc.), you have to build in the library yourself.
I came across a great XCode project wrapper for OpenSSL yesterday, by Stephen Lombardo. This is an XCode project file that contains a target to build OpenSSL from source, and works with both Mac and iOS projects. I made some modifications to it, in order to make it work by just dropping in the OpenSSL source tarball, without having to dirty up your source tree with the extracted OpenSSL distribution.
Here’s how to use it:
- Download the OpenSSL source.
- Put the downloaded OpenSSL source tar.gz into the same folder
as openssl.xcodeproj (I put it in
Library/opensslwithin my project tree).
- Drag the openssl.xcodeproj file into your main project tree in XCode.
- Right-click on your project target, and add openssl.xcodeproj under “Direct Dependencies” on the General tab.
On the Build tab for your project’s target, find the “Header Search Paths” option, and add the path:
(Assuming you’ve put openssl.xcodeproj at the path
Library/openssl— adjust as necessary).
- Expand your target’s “Link Binary With Libraries” build stage, and drag libcrypto.a from the openssl.xcodeproj group.
Then, you can just import and use as normal (
#import <openssl/dsa.h>, etc).