Releases: PSModule/Sodium
v2.2.4
Bump System.Management.Automation from 7.4.0 to 7.4.12 (#36)
Updated System.Management.Automation from 7.4.0 to 7.4.12.
Release notes
Sourced from System.Management.Automation's releases.
7.4.12
## 7.4.12
Tools
- Add CodeQL suppressions (#25973)
Build and Packaging Improvements
Update .NET SDK to 8.0.413
- Add LinuxHost Network configuration to PowerShell Packages pipeline (#26003)
- Update container images to use mcr.microsoft.com for Linux and Azure Linux (#25987)
- Update SDK to 8.0.413 (#25993)
- Make logical template name consistent between pipelines (#25992)
- Remove AsyncSDL from Pipelines Toggle Official/NonOfficial Runs (#25965)
Documentation and Help Content
- Update third-party library versions to
8.0.19forObjectPool, Windows Compatibility, andSystem.Drawing.Common(#26001)
SHA256 Hashes of the release artifacts
- hashes.sha256
- 9455B5BF00405E146BF3F3707E9A500D2762C1B7C51B9F5190B7559DEFDAF7F0
- powershell-7.4.12-1.cm.aarch64.rpm
- 30A4E0A08350675FDCDFD7A68DD30D3E93B78A87DA4533E964D7DAA89FD419E3
- powershell-7.4.12-1.cm.x86_64.rpm
- 6C3BB5BF81471C0EE09E11FBA4C456874CBED1502B523859FDA5B15E28502DCE
- powershell-7.4.12-1.rh.x86_64.rpm
- F2800B4C3F8FE33E6E78E81EB30C3C2371EE1FD49A45F3B626BE59D63ABC4F0C
- powershell-7.4.12-linux-arm32.tar.gz
- 085B634CF66314DB875874F9C04CC98ADF2DEC3B882DF5E220D5BAD3A62F4B90
- powershell-7.4.12-linux-arm64.tar.gz
- 8D961B23557F822A5497F4C271FA93785BFEBEED1C8E8350FD627A4D7BAF624A
- powershell-7.4.12-linux-musl-x64.tar.gz
- DCF35E47C0355CEE6690B1654D8FAB43E5FD87370FDCC643EF26BA16A17F5C0E
- powershell-7.4.12-linux-x64-fxdependent.tar.gz
... (truncated)
7.4.11
## 7.4.11 - 2025-06-17
Engine Updates and Fixes
- Move .NET method invocation logging to after the needed type conversion is done for method arguments (#25568)
Build and Packaging Improvements
Update .NET SDK to 8.0.411
- Correct Capitalization Referencing Templates (#25672)
- Manually update SqlClient in TestService
- Update cgmanifest
- Update package references
- Update .NET SDK to latest version
- Change linux packaging tests to ubuntu latest (#25640)
Documentation and Help Content
- Update Third Party Notices (#25524, #25659)
SHA256 Hashes of the release artifacts
- hashes.sha256
- FC78D20FAC0CEC42461207738BCB35ECC5B466A25DB603567FF66F860D32F6A4
- powershell-7.4.11-1.cm.aarch64.rpm
- DDA4B695D0056846979E9188C5E12CDE623E5E33DD1277BD12615290A2F329FD
- powershell-7.4.11-1.cm.x86_64.rpm
- A2486467D4D375E23C55F197FA6B05060B605A6065E76EAD4EC03D0C7197AC41
- powershell-7.4.11-1.rh.x86_64.rpm
- 6C1D922BD06510A1AD644CEFF9054598C2F49A39B6024F8EBDEF4C55888A183B
- powershell-7.4.11-linux-arm32.tar.gz
- FB1AAE625D48C45822CE710B535BD34334BEB9AFDCE732C8A901A7CD66115B4A
- powershell-7.4.11-linux-arm64.tar.gz
- 0A705C15429F90980814EC29D2BCD70ECDA478CFCD19E4B857E5928C1CF49EF3
- powershell-7.4.11-linux-musl-x64.tar.gz
... (truncated)
7.4.10
## [7.4.10]
Engine Updates and Fixes
- Fallback to AppLocker after
WldpCanExecuteFile(#25229)
Code Cleanup
- Remove obsolete template from Windows Packaging CI (#25405)
- Cleanup old release pipelines (#25404)
Tools
- Do not run labels workflow in the internal repository (#25411)
Build and Packaging Improvements
Update .NET SDK to 8.0.408
- Update branch for release (#25518)
- Move MSIXBundle to Packages and Release to GitHub (#25516)
- Add CodeQL suppressions for PowerShell intended behavior (#25376)
- Enhance path filters action to set outputs for all changes when not a PR (#25378)
- Fix Merge Errors from #25401 and Internal 33077 (#25478)
- Fix MSIX artifact upload, vPack template, changelog hashes, git tag command (#25476)
- Fix Conditional Parameter to Skip NuGet Publish (#25475)
- Use new variables template for vPack (#25474)
- Add Windows Store Signing to MSIX bundle (#25472)
- Update test result processing to use NUnitXml format and enhance logging for better clarity (#25471)
- Fix the expected path of .NET after using UseDotnet 2 task to install (#25470)
- Update Microsoft.PowerShell.PSResourceGet to 1.1.0 (#25469)
- Combine GitHub and Nuget Release Stage (#25473)
- Make GitHub Workflows work in the internal mirror (#25409)
- Add default .NET install path for SDK validation (#25339)
- Update APIScan to use new symbols server (#25400)
- Use GitHubReleaseTask (#25401)
- Migrate MacOS Signing to OneBranch (#25412) ... (truncated)
- [release/v7.4] Update branch for release - Transitive - true - minor (#24546)
- [release/v7.4] Fix backport mistake in #24429 (#24545)
- Fix seed max value for Container Linux CI (#24510) (#24543)
- Add a way to use only NuGet feed sources (#24528) (#24542)
- Bump Microsoft.PowerShell.PSResourceGet to 1.0.6 (#24419)
- Update path due to pool change (Internal 33083)
- Update pool for "Publish BuildInfo" job (Internal 33082)
- Add missing backports and new fixes (Internal 33077)
- Port copy blob changes (Internal 33055)
- Update firewall to monitor (Internal 33048)
- Fix typo in release-MakeBlobPublic.yml (Internal 33046)
- Update change log for 7.4.6 (Internal 33040)
- Update changelog for v7.4.6 release (Internal 32983)
- Fix backport issues with release pipeline (#24835)
- Remove duplicated parameter (#24832)
- [release/v7.4] Make the
AssemblyVersionnot change for servicing releases 7.4.7 and onward (#24821) - Add *.props and sort path filters for windows CI (#24822) (#24823)
- Take the newest windows signature nuget packages (#24818)
- Use work load identity service connection to download makeappx tool from storage account (#24817) (#24820)
- Update path filters for Windows CI (#24809) (#24819)
- Fixed release pipeline errors and switched to KS3 (#24751) (#24816)
- [release/v7.4] Update branch for release - Transitive - true - minor (#24806)
- Add ability to capture MSBuild Binary logs when restore fails (#24128) (#24799)
- Download package from package build for generating vpack (#24481) (#24801)
- Add a parameter that skips verify packages step (#24763) (#24803)
- Fix Changelog content grab during GitHub Release (#24788) (#24804)
- Add tool package download in publish nuget stage (#24790) (#24805)
- Add CodeQL scanning to APIScan build (#24303) (#24800)
- Deploy Box Update (#24632) (#24802)
- Update notices file (#24810)
- Copy to static site instead of making blob public (#24269) (#24473)
- Add ability to capture MSBuild Binary logs when restore fails (#24128)
- Keep the roff file when gzipping it. (#24450)
- Update
PowerShell-Coordinated_Packages-Official.yml(#24449) - Update and add new NuGet package sources for different environments. (#24440)
- Add PMC mapping for Debian 12 (bookworm) (#24413)
- Fixes to Azure Public feed usage (#24429)
- Delete
assets/AppImageThirdPartyNotices.txt(#24256) - Delete
demosdirectory (#24258) - Add specific path for issues in tsaconfig (#24244)
- Checkin generated manpage (#24423)
- Add updated libicu dependency for Debian packages (#24301)
- Add mapping to azurelinux repo (#24290)
- Update vpack pipeline (#24281)
- Add
BaseUrltobuildinfojson file (#24376) - Delete the msix blob if it's already there (#24353)
- Make some release tests run in a hosted pools (#24270)
- Create new pipeline for compliance (#24252)
- Use Managed Identity for
APIScanauthentication (#24243) - Check
Create and Submitin vPack build by default (#24181) - Capture environment better (#24148)
- Refactor Nuget package source creation to use
New-NugetPackageSourcefunction (#24104) - Make Microsoft feeds the default (#24426)
- Bump to .NET 8.0.403 and update dependencies (#24405)
- hashes.sha256
- A0589775F0911F061946B00E7C0A6C386F4D1F30AABB1AAD2D3CDA49D21F9D95
- powershell_7.4.6-1.deb_amd64.deb
... (truncated) - Fix WebCmdlets when
-Bodyis specified butContentTypeis not (#24145) - Rewrite the mac syslog tests to make them less flaky (#24152)
- Add feature flags for removing network isolation (Internal 32126)
7.4.7
[7.4.7]
Build and Packaging Improvements
Update .NET SDK to 8.0.405
Documentation and Help Content
... (truncated)
7.4.6
7.4.6 - 2024-10-22
Build and Packaging Improvements
Bump .NET SDK to 8.0.403
SHA256 Hashes of the release artifacts
7.4.5
[7.4.5] - 2024-08-20
General Cmdlet Updates and Fixes
Tests
Build and Packaging Improvements
Bump .NET SDK to 8.0.400
v2.2.3
🩹 [Patch]: Secret crypto operations now fail fast on invalid input with lower per-call overhead (#45)
Secret encryption and decryption operations in Sodium now validate malformed inputs earlier, return clearer errors for invalid key and payload shapes, and run substantially faster on repeated invocations thanks to a series of targeted performance improvements across the interop layer.
Fixed: Invalid key and sealed payload shapes now fail fast with clear errors
\Get-SodiumPublicKey\ now rejects wrong-length private keys before key derivation, and \ConvertFrom-SodiumSealedBox\ now rejects sealed payloads shorter than the required Sodium overhead. This prevents low-level failures and returns actionable validation messages earlier in the command flow.
Example: \Get-SodiumPublicKey\ rejects a 16-byte private key with 'Invalid private key. Expected 32 bytes but got 16.' Similarly, \ConvertFrom-SodiumSealedBox\ rejects sealed boxes shorter than 48 bytes (the crypto_box_seal overhead).
Changed: Repeated crypto calls now incur significantly less overhead
Seven performance issues were addressed incrementally. Each was benchmarked in isolation against the previous prerelease. All measurements in median µs per 1,000-iteration trial on Windows x64.
| Scenario | Baseline | Final | Δ |
|---|---|---|---|
| New-SodiumKeyPair | 73.6 µs | 49.1 µs | ↓33% |
| New-SodiumKeyPair -Seed | 94.9 µs | 48.8 µs | ↓49% |
| Get-SodiumPublicKey | 66.1 µs | 46.7 µs | ↓29% |
| ConvertTo-SodiumSealedBox | 135.8 µs | 105.4 µs | ↓22% |
| ConvertFrom-SodiumSealedBox | 196.3 µs | 109.0 µs | ↓44% |
| Cold start (import + one key pair) | 287 ms | 279 ms | ↓3% |
Largest contributors: Base64 conversions moved to C# (↓17 to ↓42%), inlining crypto_scalarmult_base in sealed-box open (↓24%), and initializing libsodium at module import (↓6 to ↓14%).
Changed: Runtime loading behavior is now more deterministic across platforms
Runtime selection resolves from process architecture across Windows, Linux, and macOS; Windows support validation aligns with the active process architecture for more predictable module startup on mixed-architecture systems.
Implementation
- Added managed validation wrappers in PSModule/Sodium/Sodium.cs with buffer size checks before unmanaged execution.
- Migrated all DllImport bindings to LibraryImport source generators for compile-time marshalling.
- Added base64-centric C# helpers (SealBase64, OpenSealBase64, DerivePublicKeyBase64, GenerateKeyPairBase64).
- Cached crypto_box size constants as static readonly fields; fixed seed validation to use SeedBytes instead of SecretKeyBytes.
- Added Initialize-Sodium at module load to call sodium_init once.
- Unwrap MethodInvocationException to surface raw error messages to callers.
- Updated Assert-VisualCRedistributableInstalled to validate architecture-specific runtime.
- Updated PSModule/build.ps1 to fail fast on per-runtime publish failures.
- Added regression coverage for short sealed-box payloads and wrong-length private keys.
- Built and tested against .NET 8.0 LTS with System.Management.Automation 7.4.7 for broad compatibility.
v2.2.2
What's Changed
Other Changes
- 🩹 [Patch]: Add support for Linux ARM64 architecture by @Copilot in #35
New Contributors
- @Copilot made their first contribution in #35
Full Changelog: v2.2.1...v2.2.2
v2.2.1
What's Changed
Other Changes
- Bump actions/checkout from 4 to 5 by Dependabot (@dependabot)[bot] in #33
Full Changelog: v2.2.0...v2.2.1
v2.2.0
What's Changed
Other Changes
- 🚀 [Feature]: Add support to run
ConvertFrom-SodiumSealedBoxwithout a public key by Marius Storhaug (@MariusStorhaug) in #30
Full Changelog: v2.1.6...v2.2.0
v2.1.6
What's Changed
Other Changes
- 🩹 [Patch]: Move
mkdocs.ymlto.githubby Marius Storhaug (@MariusStorhaug) in #29
Full Changelog: v2.1.5...v2.1.6
v2.1.5
What's Changed
Other Changes
- 🩹 [Patch]: Update Dependabot configuration to specify package manifest directory for NuGet by Marius Storhaug (@MariusStorhaug) in #27
Full Changelog: v2.1.4...v2.1.5
v2.1.4
What's Changed
Other Changes
- 🩹 [Patch]: Update linter and git configurations and license year by Marius Storhaug (@MariusStorhaug) in #25
Full Changelog: v2.1.3...v2.1.4
v2.1.3
What's Changed
Other Changes
- Bump PSModule/Process-PSModule from 3 to 4 by Dependabot (@dependabot) in #26
New Contributors
- Dependabot (@dependabot) made their first contribution in #26
Full Changelog: v2.1.2...v2.1.3
v2.1.2
What's Changed
Other Changes
- 🩹 [Patch]: Support pipeline input on
ConvertTo-andConvertFrom-SodiumSealedBoxandNew-SodiumKeyPairby Marius Storhaug (@MariusStorhaug) in #24
Full Changelog: v2.1.1...v2.1.2