Repository navigation
chore(quest): plan the API misuse audit's fixes - #508
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kixelated
marked this pull request as ready for review
November 8, 2026 21:36
|
This run was cancelled before it finished. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Plans the fixes from a security and performance misuse audit of rind's public API, as a new m2 epic, quest/m2/api.
Audit
Four reviewers each read one module group of
rind(symmetric ciphers and AEADs; hashes, MACs, KDFs and CPU; signatures and RSA; agreement, KEM, encodings and errors) against AGENTS.md's rules. They were told the 0.2.0 audit's decisions (moq-dev/rind#383) were settled. I checked the top findings against the source. Nothing was high-severity, and no panic is reachable from public input.Quests
[S] HKDF output keys the next expand:Prkfrom anOkm, so chained key schedules aren't hand-written. rind-ring and rind-aws-lc-rs drop their copies of Expand.[S] Agreement keys keep their public key and algorithm:public_key()andto_pkcs8()stop redoing a base-point multiplication on every call, and agreement keys getalgorithm()and an algorithm in theirDebug.[S] AES-CBC encryption takes a typed IV(breaking, rind 0.4): the IV is random or explicitly asserted unpredictable.[S] The audit's hazards are documented or linted: tags'Debugstops printing their bytes,#[must_use]is added where results are lazy, and eight hazards get documented.[S] rind needs no runtime CPU check(breaking, rind 0.4 and adapter patch releases):cpu::check()can no longer fail on any target rind builds for, so the requirement moves to compile time, and the check and every adapter'sMissingFeatureare deleted.Decisions
Made with the maintainer on 2026-11-08 and recorded in each quest's Plan:
SharedSecretaccessor, GCM short tags moved to a legacy name, oneconstant_time::verifyerror).RandomizedNonceKey's syscall per seal, rind-str0m's SRTP copy,agree(&PublicKey), and a streaming HMAC verify. The epic README gives each reason. ML-KEM key storage is already in ML-KEM-512 and ML-KEM-1024.It also updates the 32-bit x86 target quest, whose runtime-error line the CPU quest replaces.
Impact
Quest files only. No public API or wire changes.
Models
Size: S
Implementer: Claude Code, claude-opus-5-5, high effort
🤖 Generated with Claude Code
(Written by Claude Opus 5.5 with high)
Review
Rewritten by
quest reviewafter each round.01a1bd16-d4c1-7ac1-bbb0-9eb90d8ca79e, round 1The documentation-only change adds planning documents without changing executable code, and no actionable defects were identified.