Research: does the rustls/aws-lc-sys crypto stack build on illumos, or should the depot use ring? #35
Labels
No labels
Compat/Breaking
Crazy Idea
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority/Critical
Priority/High
Priority/Low
Priority/Medium
Reviewed/Confirmed
Reviewed/Duplicate
Reviewed/Invalid
Reviewed/Won't Fix
Status/Abandoned
Status/Blocked
Status/Need More Info
needs-info
needs-triage
ready-for-agent
ready-for-human
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wayfinder:task
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
OpenIndiana/ips#35
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of #24
Question
pkg6depotdpullsaws-lc-systhroughrustls(via axum-server, tokio-rustls, reqwest) andjsonwebtoken(aws_lc_rsfeature). aws-lc-sys has no pregenerated bindings forx86_64-unknown-illumos, so CI now enables itsbindgenfeature on illumos and installs libclang. Determine whether aws-lc actually compiles and passes tests on OpenIndiana (the SolsticeillumosCI job is the first evidence), and if not, what switching to theringprovider across rustls/reqwest/jsonwebtoken costs and whether it changes FIPS or algorithm coverage we need (RS256/ES256 for JWT, TLS 1.3).Capture as
docs/research/illumos-crypto-stack.mdwith a recommendation. This de-risks the illumos release build.Links
Resolution
x86_64-unknown-illumosin its cross.yml (build-only,--no-run) and lists it under "Other Platforms" in its user guide. No open illumos issues in either repo.[target.'cfg(target_os = "illumos")'] aws-lc-sys = { features = ["bindgen"] }line added with the CI migration re-enables aws-lc-sys's defaultall-bindingsfeature (aws-lc-rs depends on it withdefault-features = false), which is precisely what forces the bindgen path. Verified withcargo tree -e features -i aws-lc-sys --target x86_64-unknown-illumos: removing that line leaves onlyprebuilt-nasmand drops bindgen/clang-sys from the illumos graph; the build then falls back to the CMake builder (gcc + cmake, both in the Solstice illumos image).default-features = false+ring, axum-servertls-rustls-no-provider, jsonwebtokenrust_crypto; reqwest untouched sincerustls-tlsalready enables ring privately). Verified: aws-lc-sys, aws-lc-rs, bindgen, clang-sys and cmake vanish from Cargo.lock; +30 RustCrypto crates. All JWT algorithms (HS/RS/PS/ES256/384/EdDSA) and TLS 1.3 remain; only X25519MLKEM768 post-quantum KX and FIPS are lost. ring 0.17.14 already builds on illumos (it is in today's graph).developer/clang-20@20.1.8is in OI hipster and delivers/usr/clang/20/lib/libclang.so, so the CI step was correct but unnecessary; it costs a cold LLVM install per VM plus compiling bindgen/clang-sys.Recommendation: keep aws-lc, delete the illumos aws-lc-sys override and the libclang CI step (done on
mainright after this resolution); keep the ring diff as fallback if the universal bindings fail on OpenIndiana. The Solstice illumos CI job is the confirming evidence; see the CI ticket #8 for its outcome.Full findings: docs/research/illumos-crypto-stack.md on branch
research/illumos-crypto-stack(research branch, not merged; cherry-pick the file when the decision it feeds is recorded).