Verify Downloaded Installers
Verify a downloaded We360.ai MyZen installer before deploying it - check the publisher signature on Windows and macOS, and match the file against the published version and MD5 checksum.
Before you push an installer to a fleet, confirm two things about the file on disk:
It came from us - the file carries a valid publisher signature.
It arrived intact - its checksum matches the checksum we published for that build.
Both checks take under a minute and are worth running on every fresh download, especially for mass deployment where one bad file reaches every endpoint.
Step 1 - Check the published version and checksum
Every installer on the download server has a companion metadata file at the same URL with .version appended. It is public, small, and lists the build version and the MD5 checksum of the installer:
Invoke-RestMethod "https://portal.we360.ai/static/installers/MyZenV2.msi.version"curl -s https://portal.we360.ai/static/installers/MyZenV2-arm64.pkg.versionThe response looks like this (extra build metadata fields may also be present):
{
"file": "MyZenV2-arm64.pkg",
"version": "4.26.0-26222",
"os": "macos",
"arch": "arm64",
"md5": "45c36169af2e0824bd5c2d3befd686c2"
}Now compute the checksum of the file you downloaded and compare it to the md5 value:
Get-FileHash .\MyZenV2.msi -Algorithm MD5 | Select-Object -ExpandProperty Hashmd5 -q MyZenV2-arm64.pkgmd5sum zs-amd64.shThe values must match, ignoring case. A mismatch usually means a truncated or interrupted download - delete the file and download it again. If it still does not match, do not install it; contact support.
Step 2 - Check the publisher signature
Windows (EXE and MSI)
The Windows installers are Authenticode-signed and timestamped, as are the executables they carry. Check the installer from PowerShell:
Expected result:
Status
Valid
SignatureType
Authenticode
Certificate subject
CN=Zenstack Private Limited, O=Zenstack Private Limited, S=Madhya Pradesh, C=IN
Certificate issuer
CN=Sectigo Public Code Signing CA E36, O=Sectigo Limited, C=GB
Checking the signature in the GUI (no PowerShell)
If you prefer to check by hand, or you are walking a colleague through it on a machine where scripts are restricted:
Right-click the downloaded
.exeor.msiand choose Properties.Open the Digital Signatures tab. If this tab is missing, the file is not signed - stop and re-download.
Under Embedded Signatures, confirm there is a row naming
Zenstack Private Limited, with asha256digest and a date in the Timestamp column.

Select that row and click Details. The dialog must read "This digital signature is OK.", with Name showing
Zenstack Private Limitedand a Countersignatures entry from DigiCert - that countersignature is the trusted timestamp.

Click View Certificate. On the General tab, Issued to must read
Zenstack Private Limitedand Issued by a Sectigo public code-signing CA. The Certification Path tab shows the full chain and should report "This certificate is OK".

Because the signature is timestamped, it stays valid after the signing certificate expires. A build signed today verifies years from now.
macOS (PKG and DMG)
macOS installers are signed with an Apple-issued Developer ID certificate and notarized by Apple, with the notarization ticket stapled to the file so the check works offline.
Expected output:
The team identifier in brackets - 5KPT5U8WVR - is the value to match. For a .dmg or an extracted .app, use codesign --verify --deep --strict --verbose=2 <path> instead of pkgutil, and expect the same Developer ID identity.
Checking the signature in the GUI (Suspicious Package)
Suspicious Package is a free macOS app that opens a .pkg without installing it. It is the usual choice for reviewing a package before deployment, because it shows the signature and the notarization status alongside everything the package would install.
Install Suspicious Package, then double-click the downloaded
.pkg- it opens in Suspicious Package instead of the macOS Installer.On the Package Info tab, check the signature summary: it must report the package as signed with a Developer ID certificate issued to
Zenstack Private Limited (5KPT5U8WVR), and as notarized by Apple.Click through the signature entry to see the full certificate chain -
Developer ID Installer->Developer ID Certification Authority->Apple Root CA- and the signing timestamp.Anything else - unsigned, signed by an unexpected name, or not notarized - means the file is not one of our published installers. Delete it and download again.
The All Files and All Scripts tabs in the same window let a security reviewer see exactly what the package installs and which install scripts it runs, which is often what an internal review board asks for before a rollout.
Linux
The Linux stealth installer is a shell script and is not code-signed. Verify it with the MD5 check in step 1, and download it only over HTTPS from the portal.
Verifying stealth installers
Stealth installers are renamed to <stealth_license_key>.<extension> before use - see Download Links & Utilities. Renaming does not affect any of these checks: the signature, the notarization ticket and the checksum all travel with the file contents, not the filename. You can verify before or after renaming, and both give the same result.
Two filename rules still matter, for reasons unrelated to signing:
The name must be exactly the license key plus the extension. A duplicate-download suffix such as
zs-setup (1).exebreaks the license the installer reads from its own filename.Verify the file you are about to distribute, not a re-saved copy. Re-zipping or re-exporting a PKG through an unpacking tool can drop the stapled notarization ticket.
Where to go next
Download Links & Utilities - the download URLs these checks apply to.
Windows Installation Validation and macOS Installation Validation - what to check after the installer has run.
Last updated
Was this helpful?