Skip to content

Commit 46fda6b

Browse files
committed
Fix for netstandard2.0, add tests
1 parent b5ad0c2 commit 46fda6b

File tree

70 files changed

+1033
-6035
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+1033
-6035
lines changed

eng/Subsets.props

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,8 @@
518518
<TestProjectToBuild Include="$(InstallerProjectRoot)tests\AppHost.Bundle.Tests\AppHost.Bundle.Tests.csproj" />
519519
<TestProjectToBuild Include="$(InstallerProjectRoot)tests\HostActivation.Tests\HostActivation.Tests.csproj" />
520520
<TestProjectToBuild Include="$(InstallerProjectRoot)tests\Microsoft.NET.HostModel.Tests\Microsoft.NET.HostModel.Tests.csproj" />
521+
<TestProjectToBuild Include="$(InstallerProjectRoot)tests\Melanzana.MachO.Tests\Melanzana.MachO.Tests.csproj" />
522+
<TestProjectToBuild Include="$(InstallerProjectRoot)tests\Melanzana.CodeSign.Tests\Melanzana.CodeSign.Tests.csproj" />
521523
<ProjectToBuild Include="@(TestProjectToBuild)" BuildInParallel="true" Test="true" Category="host" />
522524
</ItemGroup>
523525

eng/Versions.props

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,12 +119,14 @@
119119
<SystemDataSqlClientVersion>4.8.6</SystemDataSqlClientVersion>
120120
<SystemDrawingCommonVersion>8.0.0</SystemDrawingCommonVersion>
121121
<SystemIOFileSystemAccessControlVersion>5.0.0</SystemIOFileSystemAccessControlVersion>
122+
<SystemFormatsAsn1Version>10.0.0-alpha.1.24454.1</SystemFormatsAsn1Version>
122123
<SystemMemoryVersion>4.5.5</SystemMemoryVersion>
123124
<SystemReflectionMetadataVersion>9.0.0-rc.1.24410.5</SystemReflectionMetadataVersion>
124125
<SystemReflectionMetadataLoadContextVersion>9.0.0-rc.1.24410.5</SystemReflectionMetadataLoadContextVersion>
125126
<SystemSecurityAccessControlVersion>6.0.0</SystemSecurityAccessControlVersion>
126127
<SystemSecurityCryptographyCngVersion>5.0.0</SystemSecurityCryptographyCngVersion>
127128
<SystemSecurityCryptographyOpenSslVersion>5.0.0</SystemSecurityCryptographyOpenSslVersion>
129+
<SystemSecurityCryptographyPkcsVersion>5.0.0</SystemSecurityCryptographyPkcsVersion>
128130
<SystemSecurityPrincipalWindowsVersion>5.0.0</SystemSecurityPrincipalWindowsVersion>
129131
<SystemSecurityPermissionsVersion>7.0.0</SystemSecurityPermissionsVersion>
130132
<SystemTextJsonVersion>9.0.0-rc.1.24410.5</SystemTextJsonVersion>

