Imported Upstream version 4.8.0.309

Former-commit-id: 5f9c6ae75f295e057a7d2971f3a6df4656fa8850
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2016-11-10 13:04:39 +00:00
parent ee1447783b
commit 94b2861243
4912 changed files with 390737 additions and 49310 deletions

View File

@@ -27,11 +27,13 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
#if !READ_ONLY
#if !PCL && !NET_CORE
using System;
using System.Security.Cryptography;
#if !(SILVERLIGHT || READ_ONLY)
namespace Mono.Security.Cryptography {
static class CryptoConvert {
@@ -139,10 +141,11 @@ namespace Mono.Security.Cryptography {
rsa = RSA.Create ();
rsa.ImportParameters (rsap);
}
catch (CryptographicException ce) {
catch (CryptographicException) {
// this may cause problem when this code is run under
// the SYSTEM identity on Windows (e.g. ASP.NET). See
// http://bugzilla.ximian.com/show_bug.cgi?id=77559
bool throws = false;
try {
CspParameters csp = new CspParameters ();
csp.Flags = CspProviderFlags.UseMachineKeyStore;
@@ -150,8 +153,12 @@ namespace Mono.Security.Cryptography {
rsa.ImportParameters (rsap);
}
catch {
// rethrow original, not the later, exception if this fails
throw ce;
throws = true;
}
if (throws) {
// rethrow original, not the latter, exception if this fails
throw;
}
}
return rsa;
@@ -241,3 +248,6 @@ namespace Mono.Security.Cryptography {
}
#endif
#endif

View File

@@ -1,42 +1,24 @@
//
// CryptoService.cs
//
// Author:
// Jb Evain (jbevain@gmail.com)
//
// Copyright (c) 2008 - 2011 Jb Evain
// Copyright (c) 2008 - 2015 Jb Evain
// Copyright (c) 2008 - 2011 Novell, Inc.
//
// 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.
// Licensed under the MIT/X11 license.
//
#if !READ_ONLY
#if !PCL && !NET_CORE
using System;
using System.IO;
using System.Reflection;
using System.Security.Cryptography;
#if !READ_ONLY
#if !SILVERLIGHT && !CF
using System.Runtime.Serialization;
using Mono.Security.Cryptography;
#endif
using Mono.Cecil.PE;
@@ -48,7 +30,6 @@ namespace Mono.Cecil {
static class CryptoService {
#if !SILVERLIGHT && !CF
public static void StrongName (Stream stream, ImageWriter writer, StrongNameKeyPair key_pair)
{
int strong_name_pointer;
@@ -110,7 +91,7 @@ namespace Mono.Cecil {
return sha1.Hash;
}
#endif
static void CopyStreamChunk (Stream stream, Stream dest_stream, byte [] buffer, int length)
{
while (length > 0) {
@@ -141,7 +122,6 @@ namespace Mono.Cecil {
}
}
#if !SILVERLIGHT && !CF
static partial class Mixin {
public static RSA CreateRSA (this StrongNameKeyPair key_pair)
@@ -171,7 +151,8 @@ namespace Mono.Cecil {
return key_container != null;
}
}
#endif
}
#endif
#endif