Skip to content

Dev to main#31

Merged
Zacgoose merged 6 commits into
mainfrom
dev
Jul 2, 2026
Merged

Dev to main#31
Zacgoose merged 6 commits into
mainfrom
dev

Conversation

@JohnDuprey

Copy link
Copy Markdown
Collaborator

No description provided.

JohnDuprey and others added 6 commits June 11, 2026 15:47
Get-RsaPublicKeyInfo currently compiles its embedded SevenTiny C# at
runtime via `Add-Type -Language CSharp`. That works fine under stock
pwsh, but in any host that embeds PowerShell as a library (Azure
Functions custom-handler images, embedded SDK hosts, etc.) `$PSHOME`
resolves to the host directory and Roslyn can't find its reference
assemblies — Add-Type throws DirectoryNotFoundException and every
Read-DkimRecord call silently returns empty records.

This commit extracts the C# into Source/SevenTinyRsa/SevenTinyRsa.csproj
and bundles the precompiled SevenTinyRsa.dll alongside the manifest.
DNSHealth.psd1's new RequiredAssemblies entry preloads the type before
the .psm1 runs; Get-RsaPublicKeyInfo's existing
`if (!('SevenTiny.Bantina.Security.RSACommon' -as [type]))` guard then
short-circuits, so the runtime Add-Type fallback stays in place
untouched for any host that doesn't ship the DLL.

Behaviour on a normal pwsh import is unchanged — the type just resolves
to the bundled assembly instead of going through the compile step.
Read-DkimRecord starts working on embedded-PS hosts where it previously
failed silently.

Build pipeline: dotnet build Source/SevenTinyRsa/SevenTinyRsa.csproj
-c Release -o DNSHealth/. build.psd1's CopyDirectories now includes
SevenTinyRsa.dll so Build-Module carries it into Output/DNSHealth/.
@JohnDuprey JohnDuprey requested a review from a team July 2, 2026 03:22
@Zacgoose Zacgoose merged commit 67b7fb2 into main Jul 2, 2026
5 checks passed
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.

2 participants