You've already forked linux-packaging-mono
Imported Upstream version 5.2.0.175
Former-commit-id: bb0468d0f257ff100aa895eb5fe583fb5dfbf900
This commit is contained in:
parent
4bdbaf4a88
commit
966bba02bb
@@ -1,7 +1,6 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.22911.2
|
||||
VisualStudioVersion = 14.0.25420.1
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Security.Cryptography.Encoding.Tests", "tests\System.Security.Cryptography.Encoding.Tests.csproj", "{0581E9FA-D639-4B88-96D8-D092760F90B0}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
@@ -9,133 +8,43 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Security.Cryptograph
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Security.Cryptography.Encoding", "src\System.Security.Cryptography.Encoding.csproj", "{AA81E343-5E54-40B0-9381-C459419BE780}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{81B846C6-3CE3-4D7D-8A30-54ECEC63F6DD} = {81B846C6-3CE3-4D7D-8A30-54ECEC63F6DD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Security.Cryptography.Encoding", "ref\System.Security.Cryptography.Encoding.csproj", "{81B846C6-3CE3-4D7D-8A30-54ECEC63F6DD}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
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-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-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-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
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = net463-Windows_NT-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = net463-Windows_NT-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = net463-Windows_NT-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = net463-Windows_NT-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = net463-Windows_NT-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = net463-Windows_NT-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = net463-Windows_NT-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = net463-Windows_NT-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = net463-Windows_NT-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = net463-Windows_NT-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = net463-Windows_NT-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = net463-Windows_NT-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = net463-Windows_NT-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = net463-Windows_NT-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = net463-Windows_NT-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = net463-Windows_NT-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Unix|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp-Windows_NT|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.Debug|Any CPU.ActiveCfg = netstandard-Windows_NT-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.Debug|Any CPU.Build.0 = netstandard-Windows_NT-Debug|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.Release|Any CPU.ActiveCfg = netstandard-Windows_NT-Release|Any CPU
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0}.Release|Any CPU.Build.0 = netstandard-Windows_NT-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.Debug|Any CPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.Debug|Any CPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.Release|Any CPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780}.Release|Any CPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
|
||||
{81B846C6-3CE3-4D7D-8A30-54ECEC63F6DD}.Debug|Any CPU.ActiveCfg = netcoreapp-Debug|Any CPU
|
||||
{81B846C6-3CE3-4D7D-8A30-54ECEC63F6DD}.Debug|Any CPU.Build.0 = netcoreapp-Debug|Any CPU
|
||||
{81B846C6-3CE3-4D7D-8A30-54ECEC63F6DD}.Release|Any CPU.ActiveCfg = netcoreapp-Release|Any CPU
|
||||
{81B846C6-3CE3-4D7D-8A30-54ECEC63F6DD}.Release|Any CPU.Build.0 = netcoreapp-Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{0581E9FA-D639-4B88-96D8-D092760F90B0} = {1A2F9F4A-A032-433E-B914-ADD5992BB178}
|
||||
{AA81E343-5E54-40B0-9381-C459419BE780} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD}
|
||||
{81B846C6-3CE3-4D7D-8A30-54ECEC63F6DD} = {2E666815-2EDB-464B-9DF6-380BF4789AD4}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
||||
@@ -4,5 +4,6 @@
|
||||
<PropertyGroup>
|
||||
<AssemblyVersion>4.1.0.0</AssemblyVersion>
|
||||
<IsNETCoreApp>true</IsNETCoreApp>
|
||||
<IsUAP>true</IsUAP>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -1,6 +1,9 @@
|
||||
<?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>
|
||||
<ProjectGuid>{81B846C6-3CE3-4D7D-8A30-54ECEC63F6DD}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'uap-Debug|AnyCPU'" />
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<BuildConfigurations>
|
||||
net463-Windows_NT;
|
||||
netcoreapp-OSX;
|
||||
netcoreapp-Unix;
|
||||
netcoreapp-Windows_NT;
|
||||
uap-Windows_NT;
|
||||
</BuildConfigurations>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
|
||||
@@ -0,0 +1,217 @@
|
||||
// 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.Security.Cryptography;
|
||||
using System.Text;
|
||||
|
||||
namespace Internal.Cryptography
|
||||
{
|
||||
internal abstract partial class AsnFormatter
|
||||
{
|
||||
private static readonly AsnFormatter s_instance = new AppleAsnFormatter();
|
||||
|
||||
// -----------------------------
|
||||
// ---- PAL layer ends here ----
|
||||
// -----------------------------
|
||||
}
|
||||
|
||||
internal class AppleAsnFormatter : AsnFormatter
|
||||
{
|
||||
protected override string FormatNative(Oid oid, byte[] rawData, bool multiLine)
|
||||
{
|
||||
if (oid == null || string.IsNullOrEmpty(oid.Value))
|
||||
{
|
||||
return EncodeHexString(rawData, true);
|
||||
}
|
||||
|
||||
switch (oid.Value)
|
||||
{
|
||||
case "2.5.29.17":
|
||||
return FormatSubjectAlternativeName(rawData);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private const string CommaSpace = ", ";
|
||||
|
||||
internal enum GeneralNameType
|
||||
{
|
||||
OtherName = 0,
|
||||
Rfc822Name = 1,
|
||||
// RFC 822: Standard for the format of ARPA Internet Text Messages.
|
||||
// That means "email", and an RFC 822 Name: "Email address"
|
||||
Email = Rfc822Name,
|
||||
DnsName = 2,
|
||||
X400Address = 3,
|
||||
DirectoryName = 4,
|
||||
EdiPartyName = 5,
|
||||
UniformResourceIdentifier = 6,
|
||||
IPAddress = 7,
|
||||
RegisteredId = 8,
|
||||
}
|
||||
|
||||
private string FormatSubjectAlternativeName(byte[] rawData)
|
||||
{
|
||||
// Because SubjectAlternativeName is a commonly parsed structure, we'll
|
||||
// specifically format this one. And we'll match the OpenSSL format, which
|
||||
// includes not localizing any of the values (or respecting the multiLine boolean)
|
||||
//
|
||||
// The intent here is to be functionally equivalent to OpenSSL GENERAL_NAME_print.
|
||||
|
||||
// The end size of this string is hard to predict.
|
||||
// * dNSName values have a tag that takes four characters to represent ("DNS:")
|
||||
// and then their payload is ASCII encoded (so one byte -> one char), so they
|
||||
// work out to be about equal (in chars) to their DER encoded length (in bytes).
|
||||
// * iPAddress values have a tag that takes 11 characters ("IP Address:") and then
|
||||
// grow from 4 bytes to up to 15 characters for IPv4, or 16 bytes to 47 characters
|
||||
// for IPv6
|
||||
//
|
||||
// So use a List<string> and just Concat them all when we're done, and we reduce the
|
||||
// number of times we copy the header values (vs pointers to the header values).
|
||||
List<string> segments = new List<string>();
|
||||
|
||||
try
|
||||
{
|
||||
// SubjectAltName ::= GeneralNames
|
||||
//
|
||||
// GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
|
||||
//
|
||||
// GeneralName ::= CHOICE {
|
||||
// otherName [0] OtherName,
|
||||
// rfc822Name [1] IA5String,
|
||||
// dNSName [2] IA5String,
|
||||
// x400Address [3] ORAddress,
|
||||
// directoryName [4] Name,
|
||||
// ediPartyName [5] EDIPartyName,
|
||||
// uniformResourceIdentifier [6] IA5String,
|
||||
// iPAddress [7] OCTET STRING,
|
||||
// registeredID [8] OBJECT IDENTIFIER }
|
||||
//
|
||||
// OtherName::= SEQUENCE {
|
||||
// type - id OBJECT IDENTIFIER,
|
||||
// value[0] EXPLICIT ANY DEFINED BY type - id }
|
||||
DerSequenceReader altNameReader = new DerSequenceReader(rawData);
|
||||
|
||||
while (altNameReader.HasData)
|
||||
{
|
||||
if (segments.Count != 0)
|
||||
{
|
||||
segments.Add(CommaSpace);
|
||||
}
|
||||
|
||||
byte tag = altNameReader.PeekTag();
|
||||
|
||||
if ((tag & DerSequenceReader.ContextSpecificTagFlag) == 0)
|
||||
{
|
||||
// All GeneralName values need the ContextSpecific flag.
|
||||
return null;
|
||||
}
|
||||
|
||||
GeneralNameType nameType = (GeneralNameType)(tag & DerSequenceReader.TagNumberMask);
|
||||
|
||||
bool needsConstructedFlag = false;
|
||||
|
||||
switch (nameType)
|
||||
{
|
||||
case GeneralNameType.OtherName:
|
||||
case GeneralNameType.X400Address:
|
||||
case GeneralNameType.DirectoryName:
|
||||
case GeneralNameType.EdiPartyName:
|
||||
needsConstructedFlag = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (needsConstructedFlag &&
|
||||
(tag & DerSequenceReader.ConstructedFlag) == 0)
|
||||
{
|
||||
// All of the SEQUENCE types require the constructed bit,
|
||||
// or OpenSSL will have refused to print it.
|
||||
return null;
|
||||
}
|
||||
|
||||
switch (nameType)
|
||||
{
|
||||
case GeneralNameType.OtherName:
|
||||
segments.Add("othername:<unsupported>");
|
||||
altNameReader.SkipValue();
|
||||
break;
|
||||
case GeneralNameType.Rfc822Name:
|
||||
segments.Add("email:");
|
||||
segments.Add(altNameReader.ReadIA5String());
|
||||
break;
|
||||
case GeneralNameType.DnsName:
|
||||
segments.Add("DNS:");
|
||||
segments.Add(altNameReader.ReadIA5String());
|
||||
break;
|
||||
case GeneralNameType.X400Address:
|
||||
segments.Add("X400Name:<unsupported>");
|
||||
altNameReader.SkipValue();
|
||||
break;
|
||||
case GeneralNameType.DirectoryName:
|
||||
// OpenSSL supports printing one of these, but the logic lives in X509Certificates,
|
||||
// and it isn't very common. So we'll skip this one until someone asks for it.
|
||||
segments.Add("DirName:<unsupported>");
|
||||
altNameReader.SkipValue();
|
||||
break;
|
||||
case GeneralNameType.EdiPartyName:
|
||||
segments.Add("EdiPartyName:<unsupported>");
|
||||
altNameReader.SkipValue();
|
||||
break;
|
||||
case GeneralNameType.UniformResourceIdentifier:
|
||||
segments.Add("URI:");
|
||||
segments.Add(altNameReader.ReadIA5String());
|
||||
break;
|
||||
case GeneralNameType.IPAddress:
|
||||
segments.Add("IP Address");
|
||||
|
||||
byte[] ipAddressBytes = altNameReader.ReadOctetString();
|
||||
|
||||
if (ipAddressBytes.Length == 4)
|
||||
{
|
||||
// Add the colon and dotted-decimal representation of IPv4.
|
||||
segments.Add(
|
||||
$":{ipAddressBytes[0]}.{ipAddressBytes[1]}.{ipAddressBytes[2]}.{ipAddressBytes[3]}");
|
||||
}
|
||||
else if (ipAddressBytes.Length == 16)
|
||||
{
|
||||
// Print the IP Address value as colon separated UInt16 hex values without leading zeroes.
|
||||
// 20 01 0D B8 AC 10 FE 01 00 00 00 00 00 00 00 00
|
||||
//
|
||||
// IP Address:2001:DB8:AC10:FE01:0:0:0:0
|
||||
for (int i = 0; i < ipAddressBytes.Length; i += 2)
|
||||
{
|
||||
segments.Add($":{ipAddressBytes[i] << 8 | ipAddressBytes[i + 1]:X}");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
segments.Add(":<invalid>");
|
||||
}
|
||||
|
||||
break;
|
||||
case GeneralNameType.RegisteredId:
|
||||
segments.Add("Registered ID:");
|
||||
segments.Add(altNameReader.ReadOidAsString());
|
||||
break;
|
||||
default:
|
||||
// A new extension to GeneralName could legitimately hit this,
|
||||
// but it's correct to say that until we know what that is that
|
||||
// the pretty-print has failed, and we should fall back to hex.
|
||||
//
|
||||
// But it could also simply be poorly encoded user data.
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
return string.Concat(segments);
|
||||
}
|
||||
catch (CryptographicException)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
// 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.Linq;
|
||||
using System.Security.Cryptography;
|
||||
|
||||
namespace Internal.Cryptography
|
||||
{
|
||||
internal static partial class OidLookup
|
||||
{
|
||||
private static bool ShouldUseCache(OidGroup oidGroup)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
private static string NativeOidToFriendlyName(string oid, OidGroup oidGroup, bool fallBackToAllGroups)
|
||||
{
|
||||
string friendlyName;
|
||||
|
||||
if (s_extraOidToFriendlyName.TryGetValue(oid, out friendlyName))
|
||||
{
|
||||
return friendlyName;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static string NativeFriendlyNameToOid(string friendlyName, OidGroup oidGroup, bool fallBackToAllGroups)
|
||||
{
|
||||
string oid;
|
||||
|
||||
if (s_extraFriendlyNameToOid.TryGetValue(friendlyName, out oid))
|
||||
{
|
||||
return oid;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
// -----------------------------
|
||||
// ---- PAL layer ends here ----
|
||||
// -----------------------------
|
||||
|
||||
// There are places inside the framework where Oid.FromFriendlyName is called
|
||||
// (to pass in an OID group restriction for Windows) and an exception is not tolerated.
|
||||
//
|
||||
// The main place for this is X509Extension's internal ctor.
|
||||
//
|
||||
// These Name/OID pairs are not "universal", in that either Windows localizes it or Windows
|
||||
// and OpenSSL produce different answers. Since the answers originally came from OpenSSL
|
||||
// on macOS, this preserves the OpenSSL names.
|
||||
private static readonly Dictionary<string, string> s_extraFriendlyNameToOid =
|
||||
new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
|
||||
{
|
||||
{ "X509v3 Subject Key Identifier", "2.5.29.14" },
|
||||
{ "X509v3 Key Usage", "2.5.29.15" },
|
||||
{ "X509v3 Basic Constraints", "2.5.29.19" },
|
||||
{ "X509v3 Extended Key Usage", "2.5.29.37" },
|
||||
};
|
||||
|
||||
private static readonly Dictionary<string, string> s_extraOidToFriendlyName =
|
||||
s_extraFriendlyNameToOid.ToDictionary(kvp => kvp.Value, kvp => kvp.Key);
|
||||
}
|
||||
}
|
||||
@@ -1,64 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
@@ -141,7 +82,10 @@
|
||||
<data name="Argument_InvalidValue" xml:space="preserve">
|
||||
<value>Value was invalid.</value>
|
||||
</data>
|
||||
<data name="Cryptography_Der_Invalid_Encoding" xml:space="preserve">
|
||||
<value>ASN1 corrupted data.</value>
|
||||
</data>
|
||||
<data name="ObjectDisposed_Generic" xml:space="preserve">
|
||||
<value>Cannot access a disposed object.</value>
|
||||
</data>
|
||||
</root>
|
||||
</root>
|
||||
|
||||
@@ -5,16 +5,16 @@
|
||||
<ProjectGuid>{AA81E343-5E54-40B0-9381-C459419BE780}</ProjectGuid>
|
||||
<AssemblyName>System.Security.Cryptography.Encoding</AssemblyName>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<IsPartialFacadeAssembly Condition="'$(TargetGroup)' == 'net463'">true</IsPartialFacadeAssembly>
|
||||
<ResourcesSourceOutputDirectory Condition="'$(TargetGroup)' == 'net463'">None</ResourcesSourceOutputDirectory>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='net463-Windows_NT-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='net463-Windows_NT-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netcoreapp-Unix-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netcoreapp-Unix-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netcoreapp-Windows_NT-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netcoreapp-Windows_NT-Release|AnyCPU'" />
|
||||
<ItemGroup Condition="'$(TargetGroup)' == 'netcoreapp'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-OSX-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-OSX-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Unix-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Unix-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Windows_NT-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Windows_NT-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'uap-Windows_NT-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'uap-Windows_NT-Release|AnyCPU'" />
|
||||
<ItemGroup>
|
||||
<Compile Include="Internal\Cryptography\AsnFormatter.cs" />
|
||||
<Compile Include="Internal\Cryptography\Helpers.cs" />
|
||||
<Compile Include="Internal\Cryptography\OidLookup.cs" />
|
||||
@@ -27,7 +27,7 @@
|
||||
<Compile Include="System\Security\Cryptography\OidEnumerator.cs" />
|
||||
<Compile Include="System\Security\Cryptography\OidGroup.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition=" '$(TargetsWindows)' == 'true' And '$(TargetGroup)' == 'netcoreapp'">
|
||||
<ItemGroup Condition=" '$(TargetsWindows)' == 'true'">
|
||||
<Compile Include="Internal\Cryptography\AsnFormatter.Windows.cs" />
|
||||
<Compile Include="Internal\Cryptography\CngAsnFormatter.cs" />
|
||||
<Compile Include="Internal\Cryptography\OidLookup.Windows.cs" />
|
||||
@@ -50,7 +50,7 @@
|
||||
<Link>Common\Interop\Windows\Interop.Libraries.cs</Link>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition=" '$(TargetsUnix)' == 'true' ">
|
||||
<ItemGroup Condition=" '$(TargetsUnix)' == 'true' AND '$(TargetsOSX)' != 'true' ">
|
||||
<Compile Include="Internal\Cryptography\AsnFormatter.Unix.cs" />
|
||||
<Compile Include="Internal\Cryptography\OidLookup.Unix.cs" />
|
||||
<Compile Include="Internal\Cryptography\OpenSslAsnFormatter.cs" />
|
||||
@@ -88,9 +88,12 @@
|
||||
<Link>Common\Microsoft\Win32\SafeHandles\X509ExtensionSafeHandles.Unix.cs</Link>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(TargetGroup)' == 'net463'">
|
||||
<TargetingPackReference Include="mscorlib" />
|
||||
<TargetingPackReference Include="System" />
|
||||
<ItemGroup Condition=" '$(TargetsOSX)' == 'true' ">
|
||||
<Compile Include="$(CommonPath)\System\Security\Cryptography\DerSequenceReader.cs">
|
||||
<Link>Common\System\Security\Cryptography\DerSequenceReader.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="Internal\Cryptography\AsnFormatter.OSX.cs" />
|
||||
<Compile Include="Internal\Cryptography\OidLookup.OSX.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System.Collections" />
|
||||
@@ -104,5 +107,9 @@
|
||||
<Reference Include="System.Runtime.InteropServices" />
|
||||
<Reference Include="System.Security.Cryptography.Primitives" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition=" '$(TargetsOSX)' == 'true' ">
|
||||
<Reference Include="System.Runtime.Numerics" />
|
||||
<Reference Include="System.Threading" />
|
||||
</ItemGroup>
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
|
||||
</Project>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using Test.Cryptography;
|
||||
using Xunit;
|
||||
|
||||
namespace System.Security.Cryptography.Encoding.Tests
|
||||
@@ -66,5 +67,65 @@ namespace System.Security.Cryptography.Encoding.Tests
|
||||
|
||||
Assert.Equal(new[] { "example.org", "sub.example.org", "*.sub.example.org" }, output);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[PlatformSpecific(TestPlatforms.AnyUnix)]
|
||||
public static void TestSubjectAlternativeName_Unix()
|
||||
{
|
||||
byte[] sanExtension = (
|
||||
"3081D3A027060A2B0601040182371402" +
|
||||
"03A0190C177375626A65637475706E31" +
|
||||
"406578616D706C652E6F726781157361" +
|
||||
"6E656D61696C31406578616D706C652E" +
|
||||
"6F72678218646E73312E7375626A6563" +
|
||||
"742E6578616D706C652E6F7267A30630" +
|
||||
"0441027573A500863168747470733A2F" +
|
||||
"2F7777772E6578616D706C652E6F7267" +
|
||||
"2F706174682F746F2F612F7265736F75" +
|
||||
"72636523616E63686F7287047F000001" +
|
||||
"871020010DB8AC10FE01000000000000" +
|
||||
"0000870F20010DB8AC10FE0100000000" +
|
||||
"0000008704FFFFFFFF8704020F636488" +
|
||||
"052901020203").HexToByteArray();
|
||||
|
||||
AsnEncodedData asnData = new AsnEncodedData(
|
||||
new Oid("2.5.29.17"),
|
||||
sanExtension);
|
||||
|
||||
string s = asnData.Format(false);
|
||||
|
||||
string expected = string.Join(
|
||||
", ",
|
||||
// Choice[0]: OtherName
|
||||
"othername:<unsupported>",
|
||||
// Choice[1]: Rfc822Name (EmailAddress)
|
||||
"email:sanemail1@example.org",
|
||||
// Choice[2]: DnsName
|
||||
"DNS:dns1.subject.example.org",
|
||||
// Choice[3]: X400Name
|
||||
"X400Name:<unsupported>",
|
||||
// Skip Choice[4]: DirName
|
||||
// (Supported by OpenSSL, but not by our Apple version)
|
||||
// Choice[5]: EdiName
|
||||
"EdiPartyName:<unsupported>",
|
||||
// Choice[6]: URI
|
||||
"URI:https://www.example.org/path/to/a/resource#anchor",
|
||||
// Choice[7]: IPAddress (IPv4)
|
||||
"IP Address:127.0.0.1",
|
||||
// Choice[7]: IPAddress (IPv6)
|
||||
"IP Address:2001:DB8:AC10:FE01:0:0:0:0",
|
||||
// Choice[7]: IPAddress (unknown type)
|
||||
"IP Address:<invalid>",
|
||||
// Choice[7]: IPAddress (IPv4, longer string)
|
||||
"IP Address:255.255.255.255",
|
||||
// Choice[7]: IPAddress (IPv4, medium string)
|
||||
// Note that between this, 127.0.0.1, and 255.255.255.255 all fields
|
||||
// had both length-1 and length-3 (and some had length-2)
|
||||
"IP Address:2.15.99.100",
|
||||
// Choice[8]: RegisteredID
|
||||
"Registered ID:1.1.1.2.2.3");
|
||||
|
||||
Assert.Equal(expected, s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<BuildConfigurations>
|
||||
netstandard1.3-Unix;
|
||||
netstandard1.3-Windows_NT;
|
||||
netstandard-Unix;
|
||||
netstandard-Windows_NT;
|
||||
</BuildConfigurations>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using Xunit;
|
||||
|
||||
namespace System.Security.Cryptography.Encoding.Tests
|
||||
@@ -16,11 +17,9 @@ namespace System.Security.Cryptography.Encoding.Tests
|
||||
Assert.Equal("", oid.Value);
|
||||
Assert.Null(oid.FriendlyName);
|
||||
|
||||
#if netstandard17
|
||||
oid = new Oid();
|
||||
Assert.Null(oid.Value);
|
||||
Assert.Null(oid.FriendlyName);
|
||||
#endif
|
||||
}
|
||||
|
||||
[Theory]
|
||||
@@ -181,7 +180,7 @@ namespace System.Security.Cryptography.Encoding.Tests
|
||||
|
||||
[Theory]
|
||||
[MemberData(nameof(ValidOidFriendlyNameHashAlgorithmPairs))]
|
||||
[PlatformSpecific(TestPlatforms.Windows)]
|
||||
[PlatformSpecific(TestPlatforms.Windows)] // Uses P/Invokes to get the Oid lookup table
|
||||
public static void LookupOidByValue_Method_WrongGroup(string oidValue, string friendlyName)
|
||||
{
|
||||
// Oid group is implemented strictly - no fallback to OidGroup.All as with many other parts of Crypto.
|
||||
@@ -237,7 +236,7 @@ namespace System.Security.Cryptography.Encoding.Tests
|
||||
|
||||
[Theory]
|
||||
[MemberData(nameof(ValidOidFriendlyNameHashAlgorithmPairs))]
|
||||
[PlatformSpecific(TestPlatforms.Windows)]
|
||||
[PlatformSpecific(TestPlatforms.Windows)] // Uses P/Invokes to get the Oid lookup table
|
||||
public static void LookupOidByFriendlyName_Method_WrongGroup(string oidValue, string friendlyName)
|
||||
{
|
||||
// Oid group is implemented strictly - no fallback to OidGroup.All as with many other parts of Crypto.
|
||||
@@ -259,27 +258,67 @@ namespace System.Security.Cryptography.Encoding.Tests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[PlatformSpecific(TestPlatforms.AnyUnix)]
|
||||
[PlatformSpecific(TestPlatforms.AnyUnix)] // Uses P/Invokes to search Oid in the lookup table
|
||||
public static void LookupOidByValue_Method_UnixOnly()
|
||||
{
|
||||
// This needs to be an OID not in the static lookup table. The purpose is to verify the
|
||||
// NativeOidToFriendlyName fallback for Unix. For Windows this is accomplished by
|
||||
// using FromOidValue with an OidGroup other than OidGroup.All.
|
||||
|
||||
Oid oid = Oid.FromOidValue(ObsoleteSmime3desWrap_Oid, OidGroup.All);
|
||||
|
||||
Oid oid;
|
||||
|
||||
try
|
||||
{
|
||||
oid = Oid.FromOidValue(ObsoleteSmime3desWrap_Oid, OidGroup.All);
|
||||
}
|
||||
catch (CryptographicException)
|
||||
{
|
||||
bool isMac = RuntimeInformation.IsOSPlatform(OSPlatform.OSX);
|
||||
|
||||
Assert.True(isMac, "Exception is only raised on macOS");
|
||||
|
||||
if (isMac)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
Assert.Equal(ObsoleteSmime3desWrap_Oid, oid.Value);
|
||||
Assert.Equal(ObsoleteSmime3desWrap_Name, oid.FriendlyName);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[PlatformSpecific(TestPlatforms.AnyUnix)]
|
||||
[PlatformSpecific(TestPlatforms.AnyUnix)] // Uses P/Invokes to search Oid in the lookup table
|
||||
public static void LookupOidByFriendlyName_Method_UnixOnly()
|
||||
{
|
||||
// This needs to be a name not in the static lookup table. The purpose is to verify the
|
||||
// NativeFriendlyNameToOid fallback for Unix. For Windows this is accomplished by
|
||||
// using FromOidValue with an OidGroup other than OidGroup.All.
|
||||
Oid oid = Oid.FromFriendlyName(ObsoleteSmime3desWrap_Name, OidGroup.All);
|
||||
Oid oid;
|
||||
|
||||
try
|
||||
{
|
||||
oid = Oid.FromFriendlyName(ObsoleteSmime3desWrap_Name, OidGroup.All);
|
||||
}
|
||||
catch (CryptographicException)
|
||||
{
|
||||
bool isMac = RuntimeInformation.IsOSPlatform(OSPlatform.OSX);
|
||||
|
||||
Assert.True(isMac, "Exception is only raised on macOS");
|
||||
|
||||
if (isMac)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
Assert.Equal(ObsoleteSmime3desWrap_Oid, oid.Value);
|
||||
Assert.Equal(ObsoleteSmime3desWrap_Name, oid.FriendlyName);
|
||||
|
||||
@@ -1,64 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
@@ -120,6 +61,9 @@
|
||||
<data name="Argument_InvalidOidValue" xml:space="preserve">
|
||||
<value>The OID value was invalid.</value>
|
||||
</data>
|
||||
<data name="Cryptography_Der_Invalid_Encoding" xml:space="preserve">
|
||||
<value>ASN1 corrupted data.</value>
|
||||
</data>
|
||||
<data name="Cryptography_Invalid_IA5String" xml:space="preserve">
|
||||
<value>The string contains a character not in the 7 bit ASCII character set.</value>
|
||||
</data>
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
<?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" />
|
||||
<ItemGroup>
|
||||
<Project Include="System.Security.Cryptography.Encoding.Tests.csproj">
|
||||
<OSGroup>Unix</OSGroup>
|
||||
</Project>
|
||||
<Project Include="System.Security.Cryptography.Encoding.Tests.csproj">
|
||||
<OSGroup>Windows_NT</OSGroup>
|
||||
<TestTFMs>netcoreapp;net463</TestTFMs>
|
||||
</Project>
|
||||
<Project Include="System.Security.Cryptography.Encoding.Tests.csproj">
|
||||
<TargetGroup>netstandard1.3</TargetGroup>
|
||||
<OSGroup>Unix</OSGroup>
|
||||
<TestTFMs>netcoreapp1.0</TestTFMs>
|
||||
</Project>
|
||||
<Project Include="System.Security.Cryptography.Encoding.Tests.csproj">
|
||||
<TargetGroup>netstandard1.3</TargetGroup>
|
||||
<OSGroup>Windows_NT</OSGroup>
|
||||
<TestTFMs>netcoreapp1.0</TestTFMs>
|
||||
</Project>
|
||||
</ItemGroup>
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.traversal.targets))\dir.traversal.targets" />
|
||||
</Project>
|
||||
@@ -4,19 +4,15 @@
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>{0581E9FA-D639-4B88-96D8-D092760F90B0}</ProjectGuid>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<DefineConstants Condition="'$(TargetGroup)'==''">$(DefineConstants);netstandard17</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard-Unix-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard-Unix-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard-Windows_NT-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard-Windows_NT-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard1.3-Unix-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard1.3-Unix-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard1.3-Windows_NT-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard1.3-Windows_NT-Release|AnyCPU'" />
|
||||
<ItemGroup>
|
||||
<Compile Include="AsnEncodedData.cs" />
|
||||
<Compile Include="AsnEncodedDataCollectionTests.cs" />
|
||||
<Compile Include="Base64TransformsTests.cs" />
|
||||
<Compile Include="DerEncoderTests.cs" />
|
||||
<Compile Include="DerSequenceReaderTests.cs" />
|
||||
<Compile Include="Oid.cs" />
|
||||
@@ -31,8 +27,5 @@
|
||||
<Link>CommonTest\System\Security\Cryptography\ByteUtils.cs</Link>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(TargetGroup)'=='netstandard'">
|
||||
<Compile Include="Base64TransformsTests.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
|
||||
</Project>
|
||||
Reference in New Issue
Block a user