Skip to content
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

Finish port of MbedTLS #1638

Closed
huitema opened this issue Feb 21, 2024 · 1 comment
Closed

Finish port of MbedTLS #1638

huitema opened this issue Feb 21, 2024 · 1 comment

Comments

@huitema
Copy link
Collaborator

huitema commented Feb 21, 2024

We have an MbedTLS PR in PicoTLS to finish the second phase of the porting, adding support for a variety of public key operations to the TLS port. Since integration is PicoTLS appears stalled, we should consider adding that code directly into Picoquic, much like we did for the more basic primitives.
That PR provides sufficient support for building a server using MbedTLS, including certificate signing.

The missing step after that is the addition of certificate chain verification processes, which currently are only available for the OpenSSL back-end. (Minicrypto defaults to not checking certificate chains.)

The portable API for loading private keys relies on parsing the PEM file containing the key. In many cases, it is preferable to pass instead a key identifier, leaving the private key itself in a private vault. There are APIs for that in OpenSSL and MbedTLS, as well as N-Crypt on Windows, but it will be very hard to expose those APIs through a portable "least common denominator". These parts of the code may need to be conscious of which back-end they use.

The certificate chain verification procedures are rather tied to specific implementations of crypto, and may also be tied to certificate root files, etc. Developing portable alternatives could be hard and error prone.

@huitema
Copy link
Collaborator Author

huitema commented Aug 5, 2024

This was completed in PR #1689

@huitema huitema closed this as completed Aug 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant