tursodatabase / tursodatabase/libsql
Support FIPS-capable TLS by `aws-lc-rs`
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 17.2k
- Forks
- 531
- Avg merge
- 1h 12m
- Merged PRs (30d)
- 1
Description
Motivation
libsql’s HTTP/TLS stack is built on rustls + hyper-rustls. Today that path is effectively ring-backed, which blocks deployments that need FIPS-validated cryptography.
The Rust TLS ecosystem has been moving toward aws-lc-rs for this reason:
- rustls made aws-lc-rs the default crypto backend and added FIPS support
- rustls documents a FIPS path via aws-lc-rs (
fipsfeature + FIPSCryptoProvider) — see rustls FIPS guide - aws-lc-rs exists in large part as a ring-compatible provider with FIPS
Supporting aws-lc-rs (and ideally a documented FIPS configuration) would align libsql with that direction and unblock regulated / government workloads.
Proposal
- Expose a crate feature (e.g.
aws-lc-rs) that backs the built-in TLS connector with aws-lc-rs
I am happy to contribute a PR for this proposal if needed.
Alternatives
- Hard switch from ring to aws-lc-rs, but this may introduce more breaking changes
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing libSQL's rustls and hyper-rustls HTTP/TLS connector and the crate feature definitions. Check the rustls FIPS guide and aws-lc-rs integration described in the issue. Done means an aws-lc-rs-backed connector can be enabled through a crate feature, with the FIPS configuration documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, rust
- Domain
- networking, security
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100