Transition to netstandard.

- dotnet5.X => netstandard1.y (where y = x-1).
- DNXCore50 => netstandardapp1.5.
- Applied the same changes to ifdefs.
This commit is contained in:
N. Taylor Mullen 2016-03-01 13:31:31 -08:00
parent 5cf18e31e7
commit d33c2ac377
37 changed files with 134 additions and 87 deletions

View File

@ -9,7 +9,7 @@ using System.Security.Cryptography;
using Microsoft.AspNetCore.Cryptography.Cng; using Microsoft.AspNetCore.Cryptography.Cng;
using Microsoft.AspNetCore.Cryptography.Internal; using Microsoft.AspNetCore.Cryptography.Internal;
#if !DOTNET5_4 #if !NETSTANDARD1_3
using System.Runtime.ConstrainedExecution; using System.Runtime.ConstrainedExecution;
#endif #endif
@ -73,7 +73,7 @@ namespace Microsoft.AspNetCore.Cryptography
} }
[MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)]
#if !DOTNET5_4 #if !NETSTANDARD1_3
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
#endif #endif
public static bool TimeConstantBuffersAreEqual(byte* bufA, byte* bufB, uint count) public static bool TimeConstantBuffersAreEqual(byte* bufA, byte* bufB, uint count)

View File

@ -4,7 +4,7 @@
using System; using System;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
#if DOTNET5_4 #if NETSTANDARD1_3
namespace Microsoft.Win32.SafeHandles namespace Microsoft.Win32.SafeHandles
{ {
internal abstract class SafeHandleZeroOrMinusOneIsInvalid : SafeHandle internal abstract class SafeHandleZeroOrMinusOneIsInvalid : SafeHandle

View File

@ -6,7 +6,7 @@ using System.Runtime.InteropServices;
using System.Security; using System.Security;
using Microsoft.Win32.SafeHandles; using Microsoft.Win32.SafeHandles;
#if !DOTNET5_4 #if !NETSTANDARD1_3
using System.Runtime.ConstrainedExecution; using System.Runtime.ConstrainedExecution;
#endif #endif
@ -127,12 +127,12 @@ namespace Microsoft.AspNetCore.Cryptography.SafeHandles
return UnsafeNativeMethods.FreeLibrary(handle); return UnsafeNativeMethods.FreeLibrary(handle);
} }
#if !DOTNET5_4 #if !NETSTANDARD1_3
[SuppressUnmanagedCodeSecurity] [SuppressUnmanagedCodeSecurity]
#endif #endif
private static class UnsafeNativeMethods private static class UnsafeNativeMethods
{ {
#if DOTNET5_4 #if NETSTANDARD1_3
private const string CORE_LIBRARY_LOADER_LIB = "api-ms-win-core-libraryloader-l1-1-0.dll"; private const string CORE_LIBRARY_LOADER_LIB = "api-ms-win-core-libraryloader-l1-1-0.dll";
private const string CORE_LOCALIZATION_LIB = "api-ms-win-core-localization-l1-2-0.dll"; private const string CORE_LOCALIZATION_LIB = "api-ms-win-core-localization-l1-2-0.dll";
#else #else
@ -140,7 +140,7 @@ namespace Microsoft.AspNetCore.Cryptography.SafeHandles
#endif #endif
// http://msdn.microsoft.com/en-us/library/windows/desktop/ms679351(v=vs.85).aspx // http://msdn.microsoft.com/en-us/library/windows/desktop/ms679351(v=vs.85).aspx
#if DOTNET5_4 #if NETSTANDARD1_3
[DllImport(CORE_LOCALIZATION_LIB, EntryPoint = "FormatMessageW", CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Unicode, SetLastError = true)] [DllImport(CORE_LOCALIZATION_LIB, EntryPoint = "FormatMessageW", CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Unicode, SetLastError = true)]
#else #else
[DllImport(KERNEL32_LIB, EntryPoint = "FormatMessageW", CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Unicode, SetLastError = true)] [DllImport(KERNEL32_LIB, EntryPoint = "FormatMessageW", CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Unicode, SetLastError = true)]
@ -157,7 +157,7 @@ namespace Microsoft.AspNetCore.Cryptography.SafeHandles
// http://msdn.microsoft.com/en-us/library/ms683152(v=vs.85).aspx // http://msdn.microsoft.com/en-us/library/ms683152(v=vs.85).aspx
[return: MarshalAs(UnmanagedType.Bool)] [return: MarshalAs(UnmanagedType.Bool)]
#if DOTNET5_4 #if NETSTANDARD1_3
[DllImport(CORE_LIBRARY_LOADER_LIB, CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Unicode)] [DllImport(CORE_LIBRARY_LOADER_LIB, CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Unicode)]
#else #else
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
@ -167,7 +167,7 @@ namespace Microsoft.AspNetCore.Cryptography.SafeHandles
// http://msdn.microsoft.com/en-us/library/ms683200(v=vs.85).aspx // http://msdn.microsoft.com/en-us/library/ms683200(v=vs.85).aspx
[return: MarshalAs(UnmanagedType.Bool)] [return: MarshalAs(UnmanagedType.Bool)]
#if DOTNET5_4 #if NETSTANDARD1_3
[DllImport(CORE_LIBRARY_LOADER_LIB, EntryPoint = "GetModuleHandleExW", CallingConvention = CallingConvention.Winapi, SetLastError = true)] [DllImport(CORE_LIBRARY_LOADER_LIB, EntryPoint = "GetModuleHandleExW", CallingConvention = CallingConvention.Winapi, SetLastError = true)]
#else #else
[DllImport(KERNEL32_LIB, EntryPoint = "GetModuleHandleExW", CallingConvention = CallingConvention.Winapi, SetLastError = true)] [DllImport(KERNEL32_LIB, EntryPoint = "GetModuleHandleExW", CallingConvention = CallingConvention.Winapi, SetLastError = true)]
@ -178,7 +178,7 @@ namespace Microsoft.AspNetCore.Cryptography.SafeHandles
[Out] out IntPtr phModule); [Out] out IntPtr phModule);
// http://msdn.microsoft.com/en-us/library/ms683212(v=vs.85).aspx // http://msdn.microsoft.com/en-us/library/ms683212(v=vs.85).aspx
#if DOTNET5_4 #if NETSTANDARD1_3
[DllImport(CORE_LIBRARY_LOADER_LIB, CallingConvention = CallingConvention.Winapi, SetLastError = true)] [DllImport(CORE_LIBRARY_LOADER_LIB, CallingConvention = CallingConvention.Winapi, SetLastError = true)]
#else #else
[DllImport(KERNEL32_LIB, CallingConvention = CallingConvention.Winapi, SetLastError = true)] [DllImport(KERNEL32_LIB, CallingConvention = CallingConvention.Winapi, SetLastError = true)]
@ -188,7 +188,7 @@ namespace Microsoft.AspNetCore.Cryptography.SafeHandles
[In, MarshalAs(UnmanagedType.LPStr)] string lpProcName); [In, MarshalAs(UnmanagedType.LPStr)] string lpProcName);
// http://msdn.microsoft.com/en-us/library/windows/desktop/ms684179(v=vs.85).aspx // http://msdn.microsoft.com/en-us/library/windows/desktop/ms684179(v=vs.85).aspx
#if DOTNET5_4 #if NETSTANDARD1_3
[DllImport(CORE_LIBRARY_LOADER_LIB, EntryPoint = "LoadLibraryExW", CallingConvention = CallingConvention.Winapi, SetLastError = true)] [DllImport(CORE_LIBRARY_LOADER_LIB, EntryPoint = "LoadLibraryExW", CallingConvention = CallingConvention.Winapi, SetLastError = true)]
#else #else
[DllImport(KERNEL32_LIB, EntryPoint = "LoadLibraryExW", CallingConvention = CallingConvention.Winapi, SetLastError = true)] [DllImport(KERNEL32_LIB, EntryPoint = "LoadLibraryExW", CallingConvention = CallingConvention.Winapi, SetLastError = true)]

