OpenSSL errors

As we discussed in the Kitura Slack that seems to be an incompatibility with OpenSSL 1.1. In C, a package can mostly use the same code for OpenSSL 1.0 and OpenSSL 1.1 as they are largely source compatible in C. In Swift however, they're not source compatible at all as discussed in for example this thread. This means that almost all packages written against OpenSSL 1.0 will not work with OpenSSL 1.1. As swift-nio-ssl version 1.x demonstrates, it is possible to write Swift code that works with both OpenSSL 1.0 and 1.1 but it's very painful.

Your particular issue seems to stem from the fact that IBM Cloud updated from Ubuntu 14.04 (OpenSSL 1.0) to Ubuntu 18.04 (OpenSSL 1.1) which will break all Swift programs that only work with OpenSSL 1.0.

Because this is all such a pain (and also not future-proof), the SwiftNIO team decided that starting from swift-nio-ssl version 2.0 we will no longer depend on the system's OpenSSL version and bring our own namespaced version of BoringSSL instead. This is fully implemented, shipped with SwiftNIO 2.0 in March 2019 and the process was discussed in this post.

1 Like