/OpenSSL-for-iPhone

A script for compiling OpenSSL for iOS Devices (iPhone, iPad, Watch, iPod Touch, AppleTV, MacCatalyst)

Primary LanguageShellApache License 2.0Apache-2.0

OpenSSL-for-iOS license OpenSSL version iOS support tvOS support MacCatalyst support

OpenSSL 1.1.1 End of Life

OpenSSL 1.1.1 series has reached its End of Life (EOL). As such it will no longer receive publicly available security fixes. https://openssl-library.org/post/2023-09-11-eol-111/


This is a script for using self-compiled builds of the OpenSSL-library on the iPhone. You can build apps with Xcode and the official SDK from Apple with this. I also made a small example-app for using the libraries with Xcode and the iPhone/iPhone-Simulator.

Enjoy OpenSSL on the iPhone!

You must build the OpenSSL-Libraries (1.1.1w) before running the sample with:

./build-libssl.sh

For other versions build the OpenSSL-Libraries with:

./build-libssl.sh --version=1.1.1k

For all options see the help

./build-libssl.sh --help

This repository contains an iOS 16.0 Xcode Project which uses the OpenSSL Libraries. The examples uses the MD5 or SHA256-algorithm to calculate an md5 or sha256 hash from an UITextfield.

System support

iOS 12.0 - iOS 16.6 (x86_64 , arm64, arm64e bitcode), tvOS 12.0 - tvOS 16.6 (x86_64, arm64, bitcode), WatchOS 8 and MacCatalyst 15.6 (MacOSX_x86_64) are currently supported.

For iOS < 7.0 you must use Xcode < 7 and an older version of the build script. For iOS < 12.0 you must use Xcode < 11 and an older version of the build script.

If you have problems building for arm64 please uninstall MacPorts (see #28).

Original tutorials for this project:

Changelog

  • 2023-09-20: OpenSSL 1.1.1w
  • 2023-08-21: OpenSSL 1.1.1v, iOS 16.6 support
  • 2023-07-04: OpenSSL 1.1.1u
  • 2023-02-09: OpenSSL 1.1.1t
  • 2023-01-10: Xcode 14.2 support, iOS 16.2 support, SHA512 Example
  • 2022-11-16: Xcode 14.1 support, iOS 16.1 support, OpenSSL 1.1.1s
  • 2022-09-15: Xcode 14 support, iOS 16 support
  • 2022-07-20: OpenSSL 1.1.1q, Fix Travix Build, Xcode 13,4, iOS 15 Support, Add support for Simulator and Catalyst on M1 (arm64), and Apple Watch, Support for XCFramework
  • 2019-11-27: OpenSSL 1.1.1d, Add Support for arm64e
  • 2019-11-27: Add support for MacCatalyst, Xcode 11.2.1 (iOS 12.0 - 13.2), Migrate to Swift 5, Remove OpenSSL 1.0.2 support
  • 2017-05-25: OpenSSL 1.0.2l, 1.1.0f
  • 2017-02-16: OpenSSL 1.1.0e
  • 2017-01-28: OpenSSL 1.0.2k, 1.1.0d, Xcode 8.2 (iOS 10.2 and tvOS 10.1)
  • 2016-11-13: OpenSSL 1.1.0c
  • 2016-11-07: Optional support for OpenSSL 1.1.0b
  • 2016-09-28: OpenSSL 1.0.2j
  • 2016-09-22: OpenSSL 1.0.2i
  • 2016-09-18: Xcode 8 support, iOS 10.0, Add command line options, Optimize build
  • 2016-08-09: Xcode 7.3 support, iOS 9.3
  • 2016-05-04: OpenSSL 1.0.2h
  • 2015-12-11: Xcode 7.2 support, iOS 9.2
  • 2015-12-03: OpenSSL 1.0.2e
  • 2015-11-17: tvOS example app, Migrate to Swift for example app
  • 2015-11-16: tvOS support
  • 2015-10-25: Xcode 7.1 support
  • 2015-08-06: iOS 9.0 support, Bitcode support
  • 2015-07-09: OpenSSL 1.0.2d, iOS 8.4
  • 2015-06-15: OpenSSL 1.0.2c, iOS 8.3
  • 2015-06-11: OpenSSL 1.0.2b
  • 2015-03-19: OpenSSL 1.0.2a
  • 2015-01-28: OpenSSL 1.0.2
  • 2015-01-10: OpenSSL 1.0.1k
  • 2014-10-15: OpenSSL 1.0.1j
  • 2014-09-18: iOS 8.0 support
  • 2014-08-08: OpenSSL 1.0.1i
  • 2014-06-05: OpenSSL 1.0.1h
  • 2014-04-07: OpenSSL 1.0.1g
  • 2014-03-12: iOS 7.1 support
  • 2014-01-07: OpenSSL 1.0.1f
  • 2013-10-12: x86_64 support, Migrate project to iOS 7.0
  • 2013-09-23: iOS 7.0 support
  • 2013-03-01: OpenSSL 1.0.1e, iOS 6.1
  • 2012-09-21: Support for iOS 6.0 and iPhone 5 (armv7s) - Remove armv6 support
  • 2012-05-17: OpenSSL 1.0.1c
  • 2012-05-02: OpenSSL 1.0.1b
  • 2012-04-01: OpenSSL 1.0.1, Modernizes project to use ARC
  • 2012-01-28: OpenSSL 1.0.0g, Optimized build script
  • 2011-10-23: OpenSSL 1.0.0e, iOS 5.0
  • 2011-02-08: OpenSSL 1.0.0d
  • 2010-12-16: Script for building OpenSSL
  • 2010-12-04: SHA256 Hash, Clean project file with iOS 4.2 as base SDK
  • 2010-12-04: OpenSSL 1.0.0c
  • 2010-11-16: OpenSSL 1.0.0b
  • 2010-06-30: OpenSSL 1.0.0a, iOS 4.0 as base SDK
  • 2010-06-10: OpenSSL 0.9.8o, iPad Version
  • 2010-03-31: OpenSSL 0.9.8n
  • 2010-02-26: OpenSSL 0.9.8m