View File

@ -4,7 +4,7 @@
using System; using System;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
#if !DOTNET5_4 #if !NETSTANDARD1_3
using System.Runtime.ConstrainedExecution; using System.Runtime.ConstrainedExecution;
#endif #endif
@ -41,7 +41,7 @@ namespace Microsoft.AspNetCore.Cryptography.SafeHandles
return newHandle; return newHandle;
} }
#if !DOTNET5_4 #if !NETSTANDARD1_3
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
#endif #endif
private void AllocateImpl(IntPtr cb) private void AllocateImpl(IntPtr cb)

View File

@ -6,7 +6,7 @@ using System.Runtime.CompilerServices;
using System.Threading; using System.Threading;
using Microsoft.AspNetCore.Cryptography.SafeHandles; using Microsoft.AspNetCore.Cryptography.SafeHandles;
#if !DOTNET5_4 #if !NETSTANDARD1_3
using System.Runtime.ConstrainedExecution; using System.Runtime.ConstrainedExecution;
#endif #endif
@ -15,7 +15,7 @@ namespace Microsoft.AspNetCore.Cryptography
internal unsafe static class UnsafeBufferUtil internal unsafe static class UnsafeBufferUtil
{ {
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
#if !DOTNET5_4 #if !NETSTANDARD1_3
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
#endif #endif
public static void BlockCopy(void* from, void* to, int byteCount) public static void BlockCopy(void* from, void* to, int byteCount)
@ -24,7 +24,7 @@ namespace Microsoft.AspNetCore.Cryptography
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
#if !DOTNET5_4 #if !NETSTANDARD1_3
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
#endif #endif
public static void BlockCopy(void* from, void* to, uint byteCount) public static void BlockCopy(void* from, void* to, uint byteCount)
@ -35,7 +35,7 @@ namespace Microsoft.AspNetCore.Cryptography
} }
} }
#if !DOTNET5_4 #if !NETSTANDARD1_3
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
#endif #endif
public static void BlockCopy(LocalAllocHandle from, void* to, uint byteCount) public static void BlockCopy(LocalAllocHandle from, void* to, uint byteCount)
@ -55,7 +55,7 @@ namespace Microsoft.AspNetCore.Cryptography
} }
} }
#if !DOTNET5_4 #if !NETSTANDARD1_3
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
#endif #endif
public static void BlockCopy(void* from, LocalAllocHandle to, uint byteCount) public static void BlockCopy(void* from, LocalAllocHandle to, uint byteCount)
@ -75,7 +75,7 @@ namespace Microsoft.AspNetCore.Cryptography
} }
} }
#if !DOTNET5_4 #if !NETSTANDARD1_3
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
#endif #endif
public static void BlockCopy(LocalAllocHandle from, LocalAllocHandle to, IntPtr length) public static void BlockCopy(LocalAllocHandle from, LocalAllocHandle to, IntPtr length)
@ -116,7 +116,7 @@ namespace Microsoft.AspNetCore.Cryptography
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
private static void BlockCopyCore(byte* from, byte* to, uint byteCount) private static void BlockCopyCore(byte* from, byte* to, uint byteCount)
{ {
#if DOTNET5_4 #if NETSTANDARD1_3
Buffer.MemoryCopy(from, to, (ulong)byteCount, (ulong)byteCount); Buffer.MemoryCopy(from, to, (ulong)byteCount, (ulong)byteCount);
#else #else
while (byteCount-- != 0) while (byteCount-- != 0)
@ -129,7 +129,7 @@ namespace Microsoft.AspNetCore.Cryptography
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
private static void BlockCopyCore(byte* from, byte* to, ulong byteCount) private static void BlockCopyCore(byte* from, byte* to, ulong byteCount)
{ {
#if DOTNET5_4 #if NETSTANDARD1_3
Buffer.MemoryCopy(from, to, byteCount, byteCount); Buffer.MemoryCopy(from, to, byteCount, byteCount);
#else #else
while (byteCount-- != 0) while (byteCount-- != 0)
@ -143,7 +143,7 @@ namespace Microsoft.AspNetCore.Cryptography
/// Securely clears a memory buffer. /// Securely clears a memory buffer.
/// </summary> /// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
#if !DOTNET5_4 #if !NETSTANDARD1_3
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
#endif #endif
public static void SecureZeroMemory(byte* buffer, int byteCount) public static void SecureZeroMemory(byte* buffer, int byteCount)
@ -155,7 +155,7 @@ namespace Microsoft.AspNetCore.Cryptography
/// Securely clears a memory buffer. /// Securely clears a memory buffer.
/// </summary> /// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
#if !DOTNET5_4 #if !NETSTANDARD1_3
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
#endif #endif
public static void SecureZeroMemory(byte* buffer, uint byteCount) public static void SecureZeroMemory(byte* buffer, uint byteCount)
@ -176,7 +176,7 @@ namespace Microsoft.AspNetCore.Cryptography
/// Securely clears a memory buffer. /// Securely clears a memory buffer.
/// </summary> /// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
#if !DOTNET5_4 #if !NETSTANDARD1_3
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
#endif #endif
public static void SecureZeroMemory(byte* buffer, ulong byteCount) public static void SecureZeroMemory(byte* buffer, ulong byteCount)
@ -196,7 +196,7 @@ namespace Microsoft.AspNetCore.Cryptography
/// <summary> /// <summary>
/// Securely clears a memory buffer. /// Securely clears a memory buffer.
/// </summary> /// </summary>
#if !DOTNET5_4 #if !NETSTANDARD1_3
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
#endif #endif
public static void SecureZeroMemory(byte* buffer, IntPtr length) public static void SecureZeroMemory(byte* buffer, IntPtr length)

View File

@ -12,13 +12,13 @@ using Microsoft.AspNetCore.Cryptography.Cng;
using Microsoft.AspNetCore.Cryptography.SafeHandles; using Microsoft.AspNetCore.Cryptography.SafeHandles;
using Microsoft.Win32.SafeHandles; using Microsoft.Win32.SafeHandles;
#if !DOTNET5_4 #if !NETSTANDARD1_3
using System.Runtime.ConstrainedExecution; using System.Runtime.ConstrainedExecution;
#endif #endif
namespace Microsoft.AspNetCore.Cryptography namespace Microsoft.AspNetCore.Cryptography
{ {
#if !DOTNET5_4 #if !NETSTANDARD1_3
[SuppressUnmanagedCodeSecurity] [SuppressUnmanagedCodeSecurity]
#endif #endif
internal unsafe static class UnsafeNativeMethods internal unsafe static class UnsafeNativeMethods
@ -87,7 +87,7 @@ namespace Microsoft.AspNetCore.Cryptography
[In] uint dwFlags); [In] uint dwFlags);
[DllImport(BCRYPT_LIB, CallingConvention = CallingConvention.Winapi)] [DllImport(BCRYPT_LIB, CallingConvention = CallingConvention.Winapi)]
#if !DOTNET5_4 #if !NETSTANDARD1_3
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
#endif #endif
// http://msdn.microsoft.com/en-us/library/windows/desktop/aa375399(v=vs.85).aspx // http://msdn.microsoft.com/en-us/library/windows/desktop/aa375399(v=vs.85).aspx
@ -95,7 +95,7 @@ namespace Microsoft.AspNetCore.Cryptography
[In] IntPtr hHash); [In] IntPtr hHash);
[DllImport(BCRYPT_LIB, CallingConvention = CallingConvention.Winapi)] [DllImport(BCRYPT_LIB, CallingConvention = CallingConvention.Winapi)]
#if !DOTNET5_4 #if !NETSTANDARD1_3
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
#endif #endif
// http://msdn.microsoft.com/en-us/library/windows/desktop/aa375404(v=vs.85).aspx // http://msdn.microsoft.com/en-us/library/windows/desktop/aa375404(v=vs.85).aspx
@ -249,7 +249,7 @@ namespace Microsoft.AspNetCore.Cryptography
*/ */
[DllImport(NCRYPT_LIB, CallingConvention = CallingConvention.Winapi)] [DllImport(NCRYPT_LIB, CallingConvention = CallingConvention.Winapi)]
#if !DOTNET5_4 #if !NETSTANDARD1_3
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
#endif #endif
// http://msdn.microsoft.com/en-us/library/windows/desktop/hh706799(v=vs.85).aspx // http://msdn.microsoft.com/en-us/library/windows/desktop/hh706799(v=vs.85).aspx

View File

@ -8,21 +8,26 @@
"dependencies": {}, "dependencies": {},
"frameworks": { "frameworks": {
"net451": {}, "net451": {},
"dotnet5.4": { "netstandard1.3": {
"dependencies": { "dependencies": {
"System.Diagnostics.Debug": "4.0.11-*", "System.Diagnostics.Debug": "4.0.11-*",
"System.Runtime.Handles": "4.0.1-*", "System.Runtime.Handles": "4.0.1-*",
"System.Runtime.InteropServices": "4.1.0-*", "System.Runtime.InteropServices": "4.1.0-*",
"System.Security.Cryptography.Primitives": "4.0.0-*", "System.Security.Cryptography.Primitives": "4.0.0-*",
"System.Threading": "4.0.11-*" "System.Threading": "4.0.11-*"
} },
"imports": [
"dotnet5.4"
]
} }
}, },
"compilationOptions": { "compilationOptions": {
"allowUnsafe": true, "allowUnsafe": true,
"warningsAsErrors": true, "warningsAsErrors": true,
"keyFile": "../../tools/Key.snk", "keyFile": "../../tools/Key.snk",
"nowarn": [ "CS1591" ], "nowarn": [
"CS1591"
],
"xmlDoc": true "xmlDoc": true
} }
} }

View File

@ -10,19 +10,24 @@
}, },
"frameworks": { "frameworks": {
"net451": {}, "net451": {},
"dotnet5.4": { "netstandard1.3": {
"dependencies": { "dependencies": {
"System.Runtime.Extensions": "4.1.0-*", "System.Runtime.Extensions": "4.1.0-*",
"System.Security.Cryptography.Algorithms": "4.0.0-*", "System.Security.Cryptography.Algorithms": "4.0.0-*",
"System.Text.Encoding.Extensions": "4.0.11-*" "System.Text.Encoding.Extensions": "4.0.11-*"
} },
"imports": [
"dotnet5.4"
]
} }
}, },
"compilationOptions": { "compilationOptions": {
"allowUnsafe": true, "allowUnsafe": true,
"warningsAsErrors": true, "warningsAsErrors": true,
"keyFile": "../../tools/Key.snk", "keyFile": "../../tools/Key.snk",
"nowarn": [ "CS1591" ], "nowarn": [
"CS1591"
],
"xmlDoc": true "xmlDoc": true
} }
} }

View File

@ -14,17 +14,22 @@
}, },
"frameworks": { "frameworks": {
"net451": {}, "net451": {},
"dotnet5.4": { "netstandard1.3": {
"dependencies": { "dependencies": {
"System.ComponentModel": "4.0.1-*", "System.ComponentModel": "4.0.1-*",
"System.Diagnostics.Debug": "4.0.11-*" "System.Diagnostics.Debug": "4.0.11-*"
} },
"imports": [
"dotnet5.4"
]
} }
}, },
"compilationOptions": { "compilationOptions": {
"warningsAsErrors": true, "warningsAsErrors": true,
"keyFile": "../../tools/Key.snk", "keyFile": "../../tools/Key.snk",
"nowarn": [ "CS1591" ], "nowarn": [
"CS1591"
],
"xmlDoc": true "xmlDoc": true
} }
} }

View File

@ -15,12 +15,18 @@
}, },
"frameworks": { "frameworks": {
"net451": {}, "net451": {},
"dotnet5.4": {} "netstandard1.3": {
"imports": [
"dotnet5.4"
]
}
}, },
"compilationOptions": { "compilationOptions": {
"warningsAsErrors": true, "warningsAsErrors": true,
"keyFile": "../../tools/Key.snk", "keyFile": "../../tools/Key.snk",
"nowarn": [ "CS1591" ], "nowarn": [
"CS1591"
],
"xmlDoc": true "xmlDoc": true
} }
} }

View File

@ -8,11 +8,14 @@
"dependencies": {}, "dependencies": {},
"frameworks": { "frameworks": {
"net451": {}, "net451": {},
"dotnet5.4": { "netstandard1.3": {
"dependencies": { "dependencies": {
"System.Security.Cryptography.Primitives": "4.0.0-*", "System.Security.Cryptography.Primitives": "4.0.0-*",
"System.Text.Encoding.Extensions": "4.0.11-*" "System.Text.Encoding.Extensions": "4.0.11-*"
} },
"imports": [
"dotnet5.4"
]
} }
}, },
"shared": "**\\*.cs", "shared": "**\\*.cs",

View File

@ -119,7 +119,7 @@ namespace Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption
if (EncryptionAlgorithmType == typeof(Aes)) if (EncryptionAlgorithmType == typeof(Aes))
{ {
Func<Aes> factory = null; Func<Aes> factory = null;
#if !DOTNET5_4 #if !NETSTANDARD1_3
if (OSVersionUtil.IsWindows()) if (OSVersionUtil.IsWindows())
{ {
// If we're on desktop CLR and running on Windows, use the FIPS-compliant implementation. // If we're on desktop CLR and running on Windows, use the FIPS-compliant implementation.

View File

@ -78,7 +78,7 @@ namespace Microsoft.AspNetCore.DataProtection.Cng
}; };
DATA_BLOB dataOut = default(DATA_BLOB); DATA_BLOB dataOut = default(DATA_BLOB);
#if !DOTNET5_4 #if !NETSTANDARD1_3
RuntimeHelpers.PrepareConstrainedRegions(); RuntimeHelpers.PrepareConstrainedRegions();
#endif #endif
try try
@ -168,7 +168,7 @@ namespace Microsoft.AspNetCore.DataProtection.Cng
fixed (byte* pbRetVal = retVal) fixed (byte* pbRetVal = retVal)
{ {
bool handleAcquired = false; bool handleAcquired = false;
#if !DOTNET5_4 #if !NETSTANDARD1_3
RuntimeHelpers.PrepareConstrainedRegions(); RuntimeHelpers.PrepareConstrainedRegions();
#endif #endif
try try
@ -218,7 +218,7 @@ namespace Microsoft.AspNetCore.DataProtection.Cng
}; };
DATA_BLOB dataOut = default(DATA_BLOB); DATA_BLOB dataOut = default(DATA_BLOB);
#if !DOTNET5_4 #if !NETSTANDARD1_3
RuntimeHelpers.PrepareConstrainedRegions(); RuntimeHelpers.PrepareConstrainedRegions();
#endif #endif
try try
@ -291,7 +291,7 @@ namespace Microsoft.AspNetCore.DataProtection.Cng
using (unencryptedPayloadHandle) using (unencryptedPayloadHandle)
{ {
bool handleAcquired = false; bool handleAcquired = false;
#if !DOTNET5_4 #if !NETSTANDARD1_3
RuntimeHelpers.PrepareConstrainedRegions(); RuntimeHelpers.PrepareConstrainedRegions();
#endif #endif
try try

View File

@ -11,13 +11,13 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Win32; using Microsoft.Win32;
#if !DOTNET5_4 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml #if !NETSTANDARD1_3 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml
using System.Security.Cryptography.X509Certificates; using System.Security.Cryptography.X509Certificates;
#endif #endif
namespace Microsoft.AspNetCore.DataProtection namespace Microsoft.AspNetCore.DataProtection
{ {
#if !DOTNET5_4 #if !NETSTANDARD1_3
/// <summary> /// <summary>
/// Provides access to configuration for the data protection system, which allows the /// Provides access to configuration for the data protection system, which allows the
/// developer to configure default cryptographic algorithms, key storage locations, /// developer to configure default cryptographic algorithms, key storage locations,
@ -209,7 +209,7 @@ namespace Microsoft.AspNetCore.DataProtection
return this; return this;
} }
#if !DOTNET5_4 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml #if !NETSTANDARD1_3 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml
/// <summary> /// <summary>
/// Configures keys to be encrypted to a given certificate before being persisted to storage. /// Configures keys to be encrypted to a given certificate before being persisted to storage.

View File

@ -13,7 +13,7 @@ using Microsoft.AspNetCore.DataProtection.XmlEncryption;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Microsoft.Win32; using Microsoft.Win32;
#if !DOTNET5_4 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml #if !NETSTANDARD1_3 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml
using System.Security.Cryptography.X509Certificates; using System.Security.Cryptography.X509Certificates;
#endif #endif
@ -69,7 +69,7 @@ namespace Microsoft.Extensions.DependencyInjection
return ServiceDescriptor.Singleton<IAuthenticatedEncryptorConfiguration>(options.ToConfiguration); return ServiceDescriptor.Singleton<IAuthenticatedEncryptorConfiguration>(options.ToConfiguration);
} }
#if !DOTNET5_4 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml #if !NETSTANDARD1_3 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml
/// <summary> /// <summary>
/// An <see cref="ICertificateResolver"/> backed by the default implementation. /// An <see cref="ICertificateResolver"/> backed by the default implementation.
/// </summary> /// </summary>
@ -118,7 +118,7 @@ namespace Microsoft.Extensions.DependencyInjection
return ServiceDescriptor.Singleton<IKeyManager>(services => new XmlKeyManager(services)); return ServiceDescriptor.Singleton<IKeyManager>(services => new XmlKeyManager(services));
} }
#if !DOTNET5_4 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml #if !NETSTANDARD1_3 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml
/// <summary> /// <summary>
/// An <see cref="IXmlEncryptor"/> backed by an X.509 certificate. /// An <see cref="IXmlEncryptor"/> backed by an X.509 certificate.

View File

@ -110,7 +110,7 @@ namespace Microsoft.Extensions.DependencyInjection
yield return DataProtectionServiceDescriptors.IDataProtectionProvider_Default(); yield return DataProtectionServiceDescriptors.IDataProtectionProvider_Default();
// Provide services required for XML encryption // Provide services required for XML encryption
#if !DOTNET5_4 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml #if !NETSTANDARD1_3 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml
yield return DataProtectionServiceDescriptors.ICertificateResolver_Default(); yield return DataProtectionServiceDescriptors.ICertificateResolver_Default();
#endif #endif

View File

@ -343,7 +343,7 @@ namespace Microsoft.AspNetCore.DataProtection.Managed
using (var validationAlgorithm = CreateValidationAlgorithm(validationSubkey)) using (var validationAlgorithm = CreateValidationAlgorithm(validationSubkey))
{ {
#if !DOTNET5_4 #if !NETSTANDARD1_3
// As an optimization, avoid duplicating the underlying buffer if we're on desktop CLR. // As an optimization, avoid duplicating the underlying buffer if we're on desktop CLR.
byte[] underlyingBuffer = outputStream.GetBuffer(); byte[] underlyingBuffer = outputStream.GetBuffer();
#else #else

View File

@ -101,7 +101,7 @@ namespace Microsoft.AspNetCore.DataProtection.Repositories
private static DirectoryInfo GetDefaultKeyStorageDirectory() private static DirectoryInfo GetDefaultKeyStorageDirectory()
{ {
#if !DOTNET5_4 #if !NETSTANDARD1_3
// Environment.GetFolderPath returns null if the user profile isn't loaded. // Environment.GetFolderPath returns null if the user profile isn't loaded.
string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
if (!String.IsNullOrEmpty(folderPath)) if (!String.IsNullOrEmpty(folderPath))

View File

@ -1,7 +1,7 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
#if !DOTNET5_4 #if !NETSTANDARD1_3
// These classes allow using the C# string interpolation feature from .NET 4.5.1. // These classes allow using the C# string interpolation feature from .NET 4.5.1.
// They're slimmed-down versions of the classes that exist in .NET 4.6. // They're slimmed-down versions of the classes that exist in .NET 4.6.

View File

@ -1,7 +1,7 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
#if !DOTNET5_4 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml #if !NETSTANDARD1_3 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml
using System; using System;
using System.Security.Cryptography.X509Certificates; using System.Security.Cryptography.X509Certificates;

View File

@ -1,7 +1,7 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
#if !DOTNET5_4 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml #if !NETSTANDARD1_3 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml
using System; using System;
using System.Security.Cryptography.X509Certificates; using System.Security.Cryptography.X509Certificates;

View File

@ -1,7 +1,7 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
#if DOTNET5_4 #if NETSTANDARD1_3
// [[ISSUE60]] Remove this entire file when Core CLR gets support for EncryptedXml. // [[ISSUE60]] Remove this entire file when Core CLR gets support for EncryptedXml.
// This is just a dummy implementation of the class that always throws. // This is just a dummy implementation of the class that always throws.
// The only reason it's here (albeit internal) is to provide a nice error message if key // The only reason it's here (albeit internal) is to provide a nice error message if key

View File

@ -1,7 +1,7 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
#if !DOTNET5_4 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml #if !NETSTANDARD1_3 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml
using System; using System;
using System.Security.Cryptography.Xml; using System.Security.Cryptography.Xml;

View File

@ -1,7 +1,7 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
#if !DOTNET5_4 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml #if !NETSTANDARD1_3 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml
using System.Security.Cryptography.X509Certificates; using System.Security.Cryptography.X509Certificates;

View File

@ -1,7 +1,7 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
#if !DOTNET5_4 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml #if !NETSTANDARD1_3 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml
using System; using System;
using System.Xml; using System.Xml;

View File

@ -1,7 +1,7 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
#if !DOTNET5_4 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml #if !NETSTANDARD1_3 // [[ISSUE60]] Remove this #ifdef when Core CLR gets support for EncryptedXml
using System; using System;
using System.Security.Cryptography.Xml; using System.Security.Cryptography.Xml;

View File

@ -133,7 +133,7 @@ namespace Microsoft.AspNetCore.DataProtection.XmlEncryption
var memoryStream = new MemoryStream(DEFAULT_BUFFER_SIZE); var memoryStream = new MemoryStream(DEFAULT_BUFFER_SIZE);
element.Save(memoryStream); element.Save(memoryStream);
#if !DOTNET5_4 #if !NETSTANDARD1_3
byte[] underlyingBuffer = memoryStream.GetBuffer(); byte[] underlyingBuffer = memoryStream.GetBuffer();
fixed (byte* __unused__ = underlyingBuffer) // try to limit this moving around in memory while we allocate fixed (byte* __unused__ = underlyingBuffer) // try to limit this moving around in memory while we allocate
{ {

View File

@ -25,21 +25,26 @@
"System.Xml.Linq": "" "System.Xml.Linq": ""
} }
}, },
"dotnet5.4": { "netstandard1.3": {
"dependencies": { "dependencies": {
"Microsoft.Win32.Registry": "4.0.0-*", "Microsoft.Win32.Registry": "4.0.0-*",
"System.Security.Cryptography.X509Certificates": "4.0.0-*", "System.Security.Cryptography.X509Certificates": "4.0.0-*",
"System.Security.Claims": "4.0.1-*", "System.Security.Claims": "4.0.1-*",
"System.Security.Principal.Windows": "4.0.0-*", "System.Security.Principal.Windows": "4.0.0-*",
"System.Xml.XDocument": "4.0.11-*" "System.Xml.XDocument": "4.0.11-*"
} },
"imports": [
"dotnet5.4"
]
} }
}, },
"compilationOptions": { "compilationOptions": {
"allowUnsafe": true, "allowUnsafe": true,
"warningsAsErrors": true, "warningsAsErrors": true,
"keyFile": "../../tools/Key.snk", "keyFile": "../../tools/Key.snk",
"nowarn": [ "CS1591" ], "nowarn": [
"CS1591"
],
"xmlDoc": true "xmlDoc": true
} }
} }

View File

@ -10,11 +10,14 @@
"xunit": "2.1.0" "xunit": "2.1.0"
}, },
"frameworks": { "frameworks": {
"dnxcore50": { "netstandardapp1.5": {
"dependencies": { "dependencies": {
"dotnet-test-xunit": "1.0.0-dev-*" "dotnet-test-xunit": "1.0.0-dev-*"
}, },
"imports": "portable-net451+win8" "imports": [
"dnxcore50",
"portable-net451+win8"
]
}, },
"net451": { "net451": {
"dependencies": { "dependencies": {

View File

@ -8,11 +8,14 @@
"xunit": "2.1.0" "xunit": "2.1.0"
}, },
"frameworks": { "frameworks": {
"dnxcore50": { "netstandardapp1.5": {
"dependencies": { "dependencies": {
"dotnet-test-xunit": "1.0.0-dev-*" "dotnet-test-xunit": "1.0.0-dev-*"
}, },
"imports": "portable-net451+win8" "imports": [
"dnxcore50",
"portable-net451+win8"
]
}, },
"net451": { "net451": {
"dependencies": { "dependencies": {

View File

@ -7,12 +7,15 @@
"xunit": "2.1.0" "xunit": "2.1.0"
}, },
"frameworks": { "frameworks": {
"dnxcore50": { "netstandardapp1.5": {
"dependencies": { "dependencies": {
"moq.netcore": "4.4.0-beta8", "moq.netcore": "4.4.0-beta8",
"dotnet-test-xunit": "1.0.0-dev-*" "dotnet-test-xunit": "1.0.0-dev-*"
}, },
"imports": "portable-net451+win8" "imports": [
"dnxcore50",
"portable-net451+win8"
]
}, },
"net451": { "net451": {
"dependencies": { "dependencies": {

View File

@ -11,12 +11,15 @@
"xunit": "2.1.0" "xunit": "2.1.0"
}, },
"frameworks": { "frameworks": {
"dnxcore50": { "netstandardapp1.5": {
"dependencies": { "dependencies": {
"moq.netcore": "4.4.0-beta8", "moq.netcore": "4.4.0-beta8",
"dotnet-test-xunit": "1.0.0-dev-*" "dotnet-test-xunit": "1.0.0-dev-*"
}, },
"imports": "portable-net451+win8" "imports": [
"dnxcore50",
"portable-net451+win8"
]
}, },
"net451": { "net451": {
"dependencies": { "dependencies": {

View File

@ -1,11 +1,14 @@
{ {
"frameworks": { "frameworks": {
"dnxcore50": { "netstandardapp1.5": {
"dependencies": { "dependencies": {
"dotnet-test-xunit": "1.0.0-dev-*", "dotnet-test-xunit": "1.0.0-dev-*",
"Microsoft.NETCore.Platforms": "1.0.1-*" "Microsoft.NETCore.Platforms": "1.0.1-*"
}, },
"imports": "portable-net451+win8" "imports": [
"dnxcore50",
"portable-net451+win8"
]
}, },
"net451": {} "net451": {}
}, },

View File

@ -158,7 +158,7 @@ namespace Microsoft.AspNetCore.DataProtection.Repositories
private static string GetLocalApplicationData() private static string GetLocalApplicationData()
{ {
#if DNXCORE50 #if NETSTANDARDAPP1_5
return Environment.GetEnvironmentVariable("LOCALAPPDATA"); return Environment.GetEnvironmentVariable("LOCALAPPDATA");
#else #else
return Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); return Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);

View File

@ -1,7 +1,7 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
#if !DNXCORE50 #if !NETSTANDARDAPP1_5
using System; using System;
using System.Security.Cryptography; using System.Security.Cryptography;
using System.Security.Cryptography.Xml; using System.Security.Cryptography.Xml;

View File

@ -33,7 +33,7 @@ namespace Microsoft.AspNetCore.DataProtection.XmlEncryption
XmlAssert.Equal(originalXml, roundTrippedElement); XmlAssert.Equal(originalXml, roundTrippedElement);
} }
#if !DNXCORE50 #if !NETSTANDARDAPP1_5
[ConditionalFact] [ConditionalFact]
[ConditionalRunTestOnlyOnWindows] [ConditionalRunTestOnlyOnWindows]
public void Encrypt_CurrentUser_Decrypt_ImpersonatedAsAnonymous_Fails() public void Encrypt_CurrentUser_Decrypt_ImpersonatedAsAnonymous_Fails()

View File

@ -11,12 +11,15 @@
"xunit": "2.1.0" "xunit": "2.1.0"
}, },
"frameworks": { "frameworks": {
"dnxcore50": { "netstandardapp1.5": {
"dependencies": { "dependencies": {
"moq.netcore": "4.4.0-beta8", "moq.netcore": "4.4.0-beta8",
"dotnet-test-xunit": "1.0.0-dev-*" "dotnet-test-xunit": "1.0.0-dev-*"
}, },
"imports": "portable-net451+win8" "imports": [
"dnxcore50",
"portable-net451+win8"
]
}, },
"net451": { "net451": {
"dependencies": { "dependencies": {