Skip to content

feature: Support boringssl SSLCredential API #918

@jmcrawford45

Description

@jmcrawford45

Title: Proposal for Integration with BoringSSL SSL Credential API

Description:

I would like to propose an integration with the BoringSSL SSL Credential API and am seeking feedback from the maintainers on their willingness to support this initiative. I am prepared to work on the code changes for the integration but wanted to check in here first.

Background:

Historically, BoringSSL lacked a built-in method to select between RSA and ECDSA certificates. The selection process, especially at TLS 1.2, is quite complex, as detailed in this link. TLS 1.3 simplifies this process significantly. Additionally, within ECDSA, there are different curves to consider, and future developments will introduce post-quantum key types.

Functionality:

With the proposed functionality, BoringSSL could in the future make various certificate negotiation decisions, such as:

SSL_CREDENTIAL Overview:

The SSL_CREDENTIAL is designed to configure these elements. It consolidates everything related to a single "credential" into an object. Credentials can vary in type, such as X.509 certificates or others. Each credential has criteria, based on TLS protocol rules, to determine its applicability to a connection. Users configure an ordered preference list of credentials, and BoringSSL selects the first matching one.

This approach can be used alongside application-specific selection logic, like SNI dispatch. End users would use their criteria to select a list of candidates, such as an ECDSA and RSA certificate for a host, configure them in preference order with BoringSSL, and BoringSSL will evaluate them according to protocol rules.

Relevant Links:

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions