Back to Codeberg

fix(login): correctly generate pkce challenge #368

forgejo-contrib-forgejo-cli-pulls-368.md

latest12.5 KB
Original Source

forgejo-contrib/forgejo-cli

Watch20

Star402

Fork

You've already forked forgejo-cli

51

CodeIssues 44Pull requests 8Releases 11Packages 2WikiActivity

fix(login): correctly generate pkce challenge #368

Merged

Cyborusmerged 1 commit from cyborus/fix/pkce-challenge into main 2026-03-15 23:58:18 +01:00AGit

Conversation 2Commits 1Files changed 3 +10 -39

Cyborus commented 2026-03-15 23:37:03 +01:00

Member

Copy link

  • Replaces sha256 dependencies with the
    better-maintained sha2 crate
  • Use Base64UrlUnpadded instead of Base64Url

This stopped working with forgejo/forgejo!11513, which fixed Forgejo not verifying S256 PKCE challenges. Before that, it didn't matter that this was incorrect.

The sha256 crate outputs its hash as a hexadecimal string, but Forgejo expects raw bytes, which sha2 provides.

PKCE challenges are also supposed to be encoded as base64 without padding, which is what Base64UrlUnpadded does.

Fixes #367

  • Replaces sha256 dependencies with the better-maintained sha2 crate - Use Base64UrlUnpadded instead of Base64Url This stopped working with forgejo/forgejo!11513, which fixed Forgejo not verifying S256 PKCE challenges. Before that, it didn't matter that this was incorrect. The sha256 crate outputs its hash as a hexadecimal string, but Forgejo expects raw bytes, which sha2 provides. PKCE challenges are also supposed to be encoded as base64 *without* padding, which is what Base64UrlUnpadded does. Fixes #367

Cyborus added 1 commit 2026-03-15 23:37:03 +01:00

fix(login): correctly generate pkce challenge...

All checks were successful

ci/woodpecker/pr/check Pipeline was successful

Details

a0d9e924af

- Replaces `sha256` dependencies with the
  better-maintained `sha2` crate
- Use `Base64UrlUnpadded` instead of `Base64Url`

This stopped working with[forgejo/forgejo!11513](/forgejo/forgejo/pulls/11513),
which fixed Forgejo not verifying S256 PKCE
challenges. Before that, it didn't matter that this
was incorrect.

The `sha256` crate outputs its hash as a
hexadecimal string, but Forgejo expects raw bytes,
which `sha2` provides.

PKCE challenges are also supposed to be encoded
as base64 *without* padding, which is what
`Base64UrlUnpadded` does.

Cyborus commented 2026-03-15 23:43:52 +01:00

Author

Member

Copy link

@florian-obernberger I've tested it myself, and it seems to fix it. Could you check that it works for you, too?

@florian-obernberger I've tested it myself, and it seems to fix it. Could you check that it works for you, too?

florian-obernberger commented 2026-03-15 23:51:57 +01:00

Contributor

Copy link

@florian-obernberger I've tested it myself, and it seems to fix it. Could you check that it works for you, too?

Yep, works perfectly, thank you! :D

Sorry for the small delay, hat to figure out how to properly clone an AGit Workflow PR :)

> @florian-obernberger I've tested it myself, and it seems to fix it. Could you check that it works for you, too? Yep, works perfectly, thank you! :D _Sorry for the small delay, hat to figure out how to properly clone an AGit Workflow PR :)_

👍 1

Cyborus merged commit 7afd1e40ec into main 2026-03-15 23:58:18 +01:00

