From 747b509a0cc155617fcca785540042585f6ec4fd Mon Sep 17 00:00:00 2001 From: Gerrit Date: Wed, 12 Jul 2023 17:38:55 +0200 Subject: [PATCH] Add certificate to sign files --- .github/workflows/build.yml | 6 +++++- .gitignore | 1 - codeSigningCert.pfx | Bin 0 -> 8236 bytes create_msi.ps1 | 4 ++-- sign_files.ps1 | 26 ++++++++++++++++++++++++++ sign_setup.ps1 | 16 ++++++++++++++++ 6 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 codeSigningCert.pfx create mode 100644 sign_files.ps1 create mode 100644 sign_setup.ps1 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f576cfa..4dcf3c0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,6 +13,7 @@ jobs: env: solution: AmagnoVirtualPrinter.sln configuration: Release + certificatepassword: ${{ secrets.CERTIFICATEPASSWORD }} steps: - name: Checkout uses: actions/checkout@v3 @@ -24,8 +25,11 @@ jobs: run: msbuild $env:solution /m /t:Restore /p:Configuration=$env:configuration - name: Build solution run: msbuild $env:solution /m /t:Rebuild /p:Configuration=$env:configuration - - name: Create msi from PowerShell Script + - name: Create msi with PowerShell Script run: pwsh -command ".\$GITHUB_WORKSPACE\create_msi.ps1" + - name: Sign msi with PowerShell Script + shell: powershell + run: .\$GITHUB_WORKSPACE\sign_files.ps1 -Path .\$GITHUB_WORKSPACE\Files -CertPath .\$GITHUB_WORKSPACE\codeSigningCert.pfx -CertPwd $env:SUPER_SECRET - name: Upload files artifact uses: actions/upload-artifact@v3 with: diff --git a/.gitignore b/.gitignore index 655d1e5..c20e88e 100644 --- a/.gitignore +++ b/.gitignore @@ -236,7 +236,6 @@ ClientBin/ *.dbmdl *.dbproj.schemaview *.jfm -*.pfx *.publishsettings orleans.codegen.cs diff --git a/codeSigningCert.pfx b/codeSigningCert.pfx new file mode 100644 index 0000000000000000000000000000000000000000..9e96a73dba5b2db02b7206010aa3b867e869e431 GIT binary patch literal 8236 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 literal 0 HcmV?d00001 diff --git a/create_msi.ps1 b/create_msi.ps1 index d56405d..be6963c 100644 --- a/create_msi.ps1 +++ b/create_msi.ps1 @@ -1,5 +1,5 @@ Set-Location $PSScriptRoot -$args = "/MSBUILD:$PSScriptRoot\Installer\AmagnoVirtualPrinter.WixSharpInstaller", "/p:$PSScriptRoot" +$arguments = "/MSBUILD:$PSScriptRoot\Installer\AmagnoVirtualPrinter.WixSharpInstaller", "/p:$PSScriptRoot" Remove-Item -Path "$PSScriptRoot\Files\*" -Filter '*.pdb' -Force -Start-Process -FilePath "$PSScriptRoot\Files\AmagnoPrinterInstaller.exe" -ArgumentList $args -wait \ No newline at end of file +Start-Process -FilePath "$PSScriptRoot\Files\AmagnoPrinterInstaller.exe" -ArgumentList $arguments -wait \ No newline at end of file diff --git a/sign_files.ps1 b/sign_files.ps1 new file mode 100644 index 0000000..762ce33 --- /dev/null +++ b/sign_files.ps1 @@ -0,0 +1,26 @@ +[CmdletBinding()] +param ( + [Parameter(Mandatory=$true)] + [String] + $path, + [Parameter(Mandatory=$true)] + [String] + $certPath, + [Parameter(Mandatory=$true)] + [String] + $certPwd +) + +$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($certPath, $certPwd) + +$files = Get-ChildItem -Path $path | + Where-Object { $_.Extension -in '.dll', '.exe' } | + Select-Object -ExpandProperty FullName | + Get-AuthenticodeSignature | + Where-Object { $_.Status -eq "NotSigned" } | + Select-Object -ExpandProperty Path + +foreach($file in $files){ + Write-Host "Signing... $file" + Set-AuthenticodeSignature $file -Certificate $cert -TimestampServer "http://timestamp.digicert.com" +} diff --git a/sign_setup.ps1 b/sign_setup.ps1 new file mode 100644 index 0000000..e229278 --- /dev/null +++ b/sign_setup.ps1 @@ -0,0 +1,16 @@ +[CmdletBinding()] +param ( + [Parameter(Mandatory=$true)] + [String] + $certPath, + [Parameter(Mandatory=$true)] + [String] + $certPwd +) + +$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($certPath, $certPwd) + +$file = "AmagnoPrinterInstaller.msi" + +Write-Host "Signing... $file" +Set-AuthenticodeSignature $file -Certificate $cert -TimestampServer "http://timestamp.digicert.com"