Skip to content

Releases: PSModule/Sodium

v2.2.4

17 May 18:05
59636c0

Choose a tag to compare

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.19 for ObjectPool, Windows Compatibility, and System.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)

    7.4.7

    [7.4.7]

    Build and Packaging Improvements

    Update .NET SDK to 8.0.405

    • [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 AssemblyVersion not 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)

    Documentation and Help Content

    • Update notices file (#​24810)

    ... (truncated)

    7.4.6

    7.4.6 - 2024-10-22

    Build and Packaging Improvements

    Bump .NET SDK to 8.0.403

    • 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 demos directory (#​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 BaseUrl to buildinfo json 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 APIScan authentication (#​24243)
    • Check Create and Submit in vPack build by default (#​24181)
    • Capture environment better (#​24148)
    • Refactor Nuget package source creation to use New-NugetPackageSource function (#​24104)
    • Make Microsoft feeds the default (#​24426)
    • Bump to .NET 8.0.403 and update dependencies (#​24405)

    SHA256 Hashes of the release artifacts

    • hashes.sha256
      • A0589775F0911F061946B00E7C0A6C386F4D1F30AABB1AAD2D3CDA49D21F9D95
    • powershell_7.4.6-1.deb_amd64.deb
      ... (truncated)

    7.4.5

    [7.4.5] - 2024-08-20

    General Cmdlet Updates and Fixes

    • Fix WebCmdlets when -Body is specified but ContentType is not (#​24145)

    Tests

    • Rewrite the mac syslog tests to make them less flaky (#​24152)

    Build and Packaging Improvements

    Bump .NET SDK to 8.0.400

    • Add feature flags for removing network isolation (Internal 32126)
Read more

v2.2.3

17 May 14:13
44fed7f

Choose a tag to compare

🩹 [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

29 Aug 10:18
85329f8

Choose a tag to compare

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

20 Aug 10:36
7d1f1b9

Choose a tag to compare

What's Changed

Other Changes

Full Changelog: v2.2.0...v2.2.1

v2.2.0

18 Apr 14:21
ffe7f9c

Choose a tag to compare

What's Changed

Other Changes

Full Changelog: v2.1.6...v2.2.0

v2.1.6

13 Mar 22:37
9032f46

Choose a tag to compare

What's Changed

Other Changes

Full Changelog: v2.1.5...v2.1.6

v2.1.5

10 Mar 21:11
be27bee

Choose a tag to compare

What's Changed

Other Changes

Full Changelog: v2.1.4...v2.1.5

v2.1.4

10 Mar 20:57
d43f9d8

Choose a tag to compare

What's Changed

Other Changes

Full Changelog: v2.1.3...v2.1.4

v2.1.3

10 Mar 20:38
84ddfe2

Choose a tag to compare

What's Changed

Other Changes

New Contributors

Full Changelog: v2.1.2...v2.1.3

v2.1.2

09 Feb 12:26
20316fc

Choose a tag to compare

What's Changed

Other Changes

Full Changelog: v2.1.1...v2.1.2