Skip to content

OpenSSL Support Roadmap #5783

@jmayclin

Description

@jmayclin

Problem:

We need a clear statement around our intended compatibility with OpenSSL.

  • Is there a ceiling?
  • Is there a timeline with which we intended to drop OpenSSL support?

Solution:

There are two main consumers of s2n-tls with OpenSSL.

AWS Common Runtime: The common runtime is used in various SDK's. It uses AWS-LC by default, but my understanding is that customers can configure different libcryptos. The path to removing OpenSSL support would involve a "fork" on the CRT side where attempting to build s2n-tls with a different libcrypto would just fall back to an interned copy of AWS-LC.

aws-sdk-cpp: This is the official AWS SDK for C++. My understanding is that this always builds with OpenSSL, because it has a libcurl dependency, and AWS-LC is not compatible with curl Edit: AWS-LC is compatible with Curl. The path to removing OpenSSL support would then entail always interning AWS-LC.

The main downside of interning AWS-LC is increased artifact size. The exact increase is currently unclear. My understanding is that AWS-LC artifact size varies significantly based on Debug Info and Assembly inclusion. To determine the path forward, we should determine

  • what is the size increase with a naive implementation, and how many customers can't use that?
  • is there a path to keeping our artifact size the same for very restricted customers? Can we make the libs2n artifact smaller to "make room" for the AWS-LC artifact?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions