Merged
Conversation
✅ Deploy Preview for seader canceled.
|
bettse
added a commit
that referenced
this pull request
Mar 8, 2026
bettse
added a commit
that referenced
this pull request
Mar 8, 2026
bettse
added a commit
that referenced
this pull request
Mar 8, 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.
This PR creates a unified HF read path and fixes a PAC parsing regression that showed up as soon as I started routing more credentials through the requestPacs2 flow.
Credentials which should have been showing up as 26-bit PACS were instead showing up as 40-bit in debug, which meant the Wiegand parser never recognized them and the Parse action disappeared. The root cause was in how Pacs2.bits was being handled. Seader was effectively treating that response like the older PAC path and rebuilding a synthetic DER BIT STRING, but ResponseGetContentElement2 already gives back Content Element Data where PAC bits are formatted as a BIT STRING payload. In practice that means the leading byte is the DER BIT STRING unused-bits count, and we need to trim with that instead of accidentally treating it as credential data.
What this does:
A couple of related cleanups fell out of that: