Repository navigation
Correct three statements in the 1.0.0 release notes - #200
Merged
Merged
Conversation
Three sentences cisco#199 added describe the 0.8.x line or an earlier commit rather than what main does, found by a review of the merged text against the source at 0.8.0 and at each pull request. The generated-parameter entry said the check for a caller-supplied "epk" had read it as a string and so never saw one. That defect existed only on the 0.8.x backport, whose 0.8.1 notes the sentence was taken from; on main the helper has looked the parameter up as JSON since cisco#188 introduced it. What 0.8.0 did on main was silently replace a protected "epk" with the generated one, and leave one in the shared or a per-recipient header beside it. The RSA private-member entry gave "imported as a public key" as the outcome for every valueless form. That is true of an empty, null or padding-only member (cisco#189, cisco#192) but not of a zero one (cisco#193), which imported as a private key whose export cjose could not read back, as the 0.8.1 section below it already says. The Compatibility paragraph counted three rules that refuse input 0.8.0 accepted and missed two: the "oth" refusal of cisco#190, since 0.8.0 knew no such member and imported a multi-prime key as a two-prime one, and the refusal of an "epk" naming a private member of cisco#186. It also listed "iv", "tag" and "p2s" as if 0.8.0 had accepted them, when the algorithms that use them are new in this release. The paragraph now names the rules without counting them. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: Hans Zandbelt <hans.zandbelt@openidc.com>
TheStormN
approved these changes
Sep 15, 2026
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.
Summary
Three sentences in the
1.0.0 (unreleased)notes that #199 added are wrong aboutmain. A review of the merged text against the source at 0.8.0 and at each pull request found them after the merge; sorry for the second changelog PR in an hour. Three lines change, nothing else.The generated-parameter entry said the check for a caller-supplied
"epk""read it as a string, and"epk"is a JSON object, so it never saw one there". That defect only ever existed on the0.8.xbackport, whose 0.8.1 notes the sentence came from; onmainthe helper has looked the parameter up as JSON since Refuse a "crit" header and enforce the disjointness of the JWE header locations #188 introduced it (_cjose_jwe_get_json_from_headers, both in the intermediate commit and in 3c153f7). What 0.8.0 actually did onmainwas silently replace a protected"epk"with the generated one (f2173fd:src/jwe.c:994) and leave one in the shared or a per-recipient header beside it. The entry now says that.The RSA private-member entry gave "imported as a public key" as the outcome for every valueless form. That holds for an empty, null or padding-only member (Refuse an RSA key whose private members are present but carry no value #189, Refuse a private member whose value is base64url padding only #192) but not for a zero one (Refuse a private member whose value is zero #193): it imported as a private key whose export cjose could not read back, which is what Refuse a private member whose value is zero #193's own message and the 0.8.1 section a few lines further down both say. The two sections contradicted each other.
The Compatibility paragraph counted "three rules" that refuse input 0.8.0 accepted and missed two: the
"oth"refusal of Reject unsupported multi-prime RSA JWKs #190 (0.8.0 knew no such member and imported a multi-prime key as a two-prime one) and Add X25519 and X448 to the ECDH-ES key agreement (RFC 8037 section 3.2) #186's refusal of an"epk"that names a private member (0.8.0 imported it and checked only the curve). It also listed"iv","tag"and"p2s"as though 0.8.0 had accepted them, when the algorithms that use them are new in this release. The paragraph now names the rules without counting them.Everything else in #199 was checked at the same time and holds: the copied 0.8.1 section is byte-identical to the
0.8.xbranch, and the attributions, identifiers, RFC sections and the README line are accurate.🤖 Generated with Claude Code