99designs / 99designs/http-signatures-ruby
Key rotation: Verifier should support N keys.
- Dominant language
- Ruby
- Stars
- 21
- Forks
- 22
- PR merge metrics
- No merged PRs in 30d
Description
Currently key rotation is difficult; the verifier needs to start verifying with the new key at the same moment the new key is used by the signer. In a high-traffic environment this can be near impossible without dropping requests.
It should be possible to pass multiple keys to the verifier, so that both old and new keys can be accepted for a period of time. Either N keys, or a static limit of two keys (current and previous) would work.
This could be represented by passing an array of keys per ID; using the first for signing, and using all of them for verification. Or… something else?
Contributor guide
No contributing guide indexed for this repository
Research direction
Look at the verifier class and its key management. The issue suggests modifying the verifier to accept an array of keys per ID, using the first for signing and all for verification. Start by reading the existing signing and verification logic to understand the current key interface. Determine how to adjust the API to support multiple keys without breaking existing usage. Check for any existing tests around verification to update.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- backend-api-design, security
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100