Support CompactIndex API for FIPS
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 4k
- Forks
- 1.9k
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 81
Description
Describe the problem as clearly as you can
The CompactIndex API uses MD5 which means it cannot be used on FIPS-enabled systems, resulting in this error message: FIPS mode is enabled, bundler can't use the CompactIndex API
Bundler then falls back to a full source index fetch which is prohibitively slow (timing out our CI jobs for instance).
If you check the "overriding fips" section here, it sounds like there should be ways for Ruby to flag the usage of md5 as safe since it's not being used for cryptographic purposes here.
Alternatively, could the CompactIndex API be converted to use a FIPS-compatible algorithm?
Without one of these fixes, I can't see any workaround to run bundle install in a practical way on FIPS systems.
Did you try upgrading rubygems & bundler?
Yes
Post steps to reproduce the problem
Enable FIPS mode
Which command did you run?
Run bundle install
What were you expecting to happen?
Bundle install should use the CompactIndex API
What actually happened?
Bundler falls back to source index fetching
If not included with the output of your command, run bundle env and paste the output below
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 with the Bundler CompactIndex API path used by bundle install and investigate how FIPS mode triggers the MD5 restriction and source-index fallback. Compare the possible FIPS-compatible handling described in the issue, then verify that bundle install uses CompactIndex successfully on FIPS-enabled systems without falling back to a full source index.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- cli, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100