Skip to content

Commit 087f6bd

Browse files
committed
Added script that prints the public key of the certificate that was used to sign the NuGet packages.
1 parent 6e9e243 commit 087f6bd

File tree

4 files changed

+42
-1
lines changed

4 files changed

+42
-1
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
@echo off
2+
3+
pip3 install asn1crypto
4+
python3 print-public-key.py
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
from asn1crypto import cms as asn1_cms
2+
import base64
3+
import zipfile
4+
import os
5+
6+
COMMON_NAME = 'ImageMagick Studio LLC'
7+
8+
package = [file for file in os.listdir('./packages') if file.endswith('.nupkg')][0]
9+
10+
with zipfile.ZipFile(package, 'r') as zip_ref:
11+
signature_data = zip_ref.read('.signature.p7s')
12+
13+
certificates = asn1_cms.ContentInfo.load(signature_data)['content']['certificates']
14+
15+
for i, cert in enumerate(certificates):
16+
if cert.chosen['tbs_certificate']['subject'].native['common_name'] == COMMON_NAME:
17+
cert_b64 = base64.b64encode(cert.dump()).decode()
18+
print(f"-----BEGIN CERTIFICATE-----")
19+
print('\n'.join([cert_b64[j:j+64] for j in range(0, len(cert_b64), 64)]))
20+
print(f"-----END CERTIFICATE-----")

.github/workflows/main.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -401,3 +401,11 @@ jobs:
401401
--verbosity information `
402402
*.nupkg
403403
working-directory: packages
404+
405+
- name: Checkout
406+
uses: actions/checkout@v6
407+
with:
408+
persist-credentials: false
409+
410+
- name: Print cerificate
411+
run: .github\build\windows\print.certificate.cmd

Magick.NET.sln

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "publish", "publish", "{6604
1919
publish\publish.ps1 = publish\publish.ps1
2020
publish\publish.shared.ps1 = publish\publish.shared.ps1
2121
publish\push.cmd = publish\push.cmd
22-
publish\set.version.ps1 = publish\set.version.ps1
2322
publish\update.version.cmd = publish\update.version.cmd
2423
publish\update.version.ps1 = publish\update.version.ps1
2524
EndProjectSection
@@ -228,6 +227,14 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Extensions", "Extensions",
228227
EndProject
229228
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Extensions", "Extensions", "{4C06E01A-0835-40E5-A9A2-49F002C0C12B}"
230229
EndProject
230+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}"
231+
EndProject
232+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "windows", "windows", "{D4F81290-2DFD-46AD-ACB7-12FF0DEF0A03}"
233+
ProjectSection(SolutionItems) = preProject
234+
.github\build\windows\print-public-key.py = .github\build\windows\print-public-key.py
235+
.github\build\windows\print-public-key.cmd = .github\build\windows\print-public-key.cmd
236+
EndProjectSection
237+
EndProject
231238
Global
232239
GlobalSection(SolutionConfigurationPlatforms) = preSolution
233240
Debug|Any CPU = Debug|Any CPU
@@ -1839,6 +1846,8 @@ Global
18391846
{5B729307-7C82-4CDB-830F-9383F0FD4B76} = {4C06E01A-0835-40E5-A9A2-49F002C0C12B}
18401847
{606D8D7D-2AD0-495A-B35E-C90B713CF2AD} = {61345F8D-8813-4CA8-B037-2DE221FFB5D2}
18411848
{4C06E01A-0835-40E5-A9A2-49F002C0C12B} = {CADB374F-AC1D-4456-940E-2317DF1372C2}
1849+
{02EA681E-C7D8-13C7-8484-4AC65E1B71E8} = {4D648A8A-59E2-45A4-BEFD-44602709E044}
1850+
{D4F81290-2DFD-46AD-ACB7-12FF0DEF0A03} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
18421851
EndGlobalSection
18431852
GlobalSection(ExtensibilityGlobals) = postSolution
18441853
SolutionGuid = {4F6887AA-E540-48B3-BDC0-068B342ABEBE}

0 commit comments

Comments
 (0)