Cyborus referenced this pull request from a commit 2026-03-15 23:58:19 +01:00 Merge pull request 'fix(login): correctly generate pkce challenge' (#368) from cyborus/fix/pkce-challenge into main

Cyborus referenced this pull request 2026-03-16 00:11:11 +01:00 backport(0.4.x): fix(login): correctly generate pkce challenge #370

Cyborus referenced this pull request 2026-03-16 00:20:31 +01:00 backport(0.4.x): fix(login): correctly generate pkce challenge #371

stalecontext referenced this pull request from a commit 2026-03-16 18:29:05 +01:00 fix(login): replace sha256 crate with sha2 for PKCE challenge

stalecontext referenced this pull request from stalecontext/forgejo-cli-plus 2026-03-16 18:32:21 +01:00 Upstream sync: adopt sha2 crate for PKCE challenge #20

stalecontext referenced this pull request from stalecontext/forgejo-cli-plus 2026-03-16 18:33:46 +01:00 fix(login): replace sha256 crate with sha2 for PKCE challenge #21

stalecontext referenced this pull request from a commit 2026-03-18 05:48:03 +01:00 fix(login): replace sha256 crate with sha2 for PKCE challenge (#21)

Cyborus referenced this pull request 2026-04-13 20:26:41 +02:00 Trying to figure out the development process of this repo #411

Sign in to join this conversation.

Reviewers

No reviewers

Labels

Clear labels[ Kind/Breaking Breaking change that won't be backward compatible

](#)[ Kind/Bug Something is not working

](#)[ Kind/Design Discussion about UI/UX design

](#)[ Kind/Documentation Documentation changes

](#)[ Kind/Enhancement Improve existing functionality

](#)[ Kind/Feature New functionality

](#)[ Kind/Security This is security issue

](#)[ Kind/Testing Issue or pull request related to testing

](#)[ Kind/Upstream This is an issue with upstream software (Forgejo) that is probably not our fault

](#)

[ Priority

Critical The priority is critical

](#)[ Priority

High The priority is high

](#)[ Priority

Low The priority is low

](#)[ Priority

Medium The priority is medium

](#)

[ Reviewed

Confirmed Issue has been confirmed

](#)[ Reviewed

Duplicate This issue or pull request already exists

](#)[ Reviewed

Invalid Invalid issue

](#)[ Reviewed

Won't Fix This issue won't be fixed

](#)

[ Status

Abandoned Somebody has started to work on this but abandoned work

](#)[ Status

Blocked Something is blocking this issue or pull request

](#)[ Status

Need More Info Feedback is required to reproduce issue or to continue work

](#)

[ Suspicious

](#)

No labels Kind/Breaking Kind/Bug Kind/Design Kind/Documentation Kind/Enhancement Kind/Feature Kind/Security Kind/Testing Kind/Upstream [ Priority

Critical ](/forgejo-contrib/forgejo-cli/pulls?labels=173012) [ Priority

High ](/forgejo-contrib/forgejo-cli/pulls?labels=173013) [ Priority

Low ](/forgejo-contrib/forgejo-cli/pulls?labels=173015) [ Priority

Medium ](/forgejo-contrib/forgejo-cli/pulls?labels=173014) [ Reviewed

Confirmed ](/forgejo-contrib/forgejo-cli/pulls?labels=173007) [ Reviewed

Duplicate ](/forgejo-contrib/forgejo-cli/pulls?labels=173005) [ Reviewed

Invalid ](/forgejo-contrib/forgejo-cli/pulls?labels=173006) [ Reviewed

Won't Fix ](/forgejo-contrib/forgejo-cli/pulls?labels=173008) [ Status

Abandoned ](/forgejo-contrib/forgejo-cli/pulls?labels=173011) [ Status

Blocked ](/forgejo-contrib/forgejo-cli/pulls?labels=173010) [ Status

Need More Info ](/forgejo-contrib/forgejo-cli/pulls?labels=173009) Suspicious

Milestone

Clear milestone

No items

No milestone

Projects

Clear projects

No items

No project

Assignees

Clear assignees

No assignees

2 participants

Notifications Subscribe

Due date

The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference

forgejo-contrib/forgejo-cli!368

WritePreview

Loading…

Add table

| Rows | | | Columns | |

CancelOK

Add a link

Url Description Hint: With a URL in your clipboard, you can paste directly into the editor to create a link.

CancelOK

CancelSave

Reference in a new issue

Repository

forgejo-contrib/forgejo-cli

Title

Body

Create issue

No description provided.

Delete branch "cyborus/fix/pkce-challenge"

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?

No Yes