[System.ServiceModel] Move a few types into System.IdentityModel
authorAlexander Köplinger <alex.koeplinger@outlook.com>
Wed, 12 Oct 2016 21:18:30 +0000 (23:18 +0200)
committerAlexander Köplinger <alex.koeplinger@outlook.com>
Wed, 12 Oct 2016 21:20:57 +0000 (23:20 +0200)
They were moved there in MS.NET 4.5. Added typeforwards so existing references continue to work.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=35662

17 files changed:
mcs/class/System.IdentityModel/Assembly/AssemblyInfo.cs
mcs/class/System.IdentityModel/System.ServiceModel.Security.Tokens/BinarySecretSecurityToken.cs [new file with mode: 0644]
mcs/class/System.IdentityModel/System.ServiceModel.Security.Tokens/InternalEncryptedKeyIdentifierClause.cs [new file with mode: 0644]
mcs/class/System.IdentityModel/System.ServiceModel.Security.Tokens/WrappedKeySecurityToken.cs [new file with mode: 0644]
mcs/class/System.IdentityModel/System.ServiceModel.Security/BinarySecretKeyIdentifierClause.cs [new file with mode: 0644]
mcs/class/System.IdentityModel/System.ServiceModel.Security/KeyNameIdentifierClause.cs [new file with mode: 0644]
mcs/class/System.IdentityModel/System.ServiceModel.Security/SecurityContextKeyIdentifierClause.cs [new file with mode: 0644]
mcs/class/System.IdentityModel/net_4_x_System.IdentityModel.dll.sources
mcs/class/System.ServiceModel/Assembly/AssemblyInfo.cs
mcs/class/System.ServiceModel/System.ServiceModel.Security.Tokens/BinarySecretSecurityToken.cs [deleted file]
mcs/class/System.ServiceModel/System.ServiceModel.Security.Tokens/InternalEncryptedKeyIdentifierClause.cs [deleted file]
mcs/class/System.ServiceModel/System.ServiceModel.Security.Tokens/WrappedKeySecurityToken.cs [deleted file]
mcs/class/System.ServiceModel/System.ServiceModel.Security/BinarySecretKeyIdentifierClause.cs [deleted file]
mcs/class/System.ServiceModel/System.ServiceModel.Security/KeyNameIdentifierClause.cs [deleted file]
mcs/class/System.ServiceModel/System.ServiceModel.Security/SecurityContextKeyIdentifierClause.cs [deleted file]
mcs/class/System.ServiceModel/System.ServiceModel.dll.sources
mcs/class/System.ServiceModel/xammac_net_4_5_System.ServiceModel.dll.sources

index 4c70c66dfd6b98fd9243afc32aa69c0305e8c2ee..0b98df20420097218f37b5da5b635066723fe1f5 100644 (file)
@@ -63,4 +63,5 @@ using System.Runtime.InteropServices;
 
 #if !MOBILE
 [assembly: SecurityCritical (SecurityCriticalScope.Explicit)]
