You've already forked linux-packaging-mono
Imported Upstream version 5.0.0.42
Former-commit-id: fd56571888259555122d8a0f58c68838229cea2b
This commit is contained in:
parent
1190d13a04
commit
6bdd276d05
@@ -0,0 +1,321 @@
|
||||

|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.23107.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Security.Cryptography.X509Certificates.Tests", "tests\System.Security.Cryptography.X509Certificates.Tests.csproj", "{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40} = {6F8576C2-6CD0-4DF3-8394-00B002D82E40}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Security.Cryptography.X509Certificates", "src\System.Security.Cryptography.X509Certificates.csproj", "{6F8576C2-6CD0-4DF3-8394-00B002D82E40}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU = DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU = ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU = DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU = ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU = DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU = ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU = DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU = ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU = DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU = ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU = DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU = ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU = DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU = ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU = DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU = ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU = DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU = ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU = DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU = ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU = DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU = ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU = DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU = ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU
|
||||
DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU = DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU
|
||||
ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU = ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU
|
||||
DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU = DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU
|
||||
ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU = ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU
|
||||
DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU = DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU
|
||||
ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU = ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU
|
||||
DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU = DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU
|
||||
ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU = ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU
|
||||
DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU = DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU
|
||||
ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU = ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU
|
||||
DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU = DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU
|
||||
ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU = ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU = DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU = ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU = DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU = ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU = DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU = ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU = DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU = ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU = DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU = ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU = DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU = ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU = DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU = ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU = DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU = ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU = DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU = ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU = DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU = ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU = DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU = ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU
|
||||
DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU = DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU
|
||||
ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU = ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{A28B0064-EFB2-4B77-B97C-DECF5DAB074E}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = net463-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = net463-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = net463-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = net463-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = net463-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = net463-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = net463-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = net463-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = net463-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = net463-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = net463-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = net463-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = net463-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = net463-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = net463-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = net463-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = net463-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = net463-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = net463-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = net463-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = net463-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = net463-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = net463-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = net463-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{6F8576C2-6CD0-4DF3-8394-00B002D82E40}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
8
external/corefx/src/System.Security.Cryptography.X509Certificates/dir.props
vendored
Normal file
8
external/corefx/src/System.Security.Cryptography.X509Certificates/dir.props
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\dir.props" />
|
||||
<PropertyGroup>
|
||||
<AssemblyVersion>4.2.0.0</AssemblyVersion>
|
||||
<IsNETCoreApp>true</IsNETCoreApp>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
9
external/corefx/src/System.Security.Cryptography.X509Certificates/ref/Configurations.props
vendored
Normal file
9
external/corefx/src/System.Security.Cryptography.X509Certificates/ref/Configurations.props
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<BuildConfigurations>
|
||||
netcoreapp;
|
||||
uap;
|
||||
</BuildConfigurations>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
|
||||
<ItemGroup>
|
||||
<Project Include="System.Security.Cryptography.X509Certificates.csproj" />
|
||||
<Project Include="System.Security.Cryptography.X509Certificates.csproj">
|
||||
<TargetGroup>netcoreapp</TargetGroup>
|
||||
</Project>
|
||||
</ItemGroup>
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.traversal.targets))\dir.traversal.targets" />
|
||||
</Project>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'uap-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'uap-Release|AnyCPU'" />
|
||||
<ItemGroup>
|
||||
<Compile Include="System.Security.Cryptography.X509Certificates.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\System.Runtime\ref\System.Runtime.csproj" />
|
||||
<ProjectReference Include="..\..\System.Runtime.InteropServices\ref\System.Runtime.InteropServices.csproj" />
|
||||
<ProjectReference Include="..\..\System.Collections.NonGeneric\ref\System.Collections.NonGeneric.csproj" />
|
||||
<ProjectReference Include="..\..\System.Security.Cryptography.Algorithms\ref\System.Security.Cryptography.Algorithms.csproj" />
|
||||
<ProjectReference Include="..\..\System.Security.Cryptography.Encoding\ref\System.Security.Cryptography.Encoding.csproj" />
|
||||
<ProjectReference Include="..\..\System.Security.Cryptography.Primitives\ref\System.Security.Cryptography.Primitives.csproj" />
|
||||
</ItemGroup>
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
|
||||
</Project>
|
||||
12
external/corefx/src/System.Security.Cryptography.X509Certificates/src/Configurations.props
vendored
Normal file
12
external/corefx/src/System.Security.Cryptography.X509Certificates/src/Configurations.props
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<BuildConfigurations>
|
||||
netcoreapp-Unix;
|
||||
netcoreapp-Windows_NT;
|
||||
net463-Windows_NT;
|
||||
netcoreapp-Unix;
|
||||
netcoreapp-Windows_NT;
|
||||
</BuildConfigurations>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,71 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Security.Cryptography;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
|
||||
namespace Internal.Cryptography.Pal
|
||||
{
|
||||
internal static class CertificateExtensionsCommon
|
||||
{
|
||||
public static T GetPublicKey<T>(
|
||||
this X509Certificate2 certificate,
|
||||
Predicate<X509Certificate2> matchesConstraints = null)
|
||||
where T : AsymmetricAlgorithm
|
||||
{
|
||||
if (certificate == null)
|
||||
throw new ArgumentNullException(nameof(certificate));
|
||||
|
||||
string oidValue = GetExpectedOidValue<T>();
|
||||
PublicKey publicKey = certificate.PublicKey;
|
||||
Oid algorithmOid = publicKey.Oid;
|
||||
if (oidValue != algorithmOid.Value)
|
||||
return null;
|
||||
|
||||
if (matchesConstraints != null && !matchesConstraints(certificate))
|
||||
return null;
|
||||
|
||||
byte[] rawEncodedKeyValue = publicKey.EncodedKeyValue.RawData;
|
||||
byte[] rawEncodedParameters = publicKey.EncodedParameters.RawData;
|
||||
return (T)(X509Pal.Instance.DecodePublicKey(algorithmOid, rawEncodedKeyValue, rawEncodedParameters, certificate.Pal));
|
||||
}
|
||||
|
||||
public static T GetPrivateKey<T>(
|
||||
this X509Certificate2 certificate,
|
||||
Predicate<X509Certificate2> matchesConstraints = null)
|
||||
where T : AsymmetricAlgorithm
|
||||
{
|
||||
if (certificate == null)
|
||||
throw new ArgumentNullException(nameof(certificate));
|
||||
|
||||
string oidValue = GetExpectedOidValue<T>();
|
||||
if (!certificate.HasPrivateKey || oidValue != certificate.PublicKey.Oid.Value)
|
||||
return null;
|
||||
|
||||
if (matchesConstraints != null && !matchesConstraints(certificate))
|
||||
return null;
|
||||
|
||||
if (typeof(T) == typeof(RSA))
|
||||
return (T)(object)certificate.Pal.GetRSAPrivateKey();
|
||||
|
||||
if (typeof(T) == typeof(ECDsa))
|
||||
return (T)(object)certificate.Pal.GetECDsaPrivateKey();
|
||||
|
||||
Debug.Fail("Expected GetExpectedOidValue() to have thrown before we got here.");
|
||||
throw new NotSupportedException(SR.NotSupported_KeyAlgorithm);
|
||||
}
|
||||
|
||||
private static string GetExpectedOidValue<T>() where T : AsymmetricAlgorithm
|
||||
{
|
||||
if (typeof(T) == typeof(RSA))
|
||||
return Oids.RsaRsa;
|
||||
if (typeof(T) == typeof(ECDsa))
|
||||
return Oids.Ecc;
|
||||
throw new NotSupportedException(SR.NotSupported_KeyAlgorithm);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System;
|
||||
using System.Text;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.Security.Cryptography;
|
||||
|
||||
namespace Internal.Cryptography
|
||||
{
|
||||
//
|
||||
// Error codes for specific throw sites. Defined outside of Internal.Crytography.Pal.Native as some non-Pal code uses these.
|
||||
// Since these error codes are publicly surfaced through the Exception class, these hresults are effectively managed exchange values despite
|
||||
// their Win32 origin.
|
||||
//
|
||||
internal static class ErrorCode
|
||||
{
|
||||
public const int CERT_E_CHAINING = unchecked((int)0x800B010A);
|
||||
public const int CERT_E_CRITICAL = unchecked((int)0x800B0105);
|
||||
public const int CERT_E_EXPIRED = unchecked((int)0x800B0101);
|
||||
public const int CERT_E_INVALID_NAME = unchecked((int)0x800B0114);
|
||||
public const int CERT_E_INVALID_POLICY = unchecked((int)0x800B0113);
|
||||
public const int CERT_E_UNTRUSTEDROOT = unchecked((int)0x800B0109);
|
||||
public const int CERT_E_VALIDITYPERIODNESTING = unchecked((int)0x800B0102);
|
||||
public const int CERT_E_WRONG_USAGE = unchecked((int)0x800B0110);
|
||||
public const int CERTSRV_E_WEAK_SIGNATURE_OR_KEY = unchecked((int)0x80094016);
|
||||
public const int CRYPT_E_NO_REVOCATION_CHECK = unchecked((int)0x80092012);
|
||||
public const int CRYPT_E_NOT_FOUND = unchecked((int)0x80092004);
|
||||
public const int CRYPT_E_REVOCATION_OFFLINE = unchecked((int)0x80092013);
|
||||
public const int CRYPT_E_REVOKED = unchecked((int)0x80092010);
|
||||
public const int CRYPT_E_SIGNER_NOT_FOUND = unchecked((int)0x8009100e);
|
||||
public const int E_POINTER = unchecked((int)0x80004003);
|
||||
public const int ERROR_INVALID_PARAMETER = 0x00000057;
|
||||
public const int HRESULT_INVALID_HANDLE = unchecked((int)0x80070006);
|
||||
public const int NTE_BAD_PUBLIC_KEY = unchecked((int)0x80090015);
|
||||
public const int TRUST_E_BASIC_CONSTRAINTS = unchecked((int)0x80096019);
|
||||
public const int TRUST_E_CERT_SIGNATURE = unchecked((int)0x80096004);
|
||||
public const int TRUST_E_EXPLICIT_DISTRUST = unchecked((int)0x800B0111);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,286 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Numerics;
|
||||
using System.Security.Cryptography;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
|
||||
namespace Internal.Cryptography.Pal
|
||||
{
|
||||
internal partial class FindPal
|
||||
{
|
||||
private const int NamedKeyUsageFlagsCount = 9;
|
||||
|
||||
private static readonly Dictionary<string, X509KeyUsageFlags> s_keyUsages =
|
||||
new Dictionary<string, X509KeyUsageFlags>(NamedKeyUsageFlagsCount, StringComparer.OrdinalIgnoreCase)
|
||||
{
|
||||
{ "DigitalSignature", X509KeyUsageFlags.DigitalSignature },
|
||||
{ "NonRepudiation", X509KeyUsageFlags.NonRepudiation },
|
||||
{ "KeyEncipherment", X509KeyUsageFlags.KeyEncipherment },
|
||||
{ "DataEncipherment", X509KeyUsageFlags.DataEncipherment },
|
||||
{ "KeyAgreement", X509KeyUsageFlags.KeyAgreement },
|
||||
{ "KeyCertSign", X509KeyUsageFlags.KeyCertSign },
|
||||
{ "CrlSign", X509KeyUsageFlags.CrlSign },
|
||||
{ "EncipherOnly", X509KeyUsageFlags.EncipherOnly },
|
||||
{ "DecipherOnly", X509KeyUsageFlags.DecipherOnly },
|
||||
};
|
||||
|
||||
#if DEBUG
|
||||
static FindPal()
|
||||
{
|
||||
Debug.Assert(s_keyUsages.Count == NamedKeyUsageFlagsCount);
|
||||
}
|
||||
#endif
|
||||
|
||||
public static X509Certificate2Collection FindFromCollection(
|
||||
X509Certificate2Collection coll,
|
||||
X509FindType findType,
|
||||
object findValue,
|
||||
bool validOnly)
|
||||
{
|
||||
X509Certificate2Collection results = new X509Certificate2Collection();
|
||||
|
||||
using (IFindPal findPal = OpenPal(coll, results, validOnly))
|
||||
{
|
||||
switch (findType)
|
||||
{
|
||||
case X509FindType.FindByThumbprint:
|
||||
{
|
||||
byte[] thumbPrint = ConfirmedCast<string>(findValue).DecodeHexString();
|
||||
findPal.FindByThumbprint(thumbPrint);
|
||||
break;
|
||||
}
|
||||
case X509FindType.FindBySubjectName:
|
||||
{
|
||||
string subjectName = ConfirmedCast<string>(findValue);
|
||||
findPal.FindBySubjectName(subjectName);
|
||||
break;
|
||||
}
|
||||
case X509FindType.FindBySubjectDistinguishedName:
|
||||
{
|
||||
string subjectDistinguishedName = ConfirmedCast<string>(findValue);
|
||||
findPal.FindBySubjectDistinguishedName(subjectDistinguishedName);
|
||||
break;
|
||||
}
|
||||
case X509FindType.FindByIssuerName:
|
||||
{
|
||||
string issuerName = ConfirmedCast<string>(findValue);
|
||||
findPal.FindByIssuerName(issuerName);
|
||||
break;
|
||||
}
|
||||
case X509FindType.FindByIssuerDistinguishedName:
|
||||
{
|
||||
string issuerDistinguishedName = ConfirmedCast<string>(findValue);
|
||||
findPal.FindByIssuerDistinguishedName(issuerDistinguishedName);
|
||||
break;
|
||||
}
|
||||
case X509FindType.FindBySerialNumber:
|
||||
{
|
||||
string decimalOrHexString = ConfirmedCast<string>(findValue);
|
||||
|
||||
// FindBySerialNumber allows the input format to be either in
|
||||
// hex or decimal. Since we can't know which one was intended,
|
||||
// it compares against both interpretations and treats a match
|
||||
// of either as a successful find.
|
||||
|
||||
// string is big-endian, BigInteger constructor requires little-endian.
|
||||
byte[] hexBytes = decimalOrHexString.DecodeHexString();
|
||||
Array.Reverse(hexBytes);
|
||||
|
||||
BigInteger hexValue = PositiveBigIntegerFromByteArray(hexBytes);
|
||||
BigInteger decimalValue = LaxParseDecimalBigInteger(decimalOrHexString);
|
||||
findPal.FindBySerialNumber(hexValue, decimalValue);
|
||||
break;
|
||||
}
|
||||
case X509FindType.FindByTimeValid:
|
||||
{
|
||||
DateTime dateTime = ConfirmedCast<DateTime>(findValue);
|
||||
findPal.FindByTimeValid(dateTime);
|
||||
break;
|
||||
}
|
||||
case X509FindType.FindByTimeNotYetValid:
|
||||
{
|
||||
DateTime dateTime = ConfirmedCast<DateTime>(findValue);
|
||||
findPal.FindByTimeNotYetValid(dateTime);
|
||||
break;
|
||||
}
|
||||
case X509FindType.FindByTimeExpired:
|
||||
{
|
||||
DateTime dateTime = ConfirmedCast<DateTime>(findValue);
|
||||
findPal.FindByTimeExpired(dateTime);
|
||||
break;
|
||||
}
|
||||
case X509FindType.FindByTemplateName:
|
||||
{
|
||||
string expected = ConfirmedCast<string>(findValue);
|
||||
findPal.FindByTemplateName(expected);
|
||||
break;
|
||||
}
|
||||
case X509FindType.FindByApplicationPolicy:
|
||||
{
|
||||
string oidValue = ConfirmedOidValue(findPal, findValue, OidGroup.Policy);
|
||||
findPal.FindByApplicationPolicy(oidValue);
|
||||
break;
|
||||
}
|
||||
case X509FindType.FindByCertificatePolicy:
|
||||
{
|
||||
string oidValue = ConfirmedOidValue(findPal, findValue, OidGroup.Policy);
|
||||
findPal.FindByCertificatePolicy(oidValue);
|
||||
break;
|
||||
}
|
||||
case X509FindType.FindByExtension:
|
||||
{
|
||||
string oidValue = ConfirmedOidValue(findPal, findValue, OidGroup.ExtensionOrAttribute);
|
||||
findPal.FindByExtension(oidValue);
|
||||
break;
|
||||
}
|
||||
case X509FindType.FindByKeyUsage:
|
||||
{
|
||||
X509KeyUsageFlags keyUsage = ConfirmedX509KeyUsage(findValue);
|
||||
findPal.FindByKeyUsage(keyUsage);
|
||||
break;
|
||||
}
|
||||
case X509FindType.FindBySubjectKeyIdentifier:
|
||||
{
|
||||
byte[] keyIdentifier = ConfirmedCast<string>(findValue).DecodeHexString();
|
||||
findPal.FindBySubjectKeyIdentifier(keyIdentifier);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
throw new CryptographicException(SR.Cryptography_X509_InvalidFindType);
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
private static T ConfirmedCast<T>(object findValue)
|
||||
{
|
||||
Debug.Assert(findValue != null);
|
||||
|
||||
if (findValue.GetType() != typeof(T))
|
||||
throw new CryptographicException(SR.Cryptography_X509_InvalidFindValue);
|
||||
|
||||
return (T)findValue;
|
||||
}
|
||||
|
||||
private static string ConfirmedOidValue(IFindPal findPal, object findValue, OidGroup oidGroup)
|
||||
{
|
||||
string maybeOid = ConfirmedCast<string>(findValue);
|
||||
|
||||
if (maybeOid.Length == 0)
|
||||
{
|
||||
throw new ArgumentException(SR.Argument_InvalidOidValue);
|
||||
}
|
||||
|
||||
return findPal.NormalizeOid(maybeOid, oidGroup);
|
||||
}
|
||||
|
||||
private static X509KeyUsageFlags ConfirmedX509KeyUsage(object findValue)
|
||||
{
|
||||
if (findValue is X509KeyUsageFlags)
|
||||
return (X509KeyUsageFlags)findValue;
|
||||
|
||||
if (findValue is int)
|
||||
return (X509KeyUsageFlags)(int)findValue;
|
||||
|
||||
if (findValue is uint)
|
||||
return (X509KeyUsageFlags)(uint)findValue;
|
||||
|
||||
string findValueString = findValue as string;
|
||||
|
||||
if (findValueString != null)
|
||||
{
|
||||
X509KeyUsageFlags usageFlags;
|
||||
|
||||
if (s_keyUsages.TryGetValue(findValueString, out usageFlags))
|
||||
{
|
||||
return usageFlags;
|
||||
}
|
||||
}
|
||||
|
||||
throw new CryptographicException(SR.Cryptography_X509_InvalidFindValue);
|
||||
}
|
||||
|
||||
//
|
||||
// verify the passed keyValue is valid as per X.208
|
||||
//
|
||||
// The first number must be 0, 1 or 2.
|
||||
// Enforce all characters are digits and dots.
|
||||
// Enforce that no dot starts or ends the Oid, and disallow double dots.
|
||||
// Enforce there is at least one dot separator.
|
||||
//
|
||||
internal static void ValidateOidValue(string keyValue)
|
||||
{
|
||||
if (keyValue == null)
|
||||
throw new ArgumentNullException(nameof(keyValue));
|
||||
|
||||
int len = keyValue.Length;
|
||||
if (len < 2)
|
||||
throw new ArgumentException(SR.Argument_InvalidOidValue);
|
||||
|
||||
// should not start with a dot. The first digit must be 0, 1 or 2.
|
||||
char c = keyValue[0];
|
||||
if (c != '0' && c != '1' && c != '2')
|
||||
throw new ArgumentException(SR.Argument_InvalidOidValue);
|
||||
if (keyValue[1] != '.' || keyValue[len - 1] == '.') // should not end in a dot
|
||||
throw new ArgumentException(SR.Argument_InvalidOidValue);
|
||||
|
||||
// While characters 0 and 1 were both validated, start at character 1 to validate
|
||||
// that there aren't two dots in a row.
|
||||
for (int i = 1; i < len; i++)
|
||||
{
|
||||
// ensure every character is either a digit or a dot
|
||||
if (char.IsDigit(keyValue[i]))
|
||||
continue;
|
||||
if (keyValue[i] != '.' || keyValue[i + 1] == '.') // disallow double dots
|
||||
throw new ArgumentException(SR.Argument_InvalidOidValue);
|
||||
}
|
||||
}
|
||||
|
||||
internal static BigInteger PositiveBigIntegerFromByteArray(byte[] bytes)
|
||||
{
|
||||
// To prevent the big integer from misinterpreted as a negative number,
|
||||
// add a "leading 0" to the byte array if it would considered negative.
|
||||
//
|
||||
// Since BigInteger(bytes[]) requires a little-endian byte array,
|
||||
// the "leading 0" actually goes at the end of the array.
|
||||
|
||||
// An empty array is 0 (non-negative), so no over-allocation is required.
|
||||
//
|
||||
// If the last indexed value doesn't have the sign bit set (0x00-0x7F) then
|
||||
// the number would be positive anyways, so no over-allocation is required.
|
||||
if (bytes.Length == 0 || bytes[bytes.Length - 1] < 0x80)
|
||||
{
|
||||
return new BigInteger(bytes);
|
||||
}
|
||||
|
||||
// Since the sign bit is set, put a new 0x00 on the end to move that bit from
|
||||
// the sign bit to a data bit.
|
||||
byte[] newBytes = new byte[bytes.Length + 1];
|
||||
Buffer.BlockCopy(bytes, 0, newBytes, 0, bytes.Length);
|
||||
return new BigInteger(newBytes);
|
||||
}
|
||||
|
||||
private static BigInteger LaxParseDecimalBigInteger(string decimalString)
|
||||
{
|
||||
BigInteger ten = new BigInteger(10);
|
||||
BigInteger accum = BigInteger.Zero;
|
||||
|
||||
foreach (char c in decimalString)
|
||||
{
|
||||
if (c >= '0' && c <= '9')
|
||||
{
|
||||
accum = BigInteger.Multiply(accum, ten);
|
||||
accum = BigInteger.Add(accum, c - '0');
|
||||
}
|
||||
}
|
||||
|
||||
return accum;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,154 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
|
||||
namespace Internal.Cryptography
|
||||
{
|
||||
internal static class Helpers
|
||||
{
|
||||
public static byte[] CloneByteArray(this byte[] src)
|
||||
{
|
||||
if (src == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return (byte[])(src.Clone());
|
||||
}
|
||||
|
||||
// Encode a byte array as an array of upper-case hex characters.
|
||||
public static char[] ToHexArrayUpper(this byte[] bytes)
|
||||
{
|
||||
char[] chars = new char[bytes.Length * 2];
|
||||
int i = 0;
|
||||
foreach (byte b in bytes)
|
||||
{
|
||||
chars[i++] = NibbleToHex((byte)(b >> 4));
|
||||
chars[i++] = NibbleToHex((byte)(b & 0xF));
|
||||
}
|
||||
return chars;
|
||||
}
|
||||
|
||||
// Encode a byte array as an upper case hex string.
|
||||
public static string ToHexStringUpper(this byte[] bytes)
|
||||
{
|
||||
return new string(ToHexArrayUpper(bytes));
|
||||
}
|
||||
|
||||
// Decode a hex string-encoded byte array passed to various X509 crypto api.
|
||||
// The parsing rules are overly forgiving but for compat reasons, they cannot be tightened.
|
||||
public static byte[] DecodeHexString(this string s)
|
||||
{
|
||||
int whitespaceCount = 0;
|
||||
|
||||
for (int i = 0; i < s.Length; i++)
|
||||
{
|
||||
if (char.IsWhiteSpace(s[i]))
|
||||
whitespaceCount++;
|
||||
}
|
||||
|
||||
uint cbHex = (uint)(s.Length - whitespaceCount) / 2;
|
||||
byte[] hex = new byte[cbHex];
|
||||
byte accum = 0;
|
||||
bool byteInProgress = false;
|
||||
int index = 0;
|
||||
|
||||
for (int i = 0; i < s.Length; i++)
|
||||
{
|
||||
char c = s[i];
|
||||
|
||||
if (char.IsWhiteSpace(c))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
accum <<= 4;
|
||||
accum |= HexToByte(c);
|
||||
|
||||
byteInProgress = !byteInProgress;
|
||||
|
||||
// If we've flipped from 0 to 1, back to 0, we have a whole byte
|
||||
// so add it to the buffer.
|
||||
if (!byteInProgress)
|
||||
{
|
||||
Debug.Assert(index < cbHex, "index < cbHex");
|
||||
|
||||
hex[index] = accum;
|
||||
index++;
|
||||
}
|
||||
}
|
||||
|
||||
// Desktop compat:
|
||||
// The desktop algorithm removed all whitespace before the loop, then went up to length/2
|
||||
// of what was left. This means that in the event of odd-length input the last char is
|
||||
// ignored, no exception should be raised.
|
||||
Debug.Assert(index == cbHex, "index == cbHex");
|
||||
|
||||
return hex;
|
||||
}
|
||||
|
||||
private static byte HexToByte(char val)
|
||||
{
|
||||
if (val <= '9' && val >= '0')
|
||||
return (byte)(val - '0');
|
||||
else if (val >= 'a' && val <= 'f')
|
||||
return (byte)((val - 'a') + 10);
|
||||
else if (val >= 'A' && val <= 'F')
|
||||
return (byte)((val - 'A') + 10);
|
||||
else
|
||||
return 0xFF;
|
||||
}
|
||||
|
||||
private static char NibbleToHex(byte b)
|
||||
{
|
||||
Debug.Assert(b >= 0 && b <= 15);
|
||||
return (char)(b >= 0 && b <= 9 ?
|
||||
'0' + b :
|
||||
'A' + (b - 10));
|
||||
}
|
||||
|
||||
public static bool ContentsEqual(this byte[] a1, byte[] a2)
|
||||
{
|
||||
if (a1.Length != a2.Length)
|
||||
return false;
|
||||
|
||||
for (int i = 0; i < a1.Length; i++)
|
||||
{
|
||||
if (a1[i] != a2[i])
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//
|
||||
// The following group of helpers emulates the non-public Calendar.IsValidDay() method used by X509Certificate.ToString(bool).
|
||||
//
|
||||
public static bool IsValidDay(this Calendar calendar, int year, int month, int day, int era)
|
||||
{
|
||||
return (calendar.IsValidMonth(year, month, era) && day >= 1 && day <= calendar.GetDaysInMonth(year, month, era));
|
||||
}
|
||||
|
||||
private static bool IsValidMonth(this Calendar calendar, int year, int month, int era)
|
||||
{
|
||||
return (calendar.IsValidYear(year, era) && month >= 1 && month <= calendar.GetMonthsInYear(year, era));
|
||||
}
|
||||
|
||||
private static bool IsValidYear(this Calendar calendar, int year, int era)
|
||||
{
|
||||
return (year >= calendar.GetYear(calendar.MinSupportedDateTime) && year <= calendar.GetYear(calendar.MaxSupportedDateTime));
|
||||
}
|
||||
|
||||
internal static void DisposeAll(this IEnumerable<IDisposable> disposables)
|
||||
{
|
||||
foreach (IDisposable disposable in disposables)
|
||||
{
|
||||
disposable.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Security.Cryptography;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using System.Text;
|
||||
|
||||
namespace Internal.Cryptography
|
||||
{
|
||||
internal interface ICertificatePal : IDisposable
|
||||
{
|
||||
bool HasPrivateKey { get; }
|
||||
IntPtr Handle { get; }
|
||||
string Issuer { get; }
|
||||
string Subject { get; }
|
||||
byte[] Thumbprint { get; }
|
||||
string KeyAlgorithm { get; }
|
||||
byte[] KeyAlgorithmParameters { get; }
|
||||
byte[] PublicKeyValue { get; }
|
||||
byte[] SerialNumber { get; }
|
||||
string SignatureAlgorithm { get; }
|
||||
DateTime NotAfter { get; }
|
||||
DateTime NotBefore { get; }
|
||||
byte[] RawData { get; }
|
||||
int Version { get; }
|
||||
bool Archived { get; set; }
|
||||
string FriendlyName { get; set; }
|
||||
X500DistinguishedName SubjectName { get; }
|
||||
X500DistinguishedName IssuerName { get; }
|
||||
IEnumerable<X509Extension> Extensions { get; }
|
||||
AsymmetricAlgorithm GetPrivateKey();
|
||||
RSA GetRSAPrivateKey();
|
||||
DSA GetDSAPrivateKey();
|
||||
ECDsa GetECDsaPrivateKey();
|
||||
string GetNameInfo(X509NameType nameType, bool forIssuer);
|
||||
void AppendPrivateKeyInfo(StringBuilder sb);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
|
||||
using Microsoft.Win32.SafeHandles;
|
||||
|
||||
namespace Internal.Cryptography.Pal
|
||||
{
|
||||
internal interface IChainPal : IDisposable
|
||||
{
|
||||
/// <summary>
|
||||
/// Does not throw on api error. Returns default(bool?) and sets "exception" instead.
|
||||
/// </summary>
|
||||
bool? Verify(X509VerificationFlags flags, out Exception exception);
|
||||
|
||||
X509ChainElement[] ChainElements { get; }
|
||||
X509ChainStatus[] ChainStatus { get; }
|
||||
SafeX509ChainHandle SafeHandle { get; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using Microsoft.Win32.SafeHandles;
|
||||
using System;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
|
||||
namespace Internal.Cryptography.Pal
|
||||
{
|
||||
internal interface IExportPal : IDisposable
|
||||
{
|
||||
byte[] Export(X509ContentType contentType, SafePasswordHandle password);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System;
|
||||
using System.Numerics;
|
||||
using System.Security.Cryptography;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
|
||||
namespace Internal.Cryptography.Pal
|
||||
{
|
||||
internal interface IFindPal : IDisposable
|
||||
{
|
||||
string NormalizeOid(string maybeOid, OidGroup expectedGroup);
|
||||
|
||||
void FindByThumbprint(byte[] thumbprint);
|
||||
void FindBySubjectName(string subjectName);
|
||||
void FindBySubjectDistinguishedName(string subjectDistinguishedName);
|
||||
void FindByIssuerName(string issuerName);
|
||||
void FindByIssuerDistinguishedName(string issuerDistinguishedName);
|
||||
void FindBySerialNumber(BigInteger hexValue, BigInteger decimalValue);
|
||||
void FindByTimeValid(DateTime dateTime);
|
||||
void FindByTimeNotYetValid(DateTime dateTime);
|
||||
void FindByTimeExpired(DateTime dateTime);
|
||||
void FindByTemplateName(string templateName);
|
||||
void FindByApplicationPolicy(string oidValue);
|
||||
void FindByCertificatePolicy(string oidValue);
|
||||
void FindByExtension(string oidValue);
|
||||
void FindByKeyUsage(X509KeyUsageFlags keyUsage);
|
||||
void FindBySubjectKeyIdentifier(byte[] keyIdentifier);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
|
||||
namespace Internal.Cryptography.Pal
|
||||
{
|
||||
internal interface ILoaderPal : IDisposable
|
||||
{
|
||||
void MoveTo(X509Certificate2Collection collection);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
|
||||
namespace Internal.Cryptography.Pal
|
||||
{
|
||||
internal interface IStorePal : IDisposable
|
||||
{
|
||||
void CloneTo(X509Certificate2Collection collection);
|
||||
void Add(ICertificatePal cert);
|
||||
void Remove(ICertificatePal cert);
|
||||
SafeHandle SafeHandle { get; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System;
|
||||
using System.Security.Cryptography;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
|
||||
namespace Internal.Cryptography.Pal
|
||||
{
|
||||
internal interface IX509Pal
|
||||
{
|
||||
AsymmetricAlgorithm DecodePublicKey(Oid oid, byte[] encodedKeyValue, byte[] encodedParameters, ICertificatePal certificatePal);
|
||||
string X500DistinguishedNameDecode(byte[] encodedDistinguishedName, X500DistinguishedNameFlags flag);
|
||||
byte[] X500DistinguishedNameEncode(string distinguishedName, X500DistinguishedNameFlags flag);
|
||||
string X500DistinguishedNameFormat(byte[] encodedDistinguishedName, bool multiLine);
|
||||
X509ContentType GetCertContentType(byte[] rawData);
|
||||
X509ContentType GetCertContentType(string fileName);
|
||||
byte[] EncodeX509KeyUsageExtension(X509KeyUsageFlags keyUsages);
|
||||
void DecodeX509KeyUsageExtension(byte[] encoded, out X509KeyUsageFlags keyUsages);
|
||||
bool SupportsLegacyBasicConstraintsExtension { get; }
|
||||
byte[] EncodeX509BasicConstraints2Extension(bool certificateAuthority, bool hasPathLengthConstraint, int pathLengthConstraint);
|
||||
void DecodeX509BasicConstraintsExtension(byte[] encoded, out bool certificateAuthority, out bool hasPathLengthConstraint, out int pathLengthConstraint);
|
||||
void DecodeX509BasicConstraints2Extension(byte[] encoded, out bool certificateAuthority, out bool hasPathLengthConstraint, out int pathLengthConstraint);
|
||||
byte[] EncodeX509EnhancedKeyUsageExtension(OidCollection usages);
|
||||
void DecodeX509EnhancedKeyUsageExtension(byte[] encoded, out OidCollection usages);
|
||||
byte[] EncodeX509SubjectKeyIdentifierExtension(byte[] subjectKeyIdentifier);
|
||||
void DecodeX509SubjectKeyIdentifierExtension(byte[] encoded, out byte[] subjectKeyIdentifier);
|
||||
byte[] ComputeCapiSha1OfPublicKey(PublicKey key);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System;
|
||||
using System.Text;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.Security.Cryptography;
|
||||
|
||||
namespace Internal.Cryptography
|
||||
{
|
||||
//
|
||||
// Well-known oids
|
||||
//
|
||||
internal static class Oids
|
||||
{
|
||||
public const string BasicConstraints = "2.5.29.10";
|
||||
public const string SubjectKeyIdentifier = "2.5.29.14";
|
||||
public const string KeyUsage = "2.5.29.15";
|
||||
public const string BasicConstraints2 = "2.5.29.19";
|
||||
public const string CrlDistributionPoints = "2.5.29.31";
|
||||
public const string CertPolicies = "2.5.29.32";
|
||||
public const string AnyCertPolicy = "2.5.29.32.0";
|
||||
public const string CertPolicyMappings = "2.5.29.33";
|
||||
public const string CertPolicyConstraints = "2.5.29.36";
|
||||
public const string EnhancedKeyUsage = "2.5.29.37";
|
||||
public const string InhibitAnyPolicyExtension = "2.5.29.54";
|
||||
public const string Ecc = "1.2.840.10045.2.1";
|
||||
public const string RsaRsa = "1.2.840.113549.1.1.1";
|
||||
public const string DsaDsa = "1.2.840.10040.4.1";
|
||||
public const string EmailAddress = "1.2.840.113549.1.9.1";
|
||||
public const string EnrollCertTypeExtension = "1.3.6.1.4.1.311.20.2";
|
||||
public const string CertificateTemplate = "1.3.6.1.4.1.311.21.7";
|
||||
public const string ApplicationCertPolicies = "1.3.6.1.4.1.311.21.10";
|
||||
public const string AuthorityInformationAccess = "1.3.6.1.5.5.7.1.1";
|
||||
public const string CertificateAuthorityIssuers = "1.3.6.1.5.5.7.48.2";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using System.Threading;
|
||||
|
||||
namespace Internal.Cryptography.Pal
|
||||
{
|
||||
internal sealed class CertCollectionLoader : ILoaderPal
|
||||
{
|
||||
private List<ICertificatePal> _certs;
|
||||
|
||||
internal CertCollectionLoader(List<ICertificatePal> certs)
|
||||
{
|
||||
_certs = certs;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
// If there're still certificates, dispose them.
|
||||
_certs?.DisposeAll();
|
||||
}
|
||||
|
||||
public void MoveTo(X509Certificate2Collection collection)
|
||||
{
|
||||
Debug.Assert(collection != null);
|
||||
|
||||
List<ICertificatePal> localCerts = Interlocked.Exchange(ref _certs, null);
|
||||
Debug.Assert(localCerts != null);
|
||||
|
||||
foreach (ICertificatePal certPal in localCerts)
|
||||
{
|
||||
collection.Add(new X509Certificate2(certPal));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user