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

@ -34,8 +34,8 @@ using System.ServiceModel.Security;
using System.ServiceModel.Channels.Security;
using System.IdentityModel.Selectors;
using System.IdentityModel.Tokens;
using System.ServiceModel.Security.Tokens;
#endif
using System.ServiceModel.Security.Tokens;
using System.Text;
namespace System.ServiceModel.Channels
@ -44,11 +44,11 @@ namespace System.ServiceModel.Channels
{
internal SecurityBindingElement ()
{
MessageSecurityVersion = MessageSecurityVersion.Default;
endpoint = new SupportingTokenParameters ();
#if !NET_2_1 && !XAMMAC_4_5
DefaultAlgorithmSuite = SecurityAlgorithmSuite.Default;
MessageSecurityVersion = MessageSecurityVersion.Default;
KeyEntropyMode = SecurityKeyEntropyMode.CombinedEntropy;
endpoint = new SupportingTokenParameters ();
operation = new Dictionary<string,SupportingTokenParameters> ();
opt_endpoint = new SupportingTokenParameters ();
opt_operation = new Dictionary<string,SupportingTokenParameters> ();
@ -60,12 +60,12 @@ namespace System.ServiceModel.Channels
internal SecurityBindingElement (SecurityBindingElement other)
{
#if !NET_2_1 && !XAMMAC_4_5
alg_suite = other.alg_suite;
key_entropy_mode = other.key_entropy_mode;
security_header_layout = other.security_header_layout;
msg_security_version = other.msg_security_version;
endpoint = other.endpoint.Clone ();
#if !NET_2_1 && !XAMMAC_4_5
alg_suite = other.alg_suite;
key_entropy_mode = other.key_entropy_mode;
opt_endpoint = other.opt_endpoint.Clone ();
operation = new Dictionary<string,SupportingTokenParameters> ();
foreach (KeyValuePair<string,SupportingTokenParameters> p in other.operation)
@ -79,12 +79,14 @@ namespace System.ServiceModel.Channels
LocalClientSettings = other.LocalClientSettings.Clone ();
}
SecurityHeaderLayout security_header_layout;
MessageSecurityVersion msg_security_version;
SupportingTokenParameters endpoint;
#if !NET_2_1 && !XAMMAC_4_5
SecurityAlgorithmSuite alg_suite;
SecurityKeyEntropyMode key_entropy_mode;
SecurityHeaderLayout security_header_layout;
MessageSecurityVersion msg_security_version;
SupportingTokenParameters endpoint, opt_endpoint;
SupportingTokenParameters opt_endpoint;
IDictionary<string,SupportingTokenParameters> operation, opt_operation;
LocalServiceSecuritySettings service_settings;
#endif
@ -93,6 +95,20 @@ namespace System.ServiceModel.Channels
public LocalClientSecuritySettings LocalClientSettings { get; private set; }
public SecurityHeaderLayout SecurityHeaderLayout {
get { return security_header_layout; }
set { security_header_layout = value; }
}
public MessageSecurityVersion MessageSecurityVersion {
get { return msg_security_version; }
set { msg_security_version = value; }
}
public SupportingTokenParameters EndpointSupportingTokenParameters {
get { return endpoint; }
}
#if !NET_2_1 && !XAMMAC_4_5
public SecurityAlgorithmSuite DefaultAlgorithmSuite {
get { return alg_suite; }
@ -108,20 +124,6 @@ namespace System.ServiceModel.Channels
get { return service_settings; }
}
public SecurityHeaderLayout SecurityHeaderLayout {
get { return security_header_layout; }
set { security_header_layout = value; }
}
public MessageSecurityVersion MessageSecurityVersion {
get { return msg_security_version; }
set { msg_security_version = value; }
}
public SupportingTokenParameters EndpointSupportingTokenParameters {
get { return endpoint; }
}
public IDictionary<string,SupportingTokenParameters> OperationSupportingTokenParameters {
get { return operation; }
}
@ -445,32 +447,6 @@ namespace System.ServiceModel.Channels
throw new NotImplementedException ();
}
public static SecurityBindingElement
CreateSecureConversationBindingElement (SecurityBindingElement binding)
{
return CreateSecureConversationBindingElement (binding, false);
}
public static SecurityBindingElement
CreateSecureConversationBindingElement (
SecurityBindingElement binding, bool requireCancellation)
{
return CreateSecureConversationBindingElement (binding, requireCancellation, null);
}
public static SecurityBindingElement
CreateSecureConversationBindingElement (
SecurityBindingElement binding, bool requireCancellation,
ChannelProtectionRequirements protectionRequirements)
{
SymmetricSecurityBindingElement be =
new SymmetricSecurityBindingElement ();
be.ProtectionTokenParameters =
new SecureConversationSecurityTokenParameters (
binding, requireCancellation, protectionRequirements);
return be;
}
public static SymmetricSecurityBindingElement
CreateSslNegotiationBindingElement (bool requireClientCertificate)
{
@ -554,6 +530,36 @@ namespace System.ServiceModel.Channels
}
#endif
public static SecurityBindingElement
CreateSecureConversationBindingElement (SecurityBindingElement binding)
{
return CreateSecureConversationBindingElement (binding, false);
}
public static SecurityBindingElement
CreateSecureConversationBindingElement (
SecurityBindingElement binding, bool requireCancellation)
{
return CreateSecureConversationBindingElement (binding, requireCancellation, null);
}
public static SecurityBindingElement
CreateSecureConversationBindingElement (
SecurityBindingElement binding, bool requireCancellation,
ChannelProtectionRequirements protectionRequirements)
{
#if !NET_2_1 && !XAMMAC_4_5
SymmetricSecurityBindingElement be =
new SymmetricSecurityBindingElement ();
be.ProtectionTokenParameters =
new SecureConversationSecurityTokenParameters (
binding, requireCancellation, protectionRequirements);
return be;
#else
throw new NotImplementedException ();
#endif
}
[MonoTODO]
public static TransportSecurityBindingElement
CreateUserNameOverTransportBindingElement ()

View File

@ -29,6 +29,7 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Net.Security;
using System.Security.Authentication;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;
using System.ServiceModel.Security;
@ -64,6 +65,12 @@ namespace System.ServiceModel.Channels
set { require_client_certificate = value; }
}
[MonoTODO]
public SslProtocols SslProtocols {
get { throw new NotImplementedException (); }
set { throw new NotImplementedException (); }
}
private SslStreamSecurityBindingElement (
SslStreamSecurityBindingElement other)
: base (other)