News for hackers. Stuff that matters.
Re:John Ternus to become Apple CEO by youngtaff on Monday April 20, 2026 @05:38PM (#47841217)
iOS (and MacOS) now use Google’s BoringSSL instead and have for many years
Re:John Ternus to become Apple CEO by dieortin on Monday April 20, 2026 @06:56PM (#47842156)
Do they? Based on what I’ve seen with a quick search, this doesn’t seem to be true
Re:John Ternus to become Apple CEO by gsnedders on Monday April 20, 2026 @08:12PM (#47842945)
See e.g. https://developer.apple.com/documentation/network/creating-a... where the logging output makes it clear BoringSSL is what is used.

Or comments such as: https://github.com/apple-oss-distributions/Security/blob/rel...

Unsurprisingly, given BoringSSL doesn't have a stable API (yet alone ABI), it isn't exposed as a system library.

Re:John Ternus to become Apple CEO by dieortin on Tuesday April 21, 2026 @05:57PM (#47855083)
Seems like they use BoringSSL on their open source distributions, but their own library on their own platforms: https://forums.swift.org/t/native-implementations-and-boring...
Re:John Ternus to become Apple CEO by youngtaff on Wednesday April 22, 2026 @07:49AM (#47862245)
iOS Safari definitely used BoringSSL last time I checked it with Frida
Re:John Ternus to become Apple CEO by gsnedders on Wednesday April 22, 2026 @09:15PM (#47871288)
CryptoKit isn't relevant to `goto fail`, which was the origin of this thread, given CryptoKit merely implements primitives and not TLS.

If you really are doubting what gets used for TLS, open up Console.app, start streaming, run `nscurl https://example.com/` (or load it in Safari, etc.), and you'll see logging like:

    default com.apple.network boringssl 18:11:46.229209-0700 libboringssl.dylib nscurl boringssl_session_apply_protocol_options_for_transport_block_invoke(2360) [C1.1.1.1:2][0x1008cef10] TLS configured [server(0) min_version(0x0303) max_version(0x0304) name(redacted) tickets(false) false_start(false) enforce_ev(false) enforce_ats(false) ats_non_pfs_ciphersuite_allowed(false) cc_mode_enforced(false) ech(false) pqtls(true), pake(false)]
It really is boringssl which is nowadays used for TLS by the Network framework.