]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Restore MSIX signing and ensure expired certificates are not selected (GH-30649)
authorSteve Dower <steve.dower@python.org>
Mon, 17 Jan 2022 20:22:52 +0000 (20:22 +0000)
committerGitHub <noreply@github.com>
Mon, 17 Jan 2022 20:22:52 +0000 (20:22 +0000)
Reverts the change in d6c6e6b and applies a better fix.

.azure-pipelines/windows-release/stage-pack-msix.yml
.azure-pipelines/windows-release/stage-sign.yml

index 6f3e7a5e5d593cb7a0b83b8ab46c927767f79dfd..9f7919ee64706b4ccdb4baae73b08c56152254ee 100644 (file)
@@ -96,9 +96,7 @@ jobs:
   displayName: Sign side-loadable MSIX bundles
   dependsOn:
   - Pack_MSIX
-  # Our current certificate does not support MSIX signing, so we unconditionally skip this step
-  #condition: and(succeeded(), variables['SigningCertificate'])
-  condition: false
+  condition: and(succeeded(), variables['SigningCertificate'])
 
   pool:
     name: 'Windows Release'
@@ -123,6 +121,10 @@ jobs:
       downloadPath: $(Build.BinariesDirectory)
 
   # MSIX must be signed and timestamped simultaneously
+  #
+  # Getting "Error: SignerSign() failed." (-2147024885/0x8007000b)"?
+  # It may be that the certificate info collected in stage-sign.yml is wrong. Check that
+  # you do not have multiple matches for the certificate name you have specified.
   - powershell: |
       $failed = $true
       foreach ($retry in 1..3) {
index c21e1c9f2b0f9be222a405a9875adb6364ef1e94..d43e077186c42c7b528ec0111fff04093b49fd9e 100644 (file)
@@ -91,7 +91,7 @@ jobs:
   - powershell: |
       $m = 'CN=$(SigningCertificate)'
       $c = ((gci Cert:\CurrentUser\My), (gci Cert:\LocalMachine\My)) | %{ $_ } | `
-         ?{ $_.Subject -match $m } | `
+         ?{ $_.Subject -match $m -and $_.NotBefore -lt (Get-Date) -and $_.NotAfter -gt (Get-Date) } | `
          select -First 1
       if (-not $c) {
           Write-Host "Failed to find certificate for $(SigningCertificate)"