-#endif
\ No newline at end of file
+[assembly: InternalsVisibleTo ("System.ServiceModel, PublicKey=00000000000000000400000000000000")]
+#endif
diff --git a/mcs/class/System.IdentityModel/System.ServiceModel.Security.Tokens/BinarySecretSecurityToken.cs b/mcs/class/System.IdentityModel/System.ServiceModel.Security.Tokens/BinarySecretSecurityToken.cs
new file mode 100644 (file)
index 0000000..464c936
--- /dev/null
@@ -0,0 +1,119 @@
+//
+// BinarySecretSecurityToken.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2006 Novell, Inc.  http://www.novell.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.
+//
+using System;
+using System.Collections.ObjectModel;
+using System.Xml;
+using System.IdentityModel.Policy;
+using System.IdentityModel.Tokens;
+
+namespace System.ServiceModel.Security.Tokens
+{
+       public class BinarySecretSecurityToken : SecurityToken
+       {
+               ReadOnlyCollection<SecurityKey> keys;
+
+               string id;
+               byte [] key;
+               bool allow_crypto;
+               DateTime valid_from = DateTime.Now.ToUniversalTime ();
+
+               BinarySecretSecurityToken (string id, bool allowCrypto)
+               {
+                       this.id = id;
+                       allow_crypto = allowCrypto;
+               }
+
+               public BinarySecretSecurityToken (byte [] key)
+                       : this ("uuid:" + Guid.NewGuid ().ToString (), key)
+               {
+               }
+
+               public BinarySecretSecurityToken (string id, byte [] key)
+                       : this (id, key, false)
+               {
+               }
+
+               protected BinarySecretSecurityToken (string id, byte [] key, bool allowCrypto)
+                       : this (id, allowCrypto)
+               {
+                       if (key == null)
+                               throw new ArgumentNullException ("key");
+                       this.key = key;
+
+                       SecurityKey [] arr = new SecurityKey [] {new InMemorySymmetricSecurityKey (key)};
+                       keys = new ReadOnlyCollection<SecurityKey> (arr);
+               }
+
+               public BinarySecretSecurityToken (int keySizeInBits)
+                       : this ("uuid:" + Guid.NewGuid ().ToString (), keySizeInBits)
+               {
+               }
+
+               public BinarySecretSecurityToken (string id, int keySizeInBits)
+                       : this (id, keySizeInBits, false)
+               {
+               }
+
+               protected BinarySecretSecurityToken (string id, int keySizeInBits, bool allowCrypto)
+                       : this (id, allowCrypto)
+               {
+                       if (keySizeInBits < 0)
+                               throw new ArgumentOutOfRangeException ("keySizeInBits");
+
+                       this.key = new byte [keySizeInBits >> 3 + (keySizeInBits % 8 == 0 ? 0 : 1)];
+
+                       SecurityKey [] arr = new SecurityKey [] {new InMemorySymmetricSecurityKey (key)};
+                       keys = new ReadOnlyCollection<SecurityKey> (arr);
+               }
+
+               public override DateTime ValidFrom {
+                       get { return valid_from; }
+               }
+
+               public override DateTime ValidTo {
+                       get { return DateTime.MaxValue.AddDays (-1); }
+               }
+
+               public override string Id {
+                       get { return id; }
+               }
+
+               public int KeySize {
+                       get { return key.Length; }
+               }
+
+               public override ReadOnlyCollection<SecurityKey> SecurityKeys {
+                       get { return keys; }
+               }
+
+               public byte [] GetKeyBytes ()
+               {
+                       return (byte []) key.Clone ();
+               }
+       }
+}
diff --git a/mcs/class/System.IdentityModel/System.ServiceModel.Security.Tokens/InternalEncryptedKeyIdentifierClause.cs b/mcs/class/System.IdentityModel/System.ServiceModel.Security.Tokens/InternalEncryptedKeyIdentifierClause.cs
new file mode 100644 (file)
index 0000000..95e4334
--- /dev/null
@@ -0,0 +1,51 @@
+//
+// InternalEncryptedKeyIdentifierClause.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2007 Novell, Inc.  http://www.novell.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.
+//
+using System;
+using System.Collections.ObjectModel;
+using System.Security.Cryptography.Xml;
+using System.Xml;
+using System.IdentityModel.Tokens;
+
+namespace System.ServiceModel.Security.Tokens
+{
+       internal class InternalEncryptedKeyIdentifierClause : BinaryKeyIdentifierClause
+       {
+               public InternalEncryptedKeyIdentifierClause (byte [] hash)
+                       : base (null, hash, false)
+               {
+               }
+
+               public override bool Matches (SecurityKeyIdentifierClause keyIdentifierClause)
+               {
+                       InternalEncryptedKeyIdentifierClause kic = keyIdentifierClause as InternalEncryptedKeyIdentifierClause;
+                       if (kic == null)
+                               return false;
+                       return Matches (kic.GetRawBuffer ());
+               }
+       }
+}
diff --git a/mcs/class/System.IdentityModel/System.ServiceModel.Security.Tokens/WrappedKeySecurityToken.cs b/mcs/class/System.IdentityModel/System.ServiceModel.Security.Tokens/WrappedKeySecurityToken.cs
new file mode 100644 (file)
index 0000000..d3c47f2
--- /dev/null
@@ -0,0 +1,176 @@
+//
+// WrappedKeySecurityToken.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2006 Novell, Inc.  http://www.novell.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.
+//
+using System;
+using System.Collections.ObjectModel;
+using System.Security.Cryptography;
+using System.Security.Cryptography.Xml;
+using System.Xml;
+using System.IdentityModel.Policy;
+using System.IdentityModel.Tokens;
+
+namespace System.ServiceModel.Security.Tokens
+{
+       public class WrappedKeySecurityToken : SecurityToken
+       {
+               string id;
+               byte [] raw_key;
+               byte [] wrapped_key;
+               string wrap_alg;
+               SecurityToken wrap_token;
+               SecurityKeyIdentifier wrap_token_ref;
+               DateTime valid_from = DateTime.Now.ToUniversalTime ();
+               ReadOnlyCollection<SecurityKey> keys;
+               ReferenceList reference_list;
+               byte [] keyhash;
+
+               public WrappedKeySecurityToken (
+                       string id,
+                       byte [] keyToWrap,
+                       string wrappingAlgorithm,
+                       SecurityToken wrappingToken,
+                       SecurityKeyIdentifier wrappingTokenReference)
+               {
+                       if (id == null)
+                               throw new ArgumentNullException ("id");
+                       if (keyToWrap == null)
+                               throw new ArgumentNullException ("keyToWrap");
+                       if (wrappingAlgorithm == null)
+                               throw new ArgumentNullException ("wrappingAlgorithm");
+                       if (wrappingToken == null)
+                               throw new ArgumentNullException ("wrappingToken");
+
+                       raw_key = keyToWrap;
+                       this.id = id;
+                       wrap_alg = wrappingAlgorithm;
+                       wrap_token = wrappingToken;
+                       wrap_token_ref = wrappingTokenReference;
+                       Collection<SecurityKey> l = new Collection<SecurityKey> ();
+                       foreach (SecurityKey sk in wrappingToken.SecurityKeys) {
+                               if (sk.IsSupportedAlgorithm (wrappingAlgorithm)) {
+                                       wrapped_key = sk.EncryptKey (wrappingAlgorithm, keyToWrap);
+                                       l.Add (new InMemorySymmetricSecurityKey (keyToWrap));
+                                       break;
+                               }
+                       }
+                       keys = new ReadOnlyCollection<SecurityKey> (l);
+                       if (wrapped_key == null)
+                               throw new ArgumentException (String.Format ("None of the security keys in the argument token supports specified wrapping algorithm '{0}'", wrappingAlgorithm));
+               }
+
+               internal byte [] RawKey {
+                       get { return raw_key; }
+               }
+
+               // It is kind of compromised solution to output
+               // ReferenceList inside e:EncryptedKey and might disappear
+               // when non-wrapped key is represented by another token type.
+               internal ReferenceList ReferenceList {
+                       get { return reference_list; }
+                       set { reference_list = value; }
+               }
+
+               public override DateTime ValidFrom {
+                       get { return valid_from; }
+               }
+
+               public override DateTime ValidTo {
+                       get { return DateTime.MaxValue.AddDays (-1); }
+               }
+
+               public override string Id {
+                       get { return id; }
+               }
+
+               public override ReadOnlyCollection<SecurityKey> SecurityKeys {
+                       get { return keys; }
+               }
+
+               public string WrappingAlgorithm {
+                       get { return wrap_alg; }
+               }
+
+               public SecurityToken WrappingToken {
+                       get { return wrap_token; }
+               }
+
+               public SecurityKeyIdentifier WrappingTokenReference {
+                       get { return wrap_token_ref; }
+               }
+
+               public byte [] GetWrappedKey ()
+               {
+                       return (byte []) wrapped_key.Clone ();
+               }
+
+               internal void SetWrappedKey (byte [] value)
+               {
+                       wrapped_key = (byte []) value.Clone ();
+               }
+
+               [MonoTODO]
+               public override bool CanCreateKeyIdentifierClause<T> ()
+               {
+                       /*
+                       foreach (SecurityKeyIdentifierClause k in WrappingTokenReference) {
+                               Type t = k.GetType ();
+                               if (t == typeof (T) || t.IsSubclassOf (typeof (T)))
+                                       return true;
+                       }
+                       */
+                       return false;
+               }
+
+               [MonoTODO]
+               public override T CreateKeyIdentifierClause<T> ()
+               {
+                       /*
+                       foreach (SecurityKeyIdentifierClause k in WrappingTokenReference) {
+                               Type t = k.GetType ();
+                               if (t == typeof (T) || t.IsSubclassOf (typeof (T)))
+                                       return (T) k;
+                       }
+                       */
+                       throw new NotSupportedException (String.Format ("WrappedKeySecurityToken cannot create '{0}'", typeof (T)));
+               }
+
+               public override bool MatchesKeyIdentifierClause (SecurityKeyIdentifierClause keyIdentifierClause)
+               {
+                       LocalIdKeyIdentifierClause lkic = keyIdentifierClause as LocalIdKeyIdentifierClause;
+                       if (lkic != null && lkic.LocalId == Id)
+                               return true;
+
+                       InternalEncryptedKeyIdentifierClause khic = keyIdentifierClause as InternalEncryptedKeyIdentifierClause;
+                       if (keyhash == null)
+                               keyhash = SHA1.Create ().ComputeHash (wrapped_key);
+                       if (khic != null && khic.Matches (keyhash))
+                               return true;
+
+                       return false;
+               }
+       }
+}
diff --git a/mcs/class/System.IdentityModel/System.ServiceModel.Security/BinarySecretKeyIdentifierClause.cs b/mcs/class/System.IdentityModel/System.ServiceModel.Security/BinarySecretKeyIdentifierClause.cs
new file mode 100644 (file)
index 0000000..497d5c7
--- /dev/null
@@ -0,0 +1,87 @@
+//
+// BinarySecretKeyIdentifierClause.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2006 Novell, Inc.  http://www.novell.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.
+//
+using System;
+using System.Collections.Generic;
+using System.Xml;
+using System.IdentityModel.Policy;
+using System.IdentityModel.Tokens;
+
+namespace System.ServiceModel.Security
+{
+       public class BinarySecretKeyIdentifierClause : BinaryKeyIdentifierClause
+       {
+               public BinarySecretKeyIdentifierClause (byte [] key)
+                       : this (key, true)
+               {
+               }
+
+               [MonoTODO ("ClauseType")]
+               public BinarySecretKeyIdentifierClause (byte [] key, bool cloneBuffer)
+                       : base ("", key, cloneBuffer)
+               {
+               }
+
+               [MonoTODO ("ClauseType")]
+               public BinarySecretKeyIdentifierClause (byte [] key, bool cloneBuffer, byte [] derivationNonce, int derivationLength)
+                       : base ("", key, cloneBuffer, derivationNonce, derivationLength)
+               {
+               }
+
+               public override bool CanCreateKey {
+                       get { return true; }
+               }
+
+               public byte [] GetKeyBytes ()
+               {
+                       return GetBuffer ();
+               }
+
+               public override SecurityKey CreateKey ()
+               {
+                       return new InMemorySymmetricSecurityKey (GetRawBuffer (), true);
+               }
+
+               public override bool Matches (SecurityKeyIdentifierClause clause)
+               {
+                       if (clause == null)
+                               throw new ArgumentNullException ("clause");
+                       BinarySecretKeyIdentifierClause other =
+                               clause as BinarySecretKeyIdentifierClause;
+                       if (other == null)
+                               return false;
+                       byte [] b1 = GetRawBuffer ();
+                       byte [] b2 = other.GetRawBuffer ();
+                       if (b1.Length != b2.Length)
+                               return false;
+                       for (int i = 0; i < b1.Length; i++)
+                               if (b1 [i] != b2 [i])
+                                       return false;
+                       return true;
+               }
+       }
+}
diff --git a/mcs/class/System.IdentityModel/System.ServiceModel.Security/KeyNameIdentifierClause.cs b/mcs/class/System.IdentityModel/System.ServiceModel.Security/KeyNameIdentifierClause.cs
new file mode 100644 (file)
index 0000000..ad7a84a
--- /dev/null
@@ -0,0 +1,69 @@
+//
+// KeyNameIdentifierClause.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2006 Novell, Inc.  http://www.novell.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.
+//
+using System;
+using System.Collections.Generic;
+using System.Xml;
+using System.IdentityModel.Policy;
+using System.IdentityModel.Tokens;
+
+namespace System.ServiceModel.Security
+{
+       public class KeyNameIdentifierClause : SecurityKeyIdentifierClause
+       {
+               public KeyNameIdentifierClause (string keyName)
+                       : base (null)
+               {
+                       key_name = keyName;
+               }
+
+               string key_name;
+
+               public string KeyName {
+                       get { return key_name; }
+               }
+
+               public override bool Matches (SecurityKeyIdentifierClause clause)
+               {
+                       if (clause == null)
+                               throw new ArgumentNullException ("clause");
+                       KeyNameIdentifierClause knic =
+                               clause as KeyNameIdentifierClause;
+                       return knic != null && Matches (knic.KeyName);
+               }
+
+               public bool Matches (string keyName)
+               {
+                       return key_name == keyName;
+               }
+
+               public override string ToString ()
+               {
+                       return String.Concat ("KeyNameIdentifierClause(KeyName = '", KeyName, "')");
+               }
+       }
+}
diff --git a/mcs/class/System.IdentityModel/System.ServiceModel.Security/SecurityContextKeyIdentifierClause.cs b/mcs/class/System.IdentityModel/System.ServiceModel.Security/SecurityContextKeyIdentifierClause.cs
new file mode 100644 (file)
index 0000000..2ac33ba
--- /dev/null
@@ -0,0 +1,84 @@
+//
+// SecurityContextKeyIdentifierClause.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2006 Novell, Inc.  http://www.novell.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.
+//
+
+using System.IdentityModel.Selectors;
+using System.IdentityModel.Tokens;
+using System.Xml;
+
+namespace System.ServiceModel.Security
+{
+       public class SecurityContextKeyIdentifierClause : SecurityKeyIdentifierClause
+       {
+               public SecurityContextKeyIdentifierClause (UniqueId contextId)
+                       : this (contextId, new UniqueId ())
+               {
+               }
+
+               public SecurityContextKeyIdentifierClause (UniqueId contextId, UniqueId generation)
+                       : this (contextId, generation, null, 0)
+               {
+               }
+
+               public SecurityContextKeyIdentifierClause (UniqueId contextId, UniqueId generation, byte [] derivationNonce, int derivationLength)
+                       : base (null, derivationNonce, derivationLength)
+               {
+                       this.context = contextId;
+                       this.generation = generation;
+               }
+
+               UniqueId context, generation;
+
+               public UniqueId ContextId {
+                       get { return context; }
+               }
+
+               public UniqueId Generation {
+                       get { return generation; }
+               }
+
+               public override bool Matches (
+                       SecurityKeyIdentifierClause keyIdentifierClause)
+               {
+                       SecurityContextKeyIdentifierClause other =
+                               keyIdentifierClause as SecurityContextKeyIdentifierClause;
+                       return  other != null && Matches (other.context, other.generation);
+               }
+
+               public bool Matches (UniqueId contextId, UniqueId generation)
+               {
+                       return context == contextId &&
+                               this.generation == generation;
+               }
+
+               [MonoTODO]
+               public override string ToString ()
+               {
+                       return base.ToString ();
+               }
+       }
+}
index 4d705d24d5794a9bb090e62ad31cf76312c4c1e0..c6ab55fe8d704fbf8df35ef92c09de4dd3177c08 100755 (executable)
@@ -128,4 +128,10 @@ System.IdentityModel.Tokens/X509SubjectKeyIdentifierClause.cs
 System.IdentityModel.Tokens/X509ThumbprintKeyIdentifierClause.cs
 System.IdentityModel.Tokens/X509WindowsSecurityToken.cs
 System.Security.Claims/AuthenticationTypes.cs
+System.ServiceModel.Security/BinarySecretKeyIdentifierClause.cs
+System.ServiceModel.Security/KeyNameIdentifierClause.cs
+System.ServiceModel.Security/SecurityContextKeyIdentifierClause.cs
 System.ServiceModel.Security/X509CertificateValidationMode.cs
+System.ServiceModel.Security.Tokens/BinarySecretSecurityToken.cs
+System.ServiceModel.Security.Tokens/InternalEncryptedKeyIdentifierClause.cs
+System.ServiceModel.Security.Tokens/WrappedKeySecurityToken.cs
index 4f5776d2736f6c31b7b643c8b1daf42222dee08b..f4779a1e60091bee2892b2495ba22861888213a6 100644 (file)
@@ -82,4 +82,13 @@ using System.Runtime.InteropServices;
 
 #endif
 
+#if !MOBILE
+
+[assembly: TypeForwardedTo (typeof (System.ServiceModel.Security.BinarySecretKeyIdentifierClause))]
+[assembly: TypeForwardedTo (typeof (System.ServiceModel.Security.KeyNameIdentifierClause))]
+[assembly: TypeForwardedTo (typeof (System.ServiceModel.Security.SecurityContextKeyIdentifierClause))]
+[assembly: TypeForwardedTo (typeof (System.ServiceModel.Security.X509CertificateValidationMode))]
+[assembly: TypeForwardedTo (typeof (System.ServiceModel.Security.Tokens.BinarySecretSecurityToken))]
+[assembly: TypeForwardedTo (typeof (System.ServiceModel.Security.Tokens.WrappedKeySecurityToken))]
 
