Imported Upstream version 4.6.0.150

Former-commit-id: 73e3bb1e96dd09dc931c1dfe559d2c7f7b8b02c7
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2016-08-23 13:20:38 +00:00
parent 02ac915603
commit b95516a3dd
239 changed files with 4096 additions and 1544 deletions

View File

@ -182,6 +182,31 @@ namespace System.IO.MemoryMappedFiles
};
}
public static MemoryMappedFile CreateFromFile (FileStream fileStream, string mapName, long capacity, MemoryMappedFileAccess access,
HandleInheritability inheritability,
bool leaveOpen)
{
if (fileStream == null)
throw new ArgumentNullException ("fileStream");
if (mapName != null && mapName.Length == 0)
throw new ArgumentException ("mapName");
if ((!MonoUtil.IsUnix && capacity == 0 && fileStream.Length == 0) || (capacity > fileStream.Length))
throw new ArgumentException ("capacity");
IntPtr handle = MemoryMapImpl.OpenHandle (fileStream.Handle, mapName, out capacity, access, MemoryMappedFileOptions.DelayAllocatePages);
MemoryMapImpl.ConfigureHandleInheritability (handle, inheritability);
return new MemoryMappedFile () {
handle = handle,
fileAccess = access,
name = mapName,
fileCapacity = capacity,
stream = fileStream,
keepOpen = leaveOpen
};
}
[MonoLimitation ("memoryMappedFileSecurity is currently ignored")]
public static MemoryMappedFile CreateFromFile (FileStream fileStream, string mapName, long capacity, MemoryMappedFileAccess access,
@ -242,6 +267,12 @@ namespace System.IO.MemoryMappedFiles
return CreateNew (mapName, capacity, access, MemoryMappedFileOptions.DelayAllocatePages, null, HandleInheritability.None);
}
[MonoLimitation ("Named mappings scope is process local; options is ignored")]
public static MemoryMappedFile CreateNew (string mapName, long capacity, MemoryMappedFileAccess access, MemoryMappedFileOptions options, HandleInheritability inheritability)
{
return CreateNew (mapName, capacity, access, options, null, inheritability);
}
[MonoLimitation ("Named mappings scope is process local; options and memoryMappedFileSecurity are ignored")]
public static MemoryMappedFile CreateNew (string mapName, long capacity, MemoryMappedFileAccess access,
MemoryMappedFileOptions options, MemoryMappedFileSecurity memoryMappedFileSecurity,
@ -262,6 +293,12 @@ namespace System.IO.MemoryMappedFiles
return CreateOrOpen (mapName, capacity, access, MemoryMappedFileOptions.DelayAllocatePages, null, HandleInheritability.None);
}
[MonoLimitation ("Named mappings scope is process local")]
public static MemoryMappedFile CreateOrOpen (string mapName, long capacity, MemoryMappedFileAccess access, MemoryMappedFileOptions options, HandleInheritability inheritability)
{
return CreateOrOpen (mapName, capacity, access, options, null, inheritability);
}
[MonoLimitation ("Named mappings scope is process local")]
public static MemoryMappedFile CreateOrOpen (string mapName, long capacity, MemoryMappedFileAccess access, MemoryMappedFileOptions options, MemoryMappedFileSecurity memoryMappedFileSecurity, HandleInheritability inheritability)
{

View File

@ -37,6 +37,8 @@ using System.Security.AccessControl;
using System.Security.Permissions;
using System.Security.Principal;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Win32;
using Microsoft.Win32.SafeHandles;
@ -113,6 +115,10 @@ namespace System.IO.Pipes
}
#endif
~NamedPipeClientStream () {
Dispose (false);
}
INamedPipeClient impl;
public void Connect ()
@ -137,6 +143,26 @@ namespace System.IO.Pipes
#endif
}
public Task ConnectAsync ()
{
return ConnectAsync (Timeout.Infinite, CancellationToken.None);
}
public Task ConnectAsync (int timeout)
{
return ConnectAsync (timeout, CancellationToken.None);
}
public Task ConnectAsync (CancellationToken cancellationToken)
{
return ConnectAsync (Timeout.Infinite, cancellationToken);
}
public Task ConnectAsync (int timeout, CancellationToken cancellationToken)
{
throw new NotImplementedException ();
}
public int NumberOfServerInstances {
get {
CheckPipePropertyOperations ();

View File

@ -32,6 +32,8 @@ using Microsoft.Win32.SafeHandles;
using System;
using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Security.AccessControl;
using System.Security.Permissions;
using System.Security.Principal;
@ -153,6 +155,17 @@ namespace System.IO.Pipes
IsConnected = true;
}
public Task WaitForConnectionAsync ()
{
return WaitForConnectionAsync (CancellationToken.None);
}
[MonoTODO]
public Task WaitForConnectionAsync (CancellationToken cancellationToken)
{
throw new NotImplementedException ();
}
[MonoTODO]
[SecurityPermission (SecurityAction.Demand, Flags = SecurityPermissionFlag.ControlPrincipal)]
public string GetImpersonationUserName ()

View File

@ -269,13 +269,13 @@ namespace System.IO.Pipes
pipeSecurity.Persist (SafePipeHandle);
}
#endif
// pipe I/O
public void WaitForPipeDrain ()
{
}
#endif
[MonoTODO]
public override int Read ([In] byte [] buffer, int offset, int count)

View File

@ -0,0 +1,89 @@
//
// ECCurve.cs
//
// Authors:
// Marek Safar <marek.safar@gmail.com>
//
// Copyright (C) 2016 Xamarin Inc (http://www.xamarin.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
#if NETSTANDARD
namespace System.Security.Cryptography
{
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
public struct ECCurve
{
public byte[] A;
public byte[] B;
public byte[] Cofactor;
public ECCurveType CurveType;
public ECPoint G;
public HashAlgorithmName? Hash;
public byte[] Order;
public byte[] Polynomial;
public byte[] Prime;
public byte[] Seed;
public bool IsCharacteristic2 { get { throw new NotImplementedException (); } }
public bool IsExplicit { get { throw new NotImplementedException (); } }
public bool IsNamed { get { throw new NotImplementedException (); } }
public bool IsPrime { get { throw new NotImplementedException (); } }
public Oid Oid { get { throw new NotImplementedException (); } }
public static ECCurve CreateFromFriendlyName (string oidFriendlyName) { throw new NotImplementedException (); }
public static ECCurve CreateFromOid (Oid curveOid) { throw new NotImplementedException (); }
public static ECCurve CreateFromValue (string oidValue) { throw new NotImplementedException (); }
public void Validate () { throw new NotImplementedException (); }
public enum ECCurveType
{
Implicit = 0,
PrimeShortWeierstrass = 1,
PrimeTwistedEdwards = 2,
PrimeMontgomery = 3,
Characteristic2 = 4,
Named = 5,
}
public static class NamedCurves
{
public static ECCurve brainpoolP160r1 { get { throw new NotImplementedException (); } }
public static ECCurve brainpoolP160t1 { get { throw new NotImplementedException (); } }
public static ECCurve brainpoolP192r1 { get { throw new NotImplementedException (); } }
public static ECCurve brainpoolP192t1 { get { throw new NotImplementedException (); } }
public static ECCurve brainpoolP224r1 { get { throw new NotImplementedException (); } }
public static ECCurve brainpoolP224t1 { get { throw new NotImplementedException (); } }
public static ECCurve brainpoolP256r1 { get { throw new NotImplementedException (); } }
public static ECCurve brainpoolP256t1 { get { throw new NotImplementedException (); } }
public static ECCurve brainpoolP320r1 { get { throw new NotImplementedException (); } }
public static ECCurve brainpoolP320t1 { get { throw new NotImplementedException (); } }
public static ECCurve brainpoolP384r1 { get { throw new NotImplementedException (); } }
public static ECCurve brainpoolP384t1 { get { throw new NotImplementedException (); } }
public static ECCurve brainpoolP512r1 { get { throw new NotImplementedException (); } }
public static ECCurve brainpoolP512t1 { get { throw new NotImplementedException (); } }
public static ECCurve nistP256 { get { throw new NotImplementedException (); } }
public static ECCurve nistP384 { get { throw new NotImplementedException (); } }
public static ECCurve nistP521 { get { throw new NotImplementedException (); } }
}
}
}
#endif

View File

@ -0,0 +1,43 @@
//
// ECPArameters.cs
//
// Authors:
// Marek Safar <marek.safar@gmail.com>
//
// Copyright (C) 2016 Xamarin Inc (http://www.xamarin.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
#if NETSTANDARD
namespace System.Security.Cryptography
{
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
public partial struct ECParameters
{
public ECCurve Curve;
public byte[] D;
public ECPoint Q;
public void Validate () { throw new NotImplementedException (); }
}
}
#endif

View File

@ -0,0 +1,41 @@
//
// ECPoint.cs
//
// Authors:
// Marek Safar <marek.safar@gmail.com>
//
// Copyright (C) 2016 Xamarin Inc (http://www.xamarin.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
#if NETSTANDARD
namespace System.Security.Cryptography
{
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
public struct ECPoint
{
public byte[] X;
public byte[] Y;
}
}
#endif

View File

@ -0,0 +1,46 @@
//
// IncrementalHash.cs
//
// Authors:
// Marek Safar <marek.safar@gmail.com>
//
// Copyright (C) 2016 Xamarin Inc (http://www.xamarin.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
#if NETSTANDARD
namespace System.Security.Cryptography
{
public sealed class IncrementalHash : IDisposable
{
private IncrementalHash () { }
public HashAlgorithmName AlgorithmName { get { throw new NotImplementedException (); } }
public void AppendData (byte[] data) { }
public void AppendData (byte[] data, int offset, int count) { }
public static IncrementalHash CreateHash (HashAlgorithmName hashAlgorithm) { throw new NotImplementedException (); }
public static IncrementalHash CreateHMAC (HashAlgorithmName hashAlgorithm, byte[] key) { throw new NotImplementedException (); }
public void Dispose () { }
public byte[] GetHashAndReset () { throw new NotImplementedException (); }
}
}
#endif

View File

@ -223,3 +223,8 @@ ReferenceSources/Strings.cs
../referencesource/System.Core/System/threading/ReaderWriterLockSlim/ReaderWriterLockSlim.cs
../referencesource/System.Core/System/threading/Tasks/TaskExtensions.cs
System.Security.Cryptography/ECCurve.cs
System.Security.Cryptography/ECPoint.cs
System.Security.Cryptography/ECParameters.cs
System.Security.Cryptography/IncrementalHash.cs