-
Notifications
You must be signed in to change notification settings - Fork 143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update to OpenSSL 1.1.1g #692
Commits on Aug 6, 2020
-
Use cossacklabs/openssl-apple for Carthage
Switch from using Marcin's OpenSSL [1] to our own build of OpenSSL [2] which provides newer OpenSSL 1.1.1g, bitcode, and other goodies. [1]: https://github.com/krzyzanowskim/OpenSSL [2]: https://github.com/cossacklabs/openssl-apple The new OpenSSL is distributed as a binary-only framework. It will be downloaded from GitHub instead of building it from source. This is not much different from what the previous vendor did, but is more stable. Carthage builds use the static flavor of the framework. We have run into issues with dynamic framworks of OpenSSL when using Carthage, but static frameworks seems to do very good job: the resulting binaries are smaller, apps start a bit faster, and users are freed from the hassle of dealing with OpenSSL linkage to their app. Note that due to the way static linkage works, we will be exporting all OpenSSL symbols from ObjCThemis by default. In order to avoid conflicts, export only limited subset of symbols: Objective-C classes of ObjCThemis.
Configuration menu - View commit details
-
Copy full SHA for ddf0f4f - Browse repository at this point
Copy the full SHA ddf0f4fView commit details -
Use cossacklabs/openssl-apple for CocoaPods
Switch from using Levi Groker's OpenSSL [1] to our own build [2] which provides newer OpenSSL 1.1.1g, bitcode, and other goodies. [1]: https://github.com/levigroker/GRKOpenSSLFramework [2]: https://github.com/cossacklabs/openssl-apple The new OpenSSL is distributed as a tricky pod, but for consumers like Themis it's just a pod. Introduce a separate subspec for the build with newer OpenSSL, and make it the default choice. We keep the old specs around in case someone needs them to share GRKOpenSSL or BoringSSL with other dependencies, as it is not possible to use CLOpenSSL simultaneously with them due to OpenSSL symbol conflicts. The new subspec has its oddities, but it's all (un)known magic that seems to be absolutely necessary to build Themis properly for iOS.
Configuration menu - View commit details
-
Copy full SHA for bff309d - Browse repository at this point
Copy the full SHA bff309dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6793738 - Browse repository at this point
Copy the full SHA 6793738View commit details
Commits on Aug 7, 2020
-
Export global functions as well
In Carthage builds, we need to export not only Objective-C classes from TS namespace but global functions as well. (Well, there is only one such function right now: TSGenerateSymmetricKey().)
Configuration menu - View commit details
-
Copy full SHA for c2774f5 - Browse repository at this point
Copy the full SHA c2774f5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6736a98 - Browse repository at this point
Copy the full SHA 6736a98View commit details -
Note Xcode 11 requirement in CHANGELOG
It seems that Xcode 10 cannot handle bitcode data embedded into prebuilt OpenSSL frameworks we distribute which were built with Xcode 11.2. Make Xcode new minimum requirement for ObjCThemis and SwiftThemis. Xcode 11.0 is known to work.
Configuration menu - View commit details
-
Copy full SHA for 0c84f1e - Browse repository at this point
Copy the full SHA 0c84f1eView commit details -
Improve CocoaPods version hack for linting
Turns out that the spell we used before is not effective. sed does not understand "\s" so replace it with "[ ]" to match the leading spaces. Now the podspec should be correctly edited for linting and validate as if the current commit is going to be published. (The hack will be disabled for production branches where we are linting the spec as is.)
Configuration menu - View commit details
-
Copy full SHA for d224ffc - Browse repository at this point
Copy the full SHA d224ffcView commit details
Commits on Aug 10, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 9f19fd3 - Browse repository at this point
Copy the full SHA 9f19fd3View commit details -
Add arm64 to default architectures list
Make sure that ObjCThemis is compiled for arm64e architecture as noted in Apple guidance [1]. This is important for the case when our users would like to test teeir apps with this architecture. Currently, Xcode does not build slices for this architecture by default, so Carthage builds will not include it. [1]: https://developer.apple.com/documentation/security/preparing_your_app_to_work_with_pointer_authentication
Configuration menu - View commit details
-
Copy full SHA for 6116061 - Browse repository at this point
Copy the full SHA 6116061View commit details
Commits on Aug 12, 2020
-
Explicitly enable bitcode for Carthage
It seems that in some cases bitcode gets disabled in Xcode. Make sure that our project files keep it enabled at all times.
Configuration menu - View commit details
-
Copy full SHA for a43cea4 - Browse repository at this point
Copy the full SHA a43cea4View commit details -
Do not claim arm64e support in changelog
It seems that ObjCThemis does not support arm64e very well, after all. Let's not mention it in the changelog. Maybe the situation will impove before 0.14 is out though.
Configuration menu - View commit details
-
Copy full SHA for f2dcbc6 - Browse repository at this point
Copy the full SHA f2dcbc6View commit details -
Configuration menu - View commit details
-
Copy full SHA for b5e4897 - Browse repository at this point
Copy the full SHA b5e4897View commit details