+#endif
diff --git a/mcs/class/System.ServiceModel/System.ServiceModel.Security.Tokens/BinarySecretSecurityToken.cs b/mcs/class/System.ServiceModel/System.ServiceModel.Security.Tokens/BinarySecretSecurityToken.cs
deleted file mode 100644 (file)
index 464c936..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// BinarySecretSecurityToken.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2006 Novell, Inc.  http://www.novell.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.
-//
-using System;
-using System.Collections.ObjectModel;
-using System.Xml;
-using System.IdentityModel.Policy;
-using System.IdentityModel.Tokens;
-
-namespace System.ServiceModel.Security.Tokens
-{
-       public class BinarySecretSecurityToken : SecurityToken
-       {
-               ReadOnlyCollection<SecurityKey> keys;
-
-               string id;
-               byte [] key;
-               bool allow_crypto;
-               DateTime valid_from = DateTime.Now.ToUniversalTime ();
-
-               BinarySecretSecurityToken (string id, bool allowCrypto)
-               {
-                       this.id = id;
-                       allow_crypto = allowCrypto;
-               }
-
-               public BinarySecretSecurityToken (byte [] key)
-                       : this ("uuid:" + Guid.NewGuid ().ToString (), key)
-               {
-               }
-
-               public BinarySecretSecurityToken (string id, byte [] key)
-                       : this (id, key, false)
-               {
-               }
-
-               protected BinarySecretSecurityToken (string id, byte [] key, bool allowCrypto)
-                       : this (id, allowCrypto)
-               {
-                       if (key == null)
-                               throw new ArgumentNullException ("key");
-                       this.key = key;
-
-                       SecurityKey [] arr = new SecurityKey [] {new InMemorySymmetricSecurityKey (key)};
-                       keys = new ReadOnlyCollection<SecurityKey> (arr);
-               }
-
-               public BinarySecretSecurityToken (int keySizeInBits)
-                       : this ("uuid:" + Guid.NewGuid ().ToString (), keySizeInBits)
-               {
-               }
-
-               public BinarySecretSecurityToken (string id, int keySizeInBits)
-                       : this (id, keySizeInBits, false)
-               {
-               }
-
-               protected BinarySecretSecurityToken (string id, int keySizeInBits, bool allowCrypto)
-                       : this (id, allowCrypto)
-               {
-                       if (keySizeInBits < 0)
-                               throw new ArgumentOutOfRangeException ("keySizeInBits");
-
-                       this.key = new byte [keySizeInBits >> 3 + (keySizeInBits % 8 == 0 ? 0 : 1)];
-
-                       SecurityKey [] arr = new SecurityKey [] {new InMemorySymmetricSecurityKey (key)};
-                       keys = new ReadOnlyCollection<SecurityKey> (arr);
-               }
-
-               public override DateTime ValidFrom {
-                       get { return valid_from; }
-               }
-
-               public override DateTime ValidTo {
-                       get { return DateTime.MaxValue.AddDays (-1); }
-               }
-
-               public override string Id {
-                       get { return id; }
-               }
-
-               public int KeySize {
-                       get { return key.Length; }
-               }
-
-               public override ReadOnlyCollection<SecurityKey> SecurityKeys {
-                       get { return keys; }
-               }
-
-               public byte [] GetKeyBytes ()
-               {
-                       return (byte []) key.Clone ();
-               }
-       }
-}
diff --git a/mcs/class/System.ServiceModel/System.ServiceModel.Security.Tokens/InternalEncryptedKeyIdentifierClause.cs b/mcs/class/System.ServiceModel/System.ServiceModel.Security.Tokens/InternalEncryptedKeyIdentifierClause.cs
deleted file mode 100644 (file)
index 95e4334..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-//
-// InternalEncryptedKeyIdentifierClause.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2007 Novell, Inc.  http://www.novell.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.
-//
-using System;
-using System.Collections.ObjectModel;
-using System.Security.Cryptography.Xml;
-using System.Xml;
-using System.IdentityModel.Tokens;
-
-namespace System.ServiceModel.Security.Tokens
-{
-       internal class InternalEncryptedKeyIdentifierClause : BinaryKeyIdentifierClause
-       {
-               public InternalEncryptedKeyIdentifierClause (byte [] hash)
-                       : base (null, hash, false)
-               {
-               }
-
-               public override bool Matches (SecurityKeyIdentifierClause keyIdentifierClause)
-               {
-                       InternalEncryptedKeyIdentifierClause kic = keyIdentifierClause as InternalEncryptedKeyIdentifierClause;
-                       if (kic == null)
-                               return false;
-                       return Matches (kic.GetRawBuffer ());
-               }
-       }
-}
diff --git a/mcs/class/System.ServiceModel/System.ServiceModel.Security.Tokens/WrappedKeySecurityToken.cs b/mcs/class/System.ServiceModel/System.ServiceModel.Security.Tokens/WrappedKeySecurityToken.cs
deleted file mode 100644 (file)
index d3c47f2..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-//
-// WrappedKeySecurityToken.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2006 Novell, Inc.  http://www.novell.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.
-//
-using System;
-using System.Collections.ObjectModel;
-using System.Security.Cryptography;
-using System.Security.Cryptography.Xml;
-using System.Xml;
-using System.IdentityModel.Policy;
-using System.IdentityModel.Tokens;
-
-namespace System.ServiceModel.Security.Tokens
-{
-       public class WrappedKeySecurityToken : SecurityToken
-       {
-               string id;
-               byte [] raw_key;
-               byte [] wrapped_key;
-               string wrap_alg;
-               SecurityToken wrap_token;
-               SecurityKeyIdentifier wrap_token_ref;
-               DateTime valid_from = DateTime.Now.ToUniversalTime ();
-               ReadOnlyCollection<SecurityKey> keys;
-               ReferenceList reference_list;
-               byte [] keyhash;
-
-               public WrappedKeySecurityToken (
-                       string id,
-                       byte [] keyToWrap,
-                       string wrappingAlgorithm,
-                       SecurityToken wrappingToken,
-                       SecurityKeyIdentifier wrappingTokenReference)
-               {
-                       if (id == null)
-                               throw new ArgumentNullException ("id");
-                       if (keyToWrap == null)
-                               throw new ArgumentNullException ("keyToWrap");
-                       if (wrappingAlgorithm == null)
-                               throw new ArgumentNullException ("wrappingAlgorithm");
-                       if (wrappingToken == null)
-                               throw new ArgumentNullException ("wrappingToken");
-
-                       raw_key = keyToWrap;
-                       this.id = id;
-                       wrap_alg = wrappingAlgorithm;
-                       wrap_token = wrappingToken;
-                       wrap_token_ref = wrappingTokenReference;
-                       Collection<SecurityKey> l = new Collection<SecurityKey> ();
-                       foreach (SecurityKey sk in wrappingToken.SecurityKeys) {
-                               if (sk.IsSupportedAlgorithm (wrappingAlgorithm)) {
-                                       wrapped_key = sk.EncryptKey (wrappingAlgorithm, keyToWrap);
-                                       l.Add (new InMemorySymmetricSecurityKey (keyToWrap));
-                                       break;
-                               }
-                       }
-                       keys = new ReadOnlyCollection<SecurityKey> (l);
-                       if (wrapped_key == null)
-                               throw new ArgumentException (String.Format ("None of the security keys in the argument token supports specified wrapping algorithm '{0}'", wrappingAlgorithm));
-               }
-
-               internal byte [] RawKey {
-                       get { return raw_key; }
-               }
-
-               // It is kind of compromised solution to output
-               // ReferenceList inside e:EncryptedKey and might disappear
-               // when non-wrapped key is represented by another token type.
-               internal ReferenceList ReferenceList {
-                       get { return reference_list; }
-                       set { reference_list = value; }
-               }
-
-               public override DateTime ValidFrom {
-                       get { return valid_from; }
-               }
-
-               public override DateTime ValidTo {
-                       get { return DateTime.MaxValue.AddDays (-1); }
-               }
-
-               public override string Id {
-                       get { return id; }
-               }
-
-               public override ReadOnlyCollection<SecurityKey> SecurityKeys {
-                       get { return keys; }
-               }
-
-               public string WrappingAlgorithm {
-                       get { return wrap_alg; }
-               }
-
-               public SecurityToken WrappingToken {
-                       get { return wrap_token; }
-               }
-
-               public SecurityKeyIdentifier WrappingTokenReference {
-                       get { return wrap_token_ref; }
-               }
-
-               public byte [] GetWrappedKey ()
-               {
-                       return (byte []) wrapped_key.Clone ();
-               }
-
-               internal void SetWrappedKey (byte [] value)
-               {
-                       wrapped_key = (byte []) value.Clone ();
-               }
-
-               [MonoTODO]
-               public override bool CanCreateKeyIdentifierClause<T> ()
-               {
-                       /*
-                       foreach (SecurityKeyIdentifierClause k in WrappingTokenReference) {
-                               Type t = k.GetType ();
-                               if (t == typeof (T) || t.IsSubclassOf (typeof (T)))
-                                       return true;
-                       }
-                       */
-                       return false;
-               }
-
-               [MonoTODO]
-               public override T CreateKeyIdentifierClause<T> ()
-               {
-                       /*
-                       foreach (SecurityKeyIdentifierClause k in WrappingTokenReference) {
-                               Type t = k.GetType ();
-                               if (t == typeof (T) || t.IsSubclassOf (typeof (T)))
-                                       return (T) k;
-                       }
-                       */
-                       throw new NotSupportedException (String.Format ("WrappedKeySecurityToken cannot create '{0}'", typeof (T)));
-               }
-
-               public override bool MatchesKeyIdentifierClause (SecurityKeyIdentifierClause keyIdentifierClause)
-               {
-                       LocalIdKeyIdentifierClause lkic = keyIdentifierClause as LocalIdKeyIdentifierClause;
-                       if (lkic != null && lkic.LocalId == Id)
-                               return true;
-
-                       InternalEncryptedKeyIdentifierClause khic = keyIdentifierClause as InternalEncryptedKeyIdentifierClause;
-                       if (keyhash == null)
-                               keyhash = SHA1.Create ().ComputeHash (wrapped_key);
-                       if (khic != null && khic.Matches (keyhash))
-                               return true;
-
-                       return false;
-               }
-       }
-}
diff --git a/mcs/class/System.ServiceModel/System.ServiceModel.Security/BinarySecretKeyIdentifierClause.cs b/mcs/class/System.ServiceModel/System.ServiceModel.Security/BinarySecretKeyIdentifierClause.cs
deleted file mode 100644 (file)
index 497d5c7..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-//
-// BinarySecretKeyIdentifierClause.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2006 Novell, Inc.  http://www.novell.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.
-//
-using System;
-using System.Collections.Generic;
-using System.Xml;
-using System.IdentityModel.Policy;
-using System.IdentityModel.Tokens;
-
-namespace System.ServiceModel.Security
-{
-       public class BinarySecretKeyIdentifierClause : BinaryKeyIdentifierClause
-       {
-               public BinarySecretKeyIdentifierClause (byte [] key)
-                       : this (key, true)
-               {
-               }
-
-               [MonoTODO ("ClauseType")]
-               public BinarySecretKeyIdentifierClause (byte [] key, bool cloneBuffer)
-                       : base ("", key, cloneBuffer)
-               {
-               }
-
-               [MonoTODO ("ClauseType")]
-               public BinarySecretKeyIdentifierClause (byte [] key, bool cloneBuffer, byte [] derivationNonce, int derivationLength)
-                       : base ("", key, cloneBuffer, derivationNonce, derivationLength)
-               {
-               }
-
-               public override bool CanCreateKey {
-                       get { return true; }
-               }
-
-               public byte [] GetKeyBytes ()
-               {
-                       return GetBuffer ();
-               }
-
-               public override SecurityKey CreateKey ()
-               {
-                       return new InMemorySymmetricSecurityKey (GetRawBuffer (), true);
-               }
-
-               public override bool Matches (SecurityKeyIdentifierClause clause)
-               {
-                       if (clause == null)
-                               throw new ArgumentNullException ("clause");
-                       BinarySecretKeyIdentifierClause other =
-                               clause as BinarySecretKeyIdentifierClause;
-                       if (other == null)
-                               return false;
-                       byte [] b1 = GetRawBuffer ();
-                       byte [] b2 = other.GetRawBuffer ();
-                       if (b1.Length != b2.Length)
-                               return false;
-                       for (int i = 0; i < b1.Length; i++)
-                               if (b1 [i] != b2 [i])
-                                       return false;
-                       return true;
-               }
-       }
-}
diff --git a/mcs/class/System.ServiceModel/System.ServiceModel.Security/KeyNameIdentifierClause.cs b/mcs/class/System.ServiceModel/System.ServiceModel.Security/KeyNameIdentifierClause.cs
deleted file mode 100644 (file)
index ad7a84a..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-//
-// KeyNameIdentifierClause.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2006 Novell, Inc.  http://www.novell.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.
-//
-using System;
-using System.Collections.Generic;
-using System.Xml;
-using System.IdentityModel.Policy;
-using System.IdentityModel.Tokens;
-
-namespace System.ServiceModel.Security
-{
-       public class KeyNameIdentifierClause : SecurityKeyIdentifierClause
-       {
-               public KeyNameIdentifierClause (string keyName)
-                       : base (null)
-               {
-                       key_name = keyName;
-               }
-
-               string key_name;
-
-               public string KeyName {
-                       get { return key_name; }
-               }
-
-               public override bool Matches (SecurityKeyIdentifierClause clause)
-               {
-                       if (clause == null)
-                               throw new ArgumentNullException ("clause");
-                       KeyNameIdentifierClause knic =
-                               clause as KeyNameIdentifierClause;
-                       return knic != null && Matches (knic.KeyName);
-               }
-
-               public bool Matches (string keyName)
-               {
-                       return key_name == keyName;
-               }
-
-               public override string ToString ()
-               {
-                       return String.Concat ("KeyNameIdentifierClause(KeyName = '", KeyName, "')");
-               }
-       }
-}
diff --git a/mcs/class/System.ServiceModel/System.ServiceModel.Security/SecurityContextKeyIdentifierClause.cs b/mcs/class/System.ServiceModel/System.ServiceModel.Security/SecurityContextKeyIdentifierClause.cs
deleted file mode 100644 (file)
index 2ac33ba..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// SecurityContextKeyIdentifierClause.cs
-//
-// Author:
-//     Atsushi Enomoto <atsushi@ximian.com>
-//
-// Copyright (C) 2006 Novell, Inc.  http://www.novell.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.
-//
-
-using System.IdentityModel.Selectors;
-using System.IdentityModel.Tokens;
-using System.Xml;
-
-namespace System.ServiceModel.Security
-{
-       public class SecurityContextKeyIdentifierClause : SecurityKeyIdentifierClause
-       {
-               public SecurityContextKeyIdentifierClause (UniqueId contextId)
-                       : this (contextId, new UniqueId ())
-               {
-               }
-
-               public SecurityContextKeyIdentifierClause (UniqueId contextId, UniqueId generation)
-                       : this (contextId, generation, null, 0)
-               {
-               }
-
-               public SecurityContextKeyIdentifierClause (UniqueId contextId, UniqueId generation, byte [] derivationNonce, int derivationLength)
-                       : base (null, derivationNonce, derivationLength)
-               {
-                       this.context = contextId;
-                       this.generation = generation;
-               }
-
-               UniqueId context, generation;
-
-               public UniqueId ContextId {
-                       get { return context; }
-               }
-
-               public UniqueId Generation {
-                       get { return generation; }
-               }
-
-               public override bool Matches (
-                       SecurityKeyIdentifierClause keyIdentifierClause)
-               {
-                       SecurityContextKeyIdentifierClause other =
-                               keyIdentifierClause as SecurityContextKeyIdentifierClause;
-                       return  other != null && Matches (other.context, other.generation);
-               }
-
-               public bool Matches (UniqueId contextId, UniqueId generation)
-               {
-                       return context == contextId &&
-                               this.generation == generation;
-               }
-
-               [MonoTODO]
-               public override string ToString ()
-               {
-                       return base.ToString ();
-               }
-       }
-}
index 8e54cb5c622cfbb4f2f7f328292feb1605ee3d24..3f62fe4b035b325691c6d97569f7efc3284bae05 100644 (file)
@@ -726,7 +726,6 @@ System.ServiceModel.PeerResolvers/ServiceSettingsResponseInfo.cs
 System.ServiceModel.PeerResolvers/UnregisterInfo.cs
 System.ServiceModel.PeerResolvers/UpdateInfo.cs
 System.ServiceModel.Security.Tokens/AuthenticatorCommunicationObject.cs