src/installer/Microsoft.DotNet.CoreSetup.sln

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,22 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppHost.Bundle.Tests", "tes
2121
EndProject
2222
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.NET.HostModel.Tests", "tests\Microsoft.NET.HostModel.Tests\Microsoft.NET.HostModel.Tests.csproj", "{9212E3B2-DFCB-4A24-99AA-ED5F9ACAA87F}"
2323
EndProject
24+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "managed", "managed", "{9D78613B-C4A1-43C6-8BF1-6F91AA1627B6}"
25+
EndProject
26+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Melanzana.Streams", "managed\Melanzana.Streams\Melanzana.Streams.csproj", "{4980EA65-C461-4041-9FE9-2613F76A159C}"
27+
EndProject
28+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Melanzana.BinaryFormat.Generator", "managed\Melanzana.BinaryFormat.Generator\Melanzana.BinaryFormat.Generator.csproj", "{51193AE2-50BE-4899-9068-AA8E9C2A9C7D}"
29+
EndProject
30+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Melanzana.CodeSign", "managed\Melanzana.CodeSign\Melanzana.CodeSign.csproj", "{5ED844D4-DDEA-4801-B274-21CEC28C9C83}"
31+
EndProject
32+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Melanzana.MachO", "managed\Melanzana.MachO\Melanzana.MachO.csproj", "{A309152C-8D24-4631-A04F-C3D3C3370320}"
33+
EndProject
34+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{DDD740C6-C716-45A7-99C5-4F8B2F2D77A5}"
35+
EndProject
36+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Melanzana.CodeSign.Tests", "tests\Melanzana.CodeSign.Tests\Melanzana.CodeSign.Tests.csproj", "{C0790B96-7FB8-4B9F-B8D7-AD1C9F585A1B}"
37+
EndProject
38+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Melanzana.MachO.Tests", "tests\Melanzana.MachO.Tests\Melanzana.MachO.Tests.csproj", "{4407B895-F3E2-40BD-9B9B-9CB3C98B860F}"
39+
EndProject
2440
Global
2541
GlobalSection(SolutionConfigurationPlatforms) = preSolution
2642
Debug|Any CPU = Debug|Any CPU
@@ -129,11 +145,115 @@ Global
129145
{9212E3B2-DFCB-4A24-99AA-ED5F9ACAA87F}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
130146
{9212E3B2-DFCB-4A24-99AA-ED5F9ACAA87F}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
131147
{9212E3B2-DFCB-4A24-99AA-ED5F9ACAA87F}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
148+
{4980EA65-C461-4041-9FE9-2613F76A159C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
149+
{4980EA65-C461-4041-9FE9-2613F76A159C}.Debug|Any CPU.Build.0 = Debug|Any CPU
150+
{4980EA65-C461-4041-9FE9-2613F76A159C}.Debug|x64.ActiveCfg = Debug|Any CPU
151+
{4980EA65-C461-4041-9FE9-2613F76A159C}.Debug|x64.Build.0 = Debug|Any CPU
152+
{4980EA65-C461-4041-9FE9-2613F76A159C}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
153+
{4980EA65-C461-4041-9FE9-2613F76A159C}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
154+
{4980EA65-C461-4041-9FE9-2613F76A159C}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
155+
{4980EA65-C461-4041-9FE9-2613F76A159C}.MinSizeRel|x64.Build.0 = Debug|Any CPU
156+
{4980EA65-C461-4041-9FE9-2613F76A159C}.Release|Any CPU.ActiveCfg = Release|Any CPU
157+
{4980EA65-C461-4041-9FE9-2613F76A159C}.Release|Any CPU.Build.0 = Release|Any CPU
158+
{4980EA65-C461-4041-9FE9-2613F76A159C}.Release|x64.ActiveCfg = Release|Any CPU
159+
{4980EA65-C461-4041-9FE9-2613F76A159C}.Release|x64.Build.0 = Release|Any CPU
160+
{4980EA65-C461-4041-9FE9-2613F76A159C}.RelWithDebInfo|Any CPU.ActiveCfg = Debug|Any CPU
161+
{4980EA65-C461-4041-9FE9-2613F76A159C}.RelWithDebInfo|Any CPU.Build.0 = Debug|Any CPU
162+
{4980EA65-C461-4041-9FE9-2613F76A159C}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
163+
{4980EA65-C461-4041-9FE9-2613F76A159C}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
164+
{51193AE2-50BE-4899-9068-AA8E9C2A9C7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
165+
{51193AE2-50BE-4899-9068-AA8E9C2A9C7D}.Debug|Any CPU.Build.0 = Debug|Any CPU
166+
{51193AE2-50BE-4899-9068-AA8E9C2A9C7D}.Debug|x64.ActiveCfg = Debug|Any CPU
167+
{51193AE2-50BE-4899-9068-AA8E9C2A9C7D}.Debug|x64.Build.0 = Debug|Any CPU
168+
{51193AE2-50BE-4899-9068-AA8E9C2A9C7D}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
169+
{51193AE2-50BE-4899-9068-AA8E9C2A9C7D}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
170+
{51193AE2-50BE-4899-9068-AA8E9C2A9C7D}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
171+
{51193AE2-50BE-4899-9068-AA8E9C2A9C7D}.MinSizeRel|x64.Build.0 = Debug|Any CPU
172+
{51193AE2-50BE-4899-9068-AA8E9C2A9C7D}.Release|Any CPU.ActiveCfg = Release|Any CPU
173+
{51193AE2-50BE-4899-9068-AA8E9C2A9C7D}.Release|Any CPU.Build.0 = Release|Any CPU
174+
{51193AE2-50BE-4899-9068-AA8E9C2A9C7D}.Release|x64.ActiveCfg = Release|Any CPU
175+
{51193AE2-50BE-4899-9068-AA8E9C2A9C7D}.Release|x64.Build.0 = Release|Any CPU
176+
{51193AE2-50BE-4899-9068-AA8E9C2A9C7D}.RelWithDebInfo|Any CPU.ActiveCfg = Debug|Any CPU
177+
{51193AE2-50BE-4899-9068-AA8E9C2A9C7D}.RelWithDebInfo|Any CPU.Build.0 = Debug|Any CPU
178+
{51193AE2-50BE-4899-9068-AA8E9C2A9C7D}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
179+
{51193AE2-50BE-4899-9068-AA8E9C2A9C7D}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
180+
{5ED844D4-DDEA-4801-B274-21CEC28C9C83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
181+
{5ED844D4-DDEA-4801-B274-21CEC28C9C83}.Debug|Any CPU.Build.0 = Debug|Any CPU
182+
{5ED844D4-DDEA-4801-B274-21CEC28C9C83}.Debug|x64.ActiveCfg = Debug|Any CPU
183+
{5ED844D4-DDEA-4801-B274-21CEC28C9C83}.Debug|x64.Build.0 = Debug|Any CPU
184+
{5ED844D4-DDEA-4801-B274-21CEC28C9C83}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
185+
{5ED844D4-DDEA-4801-B274-21CEC28C9C83}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
186+
{5ED844D4-DDEA-4801-B274-21CEC28C9C83}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
187+
{5ED844D4-DDEA-4801-B274-21CEC28C9C83}.MinSizeRel|x64.Build.0 = Debug|Any CPU
188+
{5ED844D4-DDEA-4801-B274-21CEC28C9C83}.Release|Any CPU.ActiveCfg = Release|Any CPU
189+
{5ED844D4-DDEA-4801-B274-21CEC28C9C83}.Release|Any CPU.Build.0 = Release|Any CPU
190+
{5ED844D4-DDEA-4801-B274-21CEC28C9C83}.Release|x64.ActiveCfg = Release|Any CPU
191+
{5ED844D4-DDEA-4801-B274-21CEC28C9C83}.Release|x64.Build.0 = Release|Any CPU
192+
{5ED844D4-DDEA-4801-B274-21CEC28C9C83}.RelWithDebInfo|Any CPU.ActiveCfg = Debug|Any CPU
193+
{5ED844D4-DDEA-4801-B274-21CEC28C9C83}.RelWithDebInfo|Any CPU.Build.0 = Debug|Any CPU
194+
{5ED844D4-DDEA-4801-B274-21CEC28C9C83}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
195+
{5ED844D4-DDEA-4801-B274-21CEC28C9C83}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
196+
{A309152C-8D24-4631-A04F-C3D3C3370320}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
197+
{A309152C-8D24-4631-A04F-C3D3C3370320}.Debug|Any CPU.Build.0 = Debug|Any CPU
198+
{A309152C-8D24-4631-A04F-C3D3C3370320}.Debug|x64.ActiveCfg = Debug|Any CPU
199+
{A309152C-8D24-4631-A04F-C3D3C3370320}.Debug|x64.Build.0 = Debug|Any CPU
200+
{A309152C-8D24-4631-A04F-C3D3C3370320}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
201+
{A309152C-8D24-4631-A04F-C3D3C3370320}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
202+
{A309152C-8D24-4631-A04F-C3D3C3370320}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
203+
{A309152C-8D24-4631-A04F-C3D3C3370320}.MinSizeRel|x64.Build.0 = Debug|Any CPU
204+
{A309152C-8D24-4631-A04F-C3D3C3370320}.Release|Any CPU.ActiveCfg = Release|Any CPU
205+
{A309152C-8D24-4631-A04F-C3D3C3370320}.Release|Any CPU.Build.0 = Release|Any CPU
206+
{A309152C-8D24-4631-A04F-C3D3C3370320}.Release|x64.ActiveCfg = Release|Any CPU
207+
{A309152C-8D24-4631-A04F-C3D3C3370320}.Release|x64.Build.0 = Release|Any CPU
208+
{A309152C-8D24-4631-A04F-C3D3C3370320}.RelWithDebInfo|Any CPU.ActiveCfg = Debug|Any CPU
209+
{A309152C-8D24-4631-A04F-C3D3C3370320}.RelWithDebInfo|Any CPU.Build.0 = Debug|Any CPU
210+
{A309152C-8D24-4631-A04F-C3D3C3370320}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
211+
{A309152C-8D24-4631-A04F-C3D3C3370320}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
212+
{C0790B96-7FB8-4B9F-B8D7-AD1C9F585A1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
213+
{C0790B96-7FB8-4B9F-B8D7-AD1C9F585A1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
214+
{C0790B96-7FB8-4B9F-B8D7-AD1C9F585A1B}.Debug|x64.ActiveCfg = Debug|Any CPU
215+
{C0790B96-7FB8-4B9F-B8D7-AD1C9F585A1B}.Debug|x64.Build.0 = Debug|Any CPU
216+
{C0790B96-7FB8-4B9F-B8D7-AD1C9F585A1B}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
217+
{C0790B96-7FB8-4B9F-B8D7-AD1C9F585A1B}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
218+
{C0790B96-7FB8-4B9F-B8D7-AD1C9F585A1B}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
219+
{C0790B96-7FB8-4B9F-B8D7-AD1C9F585A1B}.MinSizeRel|x64.Build.0 = Debug|Any CPU
220+
{C0790B96-7FB8-4B9F-B8D7-AD1C9F585A1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
221+
{C0790B96-7FB8-4B9F-B8D7-AD1C9F585A1B}.Release|Any CPU.Build.0 = Release|Any CPU
222+
{C0790B96-7FB8-4B9F-B8D7-AD1C9F585A1B}.Release|x64.ActiveCfg = Release|Any CPU
223+
{C0790B96-7FB8-4B9F-B8D7-AD1C9F585A1B}.Release|x64.Build.0 = Release|Any CPU
224+
{C0790B96-7FB8-4B9F-B8D7-AD1C9F585A1B}.RelWithDebInfo|Any CPU.ActiveCfg = Debug|Any CPU
225+
{C0790B96-7FB8-4B9F-B8D7-AD1C9F585A1B}.RelWithDebInfo|Any CPU.Build.0 = Debug|Any CPU
226+
{C0790B96-7FB8-4B9F-B8D7-AD1C9F585A1B}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
227+
{C0790B96-7FB8-4B9F-B8D7-AD1C9F585A1B}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
228+
{4407B895-F3E2-40BD-9B9B-9CB3C98B860F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
229+
{4407B895-F3E2-40BD-9B9B-9CB3C98B860F}.Debug|Any CPU.Build.0 = Debug|Any CPU
230+
{4407B895-F3E2-40BD-9B9B-9CB3C98B860F}.Debug|x64.ActiveCfg = Debug|Any CPU
231+
{4407B895-F3E2-40BD-9B9B-9CB3C98B860F}.Debug|x64.Build.0 = Debug|Any CPU
232+
{4407B895-F3E2-40BD-9B9B-9CB3C98B860F}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
233+
{4407B895-F3E2-40BD-9B9B-9CB3C98B860F}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
234+
{4407B895-F3E2-40BD-9B9B-9CB3C98B860F}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
235+
{4407B895-F3E2-40BD-9B9B-9CB3C98B860F}.MinSizeRel|x64.Build.0 = Debug|Any CPU
236+
{4407B895-F3E2-40BD-9B9B-9CB3C98B860F}.Release|Any CPU.ActiveCfg = Release|Any CPU
237+
{4407B895-F3E2-40BD-9B9B-9CB3C98B860F}.Release|Any CPU.Build.0 = Release|Any CPU
238+
{4407B895-F3E2-40BD-9B9B-9CB3C98B860F}.Release|x64.ActiveCfg = Release|Any CPU
239+
{4407B895-F3E2-40BD-9B9B-9CB3C98B860F}.Release|x64.Build.0 = Release|Any CPU
240+
{4407B895-F3E2-40BD-9B9B-9CB3C98B860F}.RelWithDebInfo|Any CPU.ActiveCfg = Debug|Any CPU
241+
{4407B895-F3E2-40BD-9B9B-9CB3C98B860F}.RelWithDebInfo|Any CPU.Build.0 = Debug|Any CPU
242+
{4407B895-F3E2-40BD-9B9B-9CB3C98B860F}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
243+
{4407B895-F3E2-40BD-9B9B-9CB3C98B860F}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
132244
EndGlobalSection
133245
GlobalSection(SolutionProperties) = preSolution
134246
HideSolutionNode = FALSE
135247
EndGlobalSection
136248
GlobalSection(ExtensibilityGlobals) = postSolution
137249
SolutionGuid = {28B9726D-802B-478D-AF7A-B9243B9E180B}
138250
EndGlobalSection
251+
GlobalSection(NestedProjects) = preSolution
252+
{4980EA65-C461-4041-9FE9-2613F76A159C} = {9D78613B-C4A1-43C6-8BF1-6F91AA1627B6}
253+
{51193AE2-50BE-4899-9068-AA8E9C2A9C7D} = {9D78613B-C4A1-43C6-8BF1-6F91AA1627B6}
254+
{5ED844D4-DDEA-4801-B274-21CEC28C9C83} = {9D78613B-C4A1-43C6-8BF1-6F91AA1627B6}
255+
{A309152C-8D24-4631-A04F-C3D3C3370320} = {9D78613B-C4A1-43C6-8BF1-6F91AA1627B6}
256+
{C0790B96-7FB8-4B9F-B8D7-AD1C9F585A1B} = {DDD740C6-C716-45A7-99C5-4F8B2F2D77A5}
257+
{4407B895-F3E2-40BD-9B9B-9CB3C98B860F} = {DDD740C6-C716-45A7-99C5-4F8B2F2D77A5}
258+
EndGlobalSection
139259
EndGlobal

src/installer/managed/Melanzana.BinaryFormat.Generator/Generator.cs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,10 @@ public partial class Generator : ISourceGenerator
1515
{
1616
public void Initialize(GeneratorInitializationContext context)
1717
{
18-
#if DEBUG
19-
//if (!Debugger.IsAttached)
20-
//{
21-
// Debugger.Launch();
22-
//}
23-
#endif
24-
2518
context.RegisterForPostInitialization((pi) => pi.AddSource("BinaryFormat.Attribute.cs", AttributeSource));
2619
context.RegisterForSyntaxNotifications(() => new MySyntaxReceiver());
2720
}
28-
21+
2922
public void Execute(GeneratorExecutionContext context)
3023
{
3124
MySyntaxReceiver syntaxReceiver = (MySyntaxReceiver)context.SyntaxContextReceiver;

src/installer/managed/Melanzana.BinaryFormat.Generator/Melanzana.BinaryFormat.Generator.csproj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@
33
<TargetFramework>netstandard2.0</TargetFramework>
44
<LangVersion>latest</LangVersion>
55
<Nullable>annotations</Nullable>
6+
<NoWarn>NoWarn;IDE0073;SA1518;SA1028;SA1020;IDE0170;IDE0060;CA1822;SA1400;RS1036;CA1852</NoWarn>
67
</PropertyGroup>
78

89
<ItemGroup>
9-
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.0.0-6.final" PrivateAssets="all" />
10-
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.3" PrivateAssets="all" />
10+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="$(MicrosoftCodeAnalysisCSharpVersion)" PrivateAssets="all" />
11+
<ProjectReference Include="../plist-cil/plist-cil.csproj" />
1112
</ItemGroup>
1213
</Project>

src/installer/managed/Melanzana.CodeSign/AppleCertificateExtensions.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ private static string ReadAnyAsnString(this AsnReader tavReader)
3434
throw new CryptographicException("Invalid DER encoding");
3535
}
3636
}
37-
37+
3838
public static bool IsAppleDeveloperCertificate(this X509Certificate2 certificate)
3939
{
4040
// FIXME: We should check the certificate anchor and only allow the following OIDs in extensions:
@@ -43,7 +43,14 @@ public static bool IsAppleDeveloperCertificate(this X509Certificate2 certificate
4343
// 1.2.840.113635.100.6.1.13 (Developer ID)
4444
// 1.2.840.113635.100.6.1.7 (Distribution)
4545
// 1.2.840.113635.100.6.1.4 (iPhone Distribution)
46-
return certificate.Extensions.Any(e => e.Oid?.Value?.StartsWith("1.2.840.113635.100.6.1.") ?? false);
46+
foreach(var ext in certificate.Extensions)
47+
{
48+
if (ext.Oid?.Value?.StartsWith("1.2.840.113635.100.6.1.") == true)
49+
{
50+
return true;
51+
}
52+
}
53+
return false;
4754
}
4855

4956
public static string GetTeamId(this X509Certificate2 certificate)

src/installer/managed/Melanzana.CodeSign/Blobs/CmsWrapperBlob.cs

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,30 +5,26 @@
55
using System.Security.Cryptography.Pkcs;
66
using System.Security.Cryptography.X509Certificates;
77
using System.Text;
8+
using System.Linq;
89
using Claunia.PropertyList;
910

1011
namespace Melanzana.CodeSign.Blobs
1112
{
1213
public class CmsWrapperBlob
1314
{
14-
private readonly static string rootCertificatePath = "Melanzana.CodeSign.Certificates.RootCertificate.cer";
15-
private readonly static string g1IntermediateCertificatePath = "Melanzana.CodeSign.Certificates.IntermediateG1Certificate.cer";
16-
private readonly static string g3IntermediateCertificatePath = "Melanzana.CodeSign.Certificates.IntermediateG3Certificate.cer";
17-
1815
private static X509Certificate2 GetManifestCertificate(string name)
1916
{
2017
var memoryStream = new MemoryStream();
2118
using (var manifestStream = typeof(CmsWrapperBlob).Assembly.GetManifestResourceStream(name))
2219
{
2320
Debug.Assert(manifestStream != null);
24-
manifestStream.CopyTo(memoryStream);
21+
manifestStream!.CopyTo(memoryStream);
2522
}
2623
return new X509Certificate2(memoryStream.ToArray());
2724
}
2825

2926
public static byte[] Create(
3027
X509Certificate2? developerCertificate,
31-
AsymmetricAlgorithm? privateKey,
3228
byte[] dataToSign,
3329
HashType[] hashTypes,
3430
byte[][] cdHashes)
@@ -55,28 +51,17 @@ public static byte[] Create(
5551

5652
// Try to build full chain
5753
var chain = new X509Chain();
58-
var chainPolicy = new X509ChainPolicy { TrustMode = X509ChainTrustMode.CustomRootTrust };
59-
chainPolicy.CustomTrustStore.Add(GetManifestCertificate(rootCertificatePath));
60-
chainPolicy.CustomTrustStore.Add(GetManifestCertificate(g1IntermediateCertificatePath));
61-
chainPolicy.CustomTrustStore.Add(GetManifestCertificate(g3IntermediateCertificatePath));
62-
chain.ChainPolicy = chainPolicy;
54+
// Retry with default policy and system certificate store
55+
chain.ChainPolicy = new X509ChainPolicy();
6356
if (chain.Build(developerCertificate))
6457
{
65-
certificatesList.AddRange(chain.ChainElements.Select(e => e.Certificate).ToArray());
66-
}
67-
else
68-
{
69-
// Retry with default policy and system certificate store
70-
chain.ChainPolicy = new X509ChainPolicy();
71-
if (chain.Build(developerCertificate))
58+
foreach(var ce in chain.ChainElements)
7259
{
73-
certificatesList.AddRange(chain.ChainElements.Select(e => e.Certificate).ToArray());
60+
certificatesList.Add(ce.Certificate);
7461
}
7562
}
7663

77-
var cmsSigner = privateKey == null ?
78-
new CmsSigner(developerCertificate) :
79-
new CmsSigner(SubjectIdentifierType.IssuerAndSerialNumber, developerCertificate, privateKey);
64+
var cmsSigner = new CmsSigner(developerCertificate);
8065
cmsSigner.Certificates.AddRange(certificatesList);
8166
cmsSigner.IncludeOption = X509IncludeOption.None;
8267

src/installer/managed/Melanzana.CodeSign/Blobs/CodeDirectoryBuilder.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public long Size(CodeDirectoryVersion version)
6666

6767
long codeDirectorySize = GetFixedHeaderSize(version);
6868
codeDirectorySize += utf8Identifier.Length + 1;
69-
if (!String.IsNullOrEmpty(teamId))
69+
if (!string.IsNullOrEmpty(teamId))
7070
codeDirectorySize += utf8TeamId.Length + 1;
7171
codeDirectorySize += (specialSlotCount + codeSlotCount) * hashSize;
7272
if (version >= CodeDirectoryVersion.SupportsPreEncrypt)
@@ -103,7 +103,7 @@ public byte[] Build(Stream machOStream)
103103
baselineHeader.HashSize = hashSize;
104104
baselineHeader.HashType = HashType;
105105
baselineHeader.Platform = 0; // TODO
106-
baselineHeader.Log2PageSize = (byte)Math.Log2(pageSize);
106+
baselineHeader.Log2PageSize = (byte)MathHelpers.Log2(pageSize);
107107
baselineHeader.Reserved = 0;
108108
var scatterHeader = new CodeDirectoryScatterHeader();
109109
scatterHeader.ScatterOffset = 0;
@@ -113,7 +113,7 @@ public byte[] Build(Stream machOStream)
113113
codeLimit64Header.Reserved = 0;
114114
codeLimit64Header.CodeLimit64 = execLength >= uint.MaxValue ? execLength : 0;
115115
var execSegementHeader = new CodeDirectoryExecSegmentHeader();
116-
execSegementHeader.Base = textSegment.FileOffset;
116+
execSegementHeader.Base = textSegment!.FileOffset;
117117
execSegementHeader.Limit = textSegment.FileSize;
118118
execSegementHeader.Flags = ExecutableSegmentFlags;
119119

0 commit comments

Comments
 (0)