Skip to content

Fix #9: Show Package Family Name and Package Full Name - #12

Merged
aclinick merged 1 commit into
mainfrom
feat/9-package-family-name
Jun 3, 2026
Merged

Fix #9: Show Package Family Name and Package Full Name#12
aclinick merged 1 commit into
mainfrom
feat/9-package-family-name

Conversation

@aclinick

@aclinick aclinick commented Jun 3, 2026

Copy link
Copy Markdown
Owner

Closes #9.

Adds a PackageIdentityCalculator service (Core) that hand-implements the MSIX publisher-hash algorithm:

  1. UTF-16LE encode the publisher X.509 Subject DN
  2. SHA-256, take first 8 bytes
  3. Encode as 13 chars using Crockford base32 (0123456789abcdefghjkmnpqrstvwxyz — omits i/l/o/u)

Uses that to compute:

  • Package Family Name = Name_PublisherHash (stable across versions/archs — what IT pros need for AppLocker, Intune detection scripts, WDAC, Get-AppxPackage)
  • Package Full Name = Name_Version_Architecture_ResourceId_PublisherHash (this exact build — Add-AppxPackage / Remove-AppxPackage)

Verified ground truth

  • Microsoft Corporation publisher → 8wekyb3d8bbwe
  • MSIXplainer's own publisher (CN=46604BD4-AFD9-4B23-8EB3-10EAF66872A5) → nxa64pw99ve20

Surfaces in both UIs

  • WinUI: two new rows in the Identity property group with IT-pro-focused explanations (mentions AppLocker, Intune, WDAC, Get-AppxPackage)
  • CLI: two new rows (Family Name / Full Name) in the identity summary table

Tests

  • 11 new tests in PackageIdentityCalculatorTests: known hashes, 13-char length invariant, vowel-free alphabet, PFN format, Full Name format, architecture lowercasing, empty input handling
  • 129/129 Core tests pass
  • CLI + WinUI x64 builds clean

Adds PackageIdentityCalculator (Core) that computes the MSIX publisher hash (SHA-256 of UTF-16LE publisher string, first 8 bytes encoded as 13 chars of Crockford base32), the Package Family Name (Name_PublisherHash) and the Package Full Name (Name_Version_Architecture_ResourceId_PublisherHash).

Verified against two known ground-truth values: Microsoft Corporation -> 8wekyb3d8bbwe, and MSIXplainer's own publisher -> nxa64pw99ve20.

Surfaces both values:

* WinUI Identity property group (with explanations for IT pros about AppLocker, Intune, WDAC, Get-AppxPackage)

* CLI summary table (Family Name + Full Name rows)

11 new tests, 129 total Core tests pass.

Closes #9

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@aclinick
aclinick merged commit 9a3ffe1 into main Jun 3, 2026
2 checks passed
@aclinick
aclinick deleted the feat/9-package-family-name branch June 3, 2026 17:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Show Package Family Name and Package Full Name

1 participant