-System.ServiceModel.Security.Tokens/BinarySecretSecurityToken.cs
 System.ServiceModel.Security.Tokens/ClaimTypeRequirement.cs
 System.ServiceModel.Security.Tokens/CommunicationSecurityTokenAuthenticator.cs
 System.ServiceModel.Security.Tokens/CommunicationSecurityTokenProvider.cs
@@ -734,7 +733,6 @@ System.ServiceModel.Security.Tokens/DerivedKeySecurityToken.cs
 System.ServiceModel.Security.Tokens/IIssuanceSecurityTokenAuthenticator.cs
 System.ServiceModel.Security.Tokens/ISecurityContextSecurityTokenCache.cs
 System.ServiceModel.Security.Tokens/InitiatorServiceModelSecurityTokenRequirement.cs
-System.ServiceModel.Security.Tokens/InternalEncryptedKeyIdentifierClause.cs
 System.ServiceModel.Security.Tokens/IssuedSecurityTokenHandler.cs
 System.ServiceModel.Security.Tokens/IssuedSecurityTokenParameters.cs
 System.ServiceModel.Security.Tokens/IssuedSecurityTokenProvider.cs
@@ -767,10 +765,8 @@ System.ServiceModel.Security.Tokens/SupportingTokenParameters.cs
 System.ServiceModel.Security.Tokens/TlsClientSession.cs
 System.ServiceModel.Security.Tokens/TlsServerSession.cs
 System.ServiceModel.Security.Tokens/UserNameSecurityTokenParameters.cs
-System.ServiceModel.Security.Tokens/WrappedKeySecurityToken.cs
 System.ServiceModel.Security.Tokens/X509SecurityTokenParameters.cs
 System.ServiceModel.Security/BasicSecurityProfileVersion.cs
-System.ServiceModel.Security/BinarySecretKeyIdentifierClause.cs
 System.ServiceModel.Security/ChannelProtectionRequirements.cs
 System.ServiceModel.Security/DataProtectionSecurityStateEncoder.cs
 System.ServiceModel.Security/ExpiredSecurityTokenException.cs
@@ -783,7 +779,6 @@ System.ServiceModel.Security/InfocardInteractiveChannelInitializer.cs
 System.ServiceModel.Security/IssuedTokenClientCredential.cs
 System.ServiceModel.Security/IssuedTokenServiceCredential.cs
 System.ServiceModel.Security/KeyEntropyMode.cs
-System.ServiceModel.Security/KeyNameIdentifierClause.cs
 System.ServiceModel.Security/MessagePartSpecification.cs
 System.ServiceModel.Security/MessageProtectionOrder.cs
 System.ServiceModel.Security/MessageSecurityException.cs
@@ -793,7 +788,6 @@ System.ServiceModel.Security/SecureConversationServiceCredential.cs
 System.ServiceModel.Security/SecureConversationVersion.cs
 System.ServiceModel.Security/SecurityAccessDeniedException.cs
 System.ServiceModel.Security/SecurityAlgorithmSuite.cs
-System.ServiceModel.Security/SecurityContextKeyIdentifierClause.cs
 System.ServiceModel.Security/SecurityCredentialsManager.cs
 System.ServiceModel.Security/SecurityMessageProperty.cs
 System.ServiceModel.Security/SecurityNegotiationException.cs
index f5b081aeda63022867e832a90b824e1233c4e4d7..ea92e69528ec021e5fffb7903ed05bd982bb561e 100644 (file)
@@ -41,7 +41,6 @@ System.ServiceModel.Security/MessagePartSpecification.cs
 System.ServiceModel.Security/PeerCredential.cs
 System.ServiceModel.Security/ScopedMessagePartSpecification.cs
 System.ServiceModel.Security/SecurityAlgorithmSuite.cs
-System.ServiceModel.Security/SecurityContextKeyIdentifierClause.cs
 System.ServiceModel.Security/SecurityMessageProperty.cs
 System.ServiceModel.Security/SecurityStateEncoder.cs
 System.ServiceModel.Security/SecurityTokenAttachmentMode.cs