Imported Upstream version 5.4.0.167

Former-commit-id: 5624ac747d633e885131e8349322922b6a59baaa
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2017-08-21 15:34:15 +00:00
parent e49d6f06c0
commit 536cd135cc
12856 changed files with 563812 additions and 223249 deletions

View File

@ -181,7 +181,7 @@ namespace System.ServiceModel.Security
catch (InvalidOperationException)
{
algorithmObject = null;
// We ---- the exception and continue.
// We swallow the exception and continue.
}
if (algorithmObject != null)
{
@ -284,7 +284,7 @@ namespace System.ServiceModel.Security
catch (InvalidOperationException)
{
algorithmObject = null;
// We ---- the exception and continue.
// We swallow the exception and continue.
}
if (algorithmObject != null)
{

View File

@ -865,9 +865,9 @@ namespace System.ServiceModel.Security
/*
* Session issuance/renewal consists of the following steps (some may be async):
* 1. Create a channel ([....])
* 1. Create a channel (sync)
* 2. Open the channel (async)
* 3. Create the request to send to server ([....])
* 3. Create the request to send to server (sync)
* 4. Send the message and get reply (async)
* 5. Process the reply to get the token
* 6. Close the channel (async) and complete the async result

View File

@ -1 +1 @@
b62aceefcff29d0061ab33c65db191ab5faee7c8
98a912c3cc5a81f85782f3ae9d0559becd6c06f3

View File

@ -170,8 +170,17 @@ namespace System.ServiceModel.Security
protected override SspiNegotiationTokenAuthenticatorState CreateSspiState(byte[] incomingBlob, string incomingValueTypeUri)
{
TlsSspiNegotiation tlsNegotiation = new TlsSspiNegotiation(SchProtocols.TlsServer | SchProtocols.Ssl3Server,
TlsSspiNegotiation tlsNegotiation = null;
if (LocalAppContextSwitches.DisableUsingServicePointManagerSecurityProtocols)
{
tlsNegotiation = new TlsSspiNegotiation(SchProtocols.TlsServer | SchProtocols.Ssl3Server,
this.serverToken.Certificate, this.ClientTokenAuthenticator != null);
}
else
{
var protocol = (SchProtocols)System.Net.ServicePointManager.SecurityProtocol & SchProtocols.ServerMask;
tlsNegotiation = new TlsSspiNegotiation(protocol, this.serverToken.Certificate, this.ClientTokenAuthenticator != null);
}
// Echo only for TrustFeb2005 and ValueType mismatch
if (this.StandardsManager.MessageSecurityVersion.TrustVersion == TrustVersion.WSTrustFeb2005 &&
this.NegotiationValueType.Value != incomingValueTypeUri)

View File

@ -74,7 +74,16 @@ namespace System.ServiceModel.Security
{
clientCertificate = token.Certificate;
}
TlsSspiNegotiation tlsNegotiation = new TlsSspiNegotiation(String.Empty, SchProtocols.Ssl3Client | SchProtocols.TlsClient, clientCertificate);
TlsSspiNegotiation tlsNegotiation = null;
if(LocalAppContextSwitches.DisableUsingServicePointManagerSecurityProtocols)
{
tlsNegotiation = new TlsSspiNegotiation(String.Empty, SchProtocols.Ssl3Client | SchProtocols.TlsClient, clientCertificate);
}
else
{
var protocol = (SchProtocols)System.Net.ServicePointManager.SecurityProtocol & SchProtocols.ClientMask;
tlsNegotiation = new TlsSspiNegotiation(String.Empty, protocol, clientCertificate);
}
return new SspiNegotiationTokenProviderState(tlsNegotiation);
}

View File

@ -1 +1 @@
417886dd3eba68ef6d147d84828ba4cd1efa0ae1
5c559bb53a3ca8c81fde964a5091e0ce5e0a3246

View File

@ -1 +1 @@
1bd584b2806af9a18b3a131b41a8151545fe09e1
f601b50e1b1541e2373ab324609e50c205796fa5