summary refs log tree commit diff
path: root/crypto/src/asn1
diff options
context:
space:
mode:
authorPeter Dettman <peter.dettman@gmail.com>2022-06-21 18:57:52 +0700
committerPeter Dettman <peter.dettman@gmail.com>2022-06-21 18:57:52 +0700
commit84a1abd2bb12af82623c136243240e52a88e0bf4 (patch)
tree5a9828c8785a54c5b293ba484bdd0e2f2431600f /crypto/src/asn1
parentUpdate copyright (diff)
downloadBouncyCastle.NET-ed25519-84a1abd2bb12af82623c136243240e52a88e0bf4.tar.xz
ObsoleteAttribute cleanup
Diffstat (limited to 'crypto/src/asn1')
-rw-r--r--crypto/src/asn1/Asn1OutputStream.cs13
-rw-r--r--crypto/src/asn1/Asn1TaggedObject.cs6
-rw-r--r--crypto/src/asn1/Asn1Tags.cs2
-rw-r--r--crypto/src/asn1/BERTaggedObjectParser.cs3
-rw-r--r--crypto/src/asn1/BerApplicationSpecificParser.cs2
-rw-r--r--crypto/src/asn1/BerNull.cs20
-rw-r--r--crypto/src/asn1/BerOctetString.cs12
-rw-r--r--crypto/src/asn1/BerOutputStream.cs26
-rw-r--r--crypto/src/asn1/BerTaggedObject.cs10
-rw-r--r--crypto/src/asn1/DERExternal.cs15
-rw-r--r--crypto/src/asn1/DerOutputStream.cs27
-rw-r--r--crypto/src/asn1/DerTaggedObject.cs10
-rw-r--r--crypto/src/asn1/DerUTCTime.cs6
-rw-r--r--crypto/src/asn1/cmp/PKIFreeText.cs19
-rw-r--r--crypto/src/asn1/cms/AttributeTable.cs25
-rw-r--r--crypto/src/asn1/cms/EnvelopedData.cs7
-rw-r--r--crypto/src/asn1/cms/IssuerAndSerialNumber.cs5
-rw-r--r--crypto/src/asn1/cms/OriginatorIdentifierOrKey.cs34
-rw-r--r--crypto/src/asn1/cms/OriginatorPublicKey.cs4
-rw-r--r--crypto/src/asn1/cms/OtherRecipientInfo.cs4
-rw-r--r--crypto/src/asn1/cms/SignerInfo.cs4
-rw-r--r--crypto/src/asn1/cryptopro/GOST3410PublicKeyAlgParameters.cs4
-rw-r--r--crypto/src/asn1/ess/OtherCertID.cs129
-rw-r--r--crypto/src/asn1/ess/OtherSigningCertificate.cs105
-rw-r--r--crypto/src/asn1/ocsp/BasicOCSPResponse.cs24
-rw-r--r--crypto/src/asn1/pkcs/CertificationRequest.cs14
-rw-r--r--crypto/src/asn1/pkcs/PBES2Parameters.cs4
-rw-r--r--crypto/src/asn1/pkcs/PKCSObjectIdentifiers.cs12
-rw-r--r--crypto/src/asn1/pkcs/RSAPrivateKeyStructure.cs4
-rw-r--r--crypto/src/asn1/sec/ECPrivateKeyStructure.cs50
-rw-r--r--crypto/src/asn1/smime/SMIMECapabilities.cs11
-rw-r--r--crypto/src/asn1/util/FilterStream.cs83
-rw-r--r--crypto/src/asn1/x509/AlgorithmIdentifier.cs13
-rw-r--r--crypto/src/asn1/x509/AttributeTable.cs18
-rw-r--r--crypto/src/asn1/x509/ExtendedKeyUsage.cs17
-rw-r--r--crypto/src/asn1/x509/SubjectDirectoryAttributes.cs9
-rw-r--r--crypto/src/asn1/x509/SubjectPublicKeyInfo.cs13
-rw-r--r--crypto/src/asn1/x509/X509Extensions.cs65
-rw-r--r--crypto/src/asn1/x9/X962Parameters.cs4
-rw-r--r--crypto/src/asn1/x9/X9Curve.cs8
-rw-r--r--crypto/src/asn1/x9/X9FieldElement.cs19
-rw-r--r--crypto/src/asn1/x9/X9ObjectIdentifiers.cs8
42 files changed, 32 insertions, 836 deletions
diff --git a/crypto/src/asn1/Asn1OutputStream.cs b/crypto/src/asn1/Asn1OutputStream.cs
index 096b569e3..1a69d7c2c 100644
--- a/crypto/src/asn1/Asn1OutputStream.cs
+++ b/crypto/src/asn1/Asn1OutputStream.cs
@@ -1,10 +1,12 @@
 using System;
 using System.IO;
 
+using Org.BouncyCastle.Utilities.IO;
+
 namespace Org.BouncyCastle.Asn1
 {
     public class Asn1OutputStream
-        : DerOutputStream
+        : FilterStream
     {
         internal const int EncodingBer = 1;
         internal const int EncodingDer = 2;
@@ -18,7 +20,7 @@ namespace Org.BouncyCastle.Asn1
         {
             if (Asn1Encodable.Der.Equals(encoding))
             {
-                return new DerOutputStreamNew(output);
+                return new DerOutputStream(output);
             }
             else
             {
@@ -26,13 +28,12 @@ namespace Org.BouncyCastle.Asn1
             }
         }
 
-        [Obsolete("Use static Create method(s)")]
-        public Asn1OutputStream(Stream os)
+        internal Asn1OutputStream(Stream os)
             : base(os)
         {
         }
 
-        public override void WriteObject(Asn1Encodable asn1Encodable)
+        public virtual void WriteObject(Asn1Encodable asn1Encodable)
         {
             if (null == asn1Encodable)
                 throw new ArgumentNullException("asn1Encodable");
@@ -41,7 +42,7 @@ namespace Org.BouncyCastle.Asn1
             FlushInternal();
         }
 
-        public override void WriteObject(Asn1Object asn1Object)
+        public virtual void WriteObject(Asn1Object asn1Object)
         {
             if (null == asn1Object)
                 throw new ArgumentNullException("asn1Object");
diff --git a/crypto/src/asn1/Asn1TaggedObject.cs b/crypto/src/asn1/Asn1TaggedObject.cs
index ce5e9e3f2..3bc339c83 100644
--- a/crypto/src/asn1/Asn1TaggedObject.cs
+++ b/crypto/src/asn1/Asn1TaggedObject.cs
@@ -159,12 +159,6 @@ namespace Org.BouncyCastle.Asn1
             return this.tagClass == tagClass && this.tagNo == tagNo;
         }
 
-        [Obsolete("Will be removed. Replace with constant return value of 'false'")]
-        public bool IsEmpty()
-        {
-            return false;
-        }
-
         /**
          * return whether or not the object may be explicitly tagged.
          * <p>
diff --git a/crypto/src/asn1/Asn1Tags.cs b/crypto/src/asn1/Asn1Tags.cs
index 670fb7d96..f962e4e86 100644
--- a/crypto/src/asn1/Asn1Tags.cs
+++ b/crypto/src/asn1/Asn1Tags.cs
@@ -41,8 +41,6 @@ namespace Org.BouncyCastle.Asn1
 
         public const int Universal = 0x00;
         public const int Application = 0x40;
-        [Obsolete("Use 'ContextSpecific' instead")]
-        public const int Tagged = 0x80;
         public const int ContextSpecific = 0x80;
         public const int Private = 0xC0;
 
diff --git a/crypto/src/asn1/BERTaggedObjectParser.cs b/crypto/src/asn1/BERTaggedObjectParser.cs
index c87f6cf9a..8fee8977f 100644
--- a/crypto/src/asn1/BERTaggedObjectParser.cs
+++ b/crypto/src/asn1/BERTaggedObjectParser.cs
@@ -3,8 +3,7 @@ using System.IO;
 
 namespace Org.BouncyCastle.Asn1
 {
-    [Obsolete("Will be made non-public. Test for and use only Asn1TaggedObjectParser.")]
-	public class BerTaggedObjectParser
+	internal class BerTaggedObjectParser
 		: Asn1TaggedObjectParser
 	{
         internal readonly int m_tagClass;
diff --git a/crypto/src/asn1/BerApplicationSpecificParser.cs b/crypto/src/asn1/BerApplicationSpecificParser.cs
index 75b7e7632..343dc5d68 100644
--- a/crypto/src/asn1/BerApplicationSpecificParser.cs
+++ b/crypto/src/asn1/BerApplicationSpecificParser.cs
@@ -2,7 +2,7 @@ using System;
 
 namespace Org.BouncyCastle.Asn1
 {
-	public class BerApplicationSpecificParser
+	internal class BerApplicationSpecificParser
 		: BerTaggedObjectParser, IAsn1ApplicationSpecificParser
 	{
 		internal BerApplicationSpecificParser(int tagNo, Asn1StreamParser parser)
diff --git a/crypto/src/asn1/BerNull.cs b/crypto/src/asn1/BerNull.cs
deleted file mode 100644
index 90067d4cd..000000000
--- a/crypto/src/asn1/BerNull.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System;
-
-namespace Org.BouncyCastle.Asn1
-{
-	/**
-	 * A BER Null object.
-	 */
-    [Obsolete("Use 'DerNull' instead")]
-	public class BerNull
-		: DerNull
-	{
-        [Obsolete("Use 'DerNull.Instance' instead")]
-        public static new readonly BerNull Instance = new BerNull();
-
-		private BerNull()
-            : base()
-		{
-		}
-	}
-}
diff --git a/crypto/src/asn1/BerOctetString.cs b/crypto/src/asn1/BerOctetString.cs
index 8e51f8bca..2ee508b34 100644
--- a/crypto/src/asn1/BerOctetString.cs
+++ b/crypto/src/asn1/BerOctetString.cs
@@ -70,12 +70,6 @@ namespace Org.BouncyCastle.Asn1
         private readonly int segmentLimit;
         private readonly Asn1OctetString[] elements;
 
-        [Obsolete("Will be removed")]
-        public BerOctetString(IEnumerable e)
-            : this(ToOctetStringArray(e))
-        {
-        }
-
         public BerOctetString(byte[] contents)
 			: this(contents, DefaultSegmentLimit)
 		{
@@ -114,12 +108,6 @@ namespace Org.BouncyCastle.Asn1
 			return elements.GetEnumerator();
 		}
 
-		[Obsolete("Use GetEnumerator() instead")]
-        public IEnumerator GetObjects()
-        {
-			return GetEnumerator();
-		}
-
         internal override IAsn1Encoding GetEncoding(int encoding)
         {
             if (Asn1OutputStream.EncodingBer != encoding)
diff --git a/crypto/src/asn1/BerOutputStream.cs b/crypto/src/asn1/BerOutputStream.cs
deleted file mode 100644
index 1486368e0..000000000
--- a/crypto/src/asn1/BerOutputStream.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System;
-using System.IO;
-
-namespace Org.BouncyCastle.Asn1
-{
-    [Obsolete("Use 'Asn1OutputStream' instead")]
-    public class BerOutputStream
-        : DerOutputStream
-    {
-        [Obsolete("Use 'Asn1OutputStream.Create' instead")]
-        public BerOutputStream(Stream os)
-            : base(os)
-        {
-        }
-
-        public override void WriteObject(Asn1Encodable encodable)
-        {
-            Asn1OutputStream.Create(s).WriteObject(encodable);
-        }
-
-        public override void WriteObject(Asn1Object primitive)
-        {
-            Asn1OutputStream.Create(s).WriteObject(primitive);
-        }
-    }
-}
diff --git a/crypto/src/asn1/BerTaggedObject.cs b/crypto/src/asn1/BerTaggedObject.cs
index e613d98d9..4970b76f9 100644
--- a/crypto/src/asn1/BerTaggedObject.cs
+++ b/crypto/src/asn1/BerTaggedObject.cs
@@ -11,16 +11,6 @@ namespace Org.BouncyCastle.Asn1
 		: DerTaggedObject
 	{
         /**
-		 * create an implicitly tagged object that contains a zero
-		 * length sequence.
-		 */
-        [Obsolete("Will be removed")]
-        public BerTaggedObject(int tagNo)
-            : base(false, tagNo, BerSequence.Empty)
-        {
-        }
-
-        /**
 		 * @param tagNo the tag number for this object.
 		 * @param obj the tagged object.
 		 */
diff --git a/crypto/src/asn1/DERExternal.cs b/crypto/src/asn1/DERExternal.cs
index b8987d53e..cc3d2435f 100644
--- a/crypto/src/asn1/DERExternal.cs
+++ b/crypto/src/asn1/DERExternal.cs
@@ -100,13 +100,6 @@ namespace Org.BouncyCastle.Asn1
             this.externalContent = GetExternalContent(obj);
 		}
 
-        [Obsolete("Use constructor with dataValueDescriptor of type Asn1ObjectDescriptor")]
-        public DerExternal(DerObjectIdentifier directReference, DerInteger indirectReference,
-            Asn1Object dataValueDescriptor, DerTaggedObject externalData)
-			: this(directReference, indirectReference, CheckDataValueDescriptor(dataValueDescriptor), externalData)
-		{
-		}
-
         /**
 		* Creates a new instance of DerExternal
 		* See X.690 for more informations about the meaning of these parameters
@@ -125,14 +118,6 @@ namespace Org.BouncyCastle.Asn1
             this.externalContent = GetExternalContent(externalData);
         }
 
-        [Obsolete("Use constructor with dataValueDescriptor of type Asn1ObjectDescriptor")]
-        public DerExternal(DerObjectIdentifier directReference, DerInteger indirectReference,
-            Asn1Object dataValueDescriptor, int encoding, Asn1Object externalData)
-            : this(directReference, indirectReference, CheckDataValueDescriptor(dataValueDescriptor), encoding,
-                  externalData)
-		{
-		}
-
         /**
 		* Creates a new instance of DerExternal.
 		* See X.690 for more informations about the meaning of these parameters
diff --git a/crypto/src/asn1/DerOutputStream.cs b/crypto/src/asn1/DerOutputStream.cs
index 4c7dd1fd7..6304ca852 100644
--- a/crypto/src/asn1/DerOutputStream.cs
+++ b/crypto/src/asn1/DerOutputStream.cs
@@ -1,35 +1,12 @@
 using System;
 using System.IO;
 
-using Org.BouncyCastle.Utilities.IO;
-
 namespace Org.BouncyCastle.Asn1
 {
-    [Obsolete("Use 'Asn1OutputStream' instead")]
-    public class DerOutputStream
-        : FilterStream
-    {
-        [Obsolete("Use 'Asn1OutputStream.Create' instead")]
-        public DerOutputStream(Stream os)
-            : base(os)
-        {
-        }
-
-        public virtual void WriteObject(Asn1Encodable encodable)
-        {
-            Asn1OutputStream.Create(s, Asn1Encodable.Der).WriteObject(encodable);
-        }
-
-        public virtual void WriteObject(Asn1Object primitive)
-        {
-            Asn1OutputStream.Create(s, Asn1Encodable.Der).WriteObject(primitive);
-        }
-	}
-
-    internal class DerOutputStreamNew
+    internal class DerOutputStream
         : Asn1OutputStream
     {
-        internal DerOutputStreamNew(Stream os)
+        internal DerOutputStream(Stream os)
             : base(os)
         {
         }
diff --git a/crypto/src/asn1/DerTaggedObject.cs b/crypto/src/asn1/DerTaggedObject.cs
index 68a32e435..9d9997dc6 100644
--- a/crypto/src/asn1/DerTaggedObject.cs
+++ b/crypto/src/asn1/DerTaggedObject.cs
@@ -10,16 +10,6 @@ namespace Org.BouncyCastle.Asn1
 	public class DerTaggedObject
 		: Asn1TaggedObject
 	{
-        /**
-		 * create an implicitly tagged object that contains a zero
-		 * length sequence.
-		 */
-        [Obsolete("Will be removed")]
-        public DerTaggedObject(int tagNo)
-            : base(false, tagNo, DerSequence.Empty)
-        {
-        }
-
         public DerTaggedObject(int tagNo, Asn1Encodable obj)
 			: base(true, tagNo, obj)
 		{
diff --git a/crypto/src/asn1/DerUTCTime.cs b/crypto/src/asn1/DerUTCTime.cs
index cb3f13353..3b4b247bd 100644
--- a/crypto/src/asn1/DerUTCTime.cs
+++ b/crypto/src/asn1/DerUTCTime.cs
@@ -223,12 +223,6 @@ namespace Org.BouncyCastle.Asn1
 			}
         }
 
-		[Obsolete("Use 'AdjustedTimeString' property instead")]
-		public string AdjustedTime
-		{
-			get { return AdjustedTimeString; }
-		}
-
 		/// <summary>
 		/// Return a time string as an adjusted date with a 4 digit year.
 		/// This goes in the range of 1950 - 2049.
diff --git a/crypto/src/asn1/cmp/PKIFreeText.cs b/crypto/src/asn1/cmp/PKIFreeText.cs
index fef525465..006930320 100644
--- a/crypto/src/asn1/cmp/PKIFreeText.cs
+++ b/crypto/src/asn1/cmp/PKIFreeText.cs
@@ -1,5 +1,4 @@
 using System;
-using System.Collections;
 
 using Org.BouncyCastle.Utilities;
 
@@ -52,17 +51,6 @@ namespace Org.BouncyCastle.Asn1.Cmp
 			strings = new DerSequence(p);
 		}
 
-		/**
-		 * Return the number of string elements present.
-		 *
-		 * @return number of elements present.
-		 */
-		[Obsolete("Use 'Count' property instead")]
-		public int Size
-		{
-			get { return strings.Count; }
-		}
-
 		public int Count
 		{
 			get { return strings.Count; }
@@ -79,13 +67,6 @@ namespace Org.BouncyCastle.Asn1.Cmp
 			get { return (DerUtf8String) strings[index]; }
 		}
 
-		[Obsolete("Use 'object[index]' syntax instead")]
-		public DerUtf8String GetStringAt(
-			int index)
-		{
-			return this[index];
-		}
-
 		/**
 		 * <pre>
 		 * PkiFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
diff --git a/crypto/src/asn1/cms/AttributeTable.cs b/crypto/src/asn1/cms/AttributeTable.cs
index 8d357f1a6..e20e6e9b2 100644
--- a/crypto/src/asn1/cms/AttributeTable.cs
+++ b/crypto/src/asn1/cms/AttributeTable.cs
@@ -1,7 +1,6 @@
 using System;
 using System.Collections;
 
-using Org.BouncyCastle.Asn1;
 using Org.BouncyCastle.Utilities;
 
 namespace Org.BouncyCastle.Asn1.Cms
@@ -10,15 +9,6 @@ namespace Org.BouncyCastle.Asn1.Cms
     {
         private readonly IDictionary attributes;
 
-#if !(SILVERLIGHT || PORTABLE)
-        [Obsolete]
-        public AttributeTable(
-            Hashtable attrs)
-        {
-            this.attributes = Platform.CreateHashtable(attrs);
-        }
-#endif
-
         public AttributeTable(
             IDictionary attrs)
         {
@@ -105,13 +95,6 @@ namespace Org.BouncyCastle.Asn1.Cms
 			}
 		}
 
-		[Obsolete("Use 'object[oid]' syntax instead")]
-        public Attribute Get(
-            DerObjectIdentifier oid)
-        {
-			return this[oid];
-        }
-
 		/**
         * Return all the attributes matching the OBJECT IDENTIFIER oid. The vector will be
         * empty if there are no attributes of the required type present.
@@ -168,14 +151,6 @@ namespace Org.BouncyCastle.Asn1.Cms
             return Platform.CreateHashtable(attributes);
         }
 
-#if !(SILVERLIGHT || PORTABLE)
-        [Obsolete("Use 'ToDictionary' instead")]
-		public Hashtable ToHashtable()
-        {
-            return new Hashtable(attributes);
-        }
-#endif
-
 		public Asn1EncodableVector ToAsn1EncodableVector()
         {
             Asn1EncodableVector v = new Asn1EncodableVector();
diff --git a/crypto/src/asn1/cms/EnvelopedData.cs b/crypto/src/asn1/cms/EnvelopedData.cs
index 8897fe380..45e9c5c76 100644
--- a/crypto/src/asn1/cms/EnvelopedData.cs
+++ b/crypto/src/asn1/cms/EnvelopedData.cs
@@ -1,7 +1,4 @@
 using System;
-using System.Collections;
-
-using Org.BouncyCastle.Asn1;
 
 namespace Org.BouncyCastle.Asn1.Cms
 {
@@ -40,9 +37,7 @@ namespace Org.BouncyCastle.Asn1.Cms
             this.unprotectedAttrs = Asn1Set.GetInstance(unprotectedAttrs);
         }
 
-        [Obsolete("Use 'GetInstance' instead")]
-        public EnvelopedData(
-            Asn1Sequence seq)
+        private EnvelopedData(Asn1Sequence seq)
         {
             int index = 0;
 
diff --git a/crypto/src/asn1/cms/IssuerAndSerialNumber.cs b/crypto/src/asn1/cms/IssuerAndSerialNumber.cs
index b509e7e19..8e31eb0e4 100644
--- a/crypto/src/asn1/cms/IssuerAndSerialNumber.cs
+++ b/crypto/src/asn1/cms/IssuerAndSerialNumber.cs
@@ -1,6 +1,5 @@
 using System;
 
-using Org.BouncyCastle.Asn1;
 using Org.BouncyCastle.Asn1.X509;
 using Org.BouncyCastle.Math;
 
@@ -22,9 +21,7 @@ namespace Org.BouncyCastle.Asn1.Cms
             return new IssuerAndSerialNumber(Asn1Sequence.GetInstance(obj));
         }
 
-        [Obsolete("Use GetInstance() instead")]
-        public IssuerAndSerialNumber(
-            Asn1Sequence seq)
+        private IssuerAndSerialNumber(Asn1Sequence seq)
         {
             this.name = X509Name.GetInstance(seq[0]);
             this.serialNumber = (DerInteger) seq[1];
diff --git a/crypto/src/asn1/cms/OriginatorIdentifierOrKey.cs b/crypto/src/asn1/cms/OriginatorIdentifierOrKey.cs
index f197fe965..296cadf94 100644
--- a/crypto/src/asn1/cms/OriginatorIdentifierOrKey.cs
+++ b/crypto/src/asn1/cms/OriginatorIdentifierOrKey.cs
@@ -8,42 +8,24 @@ namespace Org.BouncyCastle.Asn1.Cms
     public class OriginatorIdentifierOrKey
         : Asn1Encodable, IAsn1Choice
     {
-        private Asn1Encodable id;
+        private readonly Asn1Encodable id;
 
-        public OriginatorIdentifierOrKey(
-            IssuerAndSerialNumber id)
+        public OriginatorIdentifierOrKey(IssuerAndSerialNumber id)
         {
             this.id = id;
         }
 
-		[Obsolete("Use version taking a 'SubjectKeyIdentifier'")]
-        public OriginatorIdentifierOrKey(
-            Asn1OctetString id)
-			: this(new SubjectKeyIdentifier(id))
-        {
-        }
-
-        public OriginatorIdentifierOrKey(
-            SubjectKeyIdentifier id)
+        public OriginatorIdentifierOrKey(SubjectKeyIdentifier id)
         {
             this.id = new DerTaggedObject(false, 0, id);
         }
 
-        public OriginatorIdentifierOrKey(
-            OriginatorPublicKey id)
+        public OriginatorIdentifierOrKey(OriginatorPublicKey id)
         {
             this.id = new DerTaggedObject(false, 1, id);
         }
 
-		[Obsolete("Use more specific version")]
-        public OriginatorIdentifierOrKey(
-            Asn1Object id)
-        {
-            this.id = id;
-        }
-
-		private OriginatorIdentifierOrKey(
-			Asn1TaggedObject id)
+		private OriginatorIdentifierOrKey(Asn1TaggedObject id)
 		{
 			// TODO Add validation
 			this.id = id;
@@ -129,12 +111,6 @@ namespace Org.BouncyCastle.Asn1.Cms
 			}
 		}
 
-		[Obsolete("Use 'OriginatorPublicKey' property")]
-		public OriginatorPublicKey OriginatorKey
-		{
-			get { return OriginatorPublicKey; }
-		}
-
 		public OriginatorPublicKey OriginatorPublicKey
 		{
 			get
diff --git a/crypto/src/asn1/cms/OriginatorPublicKey.cs b/crypto/src/asn1/cms/OriginatorPublicKey.cs
index 9f29c6242..83db619ea 100644
--- a/crypto/src/asn1/cms/OriginatorPublicKey.cs
+++ b/crypto/src/asn1/cms/OriginatorPublicKey.cs
@@ -19,9 +19,7 @@ namespace Org.BouncyCastle.Asn1.Cms
             this.mPublicKey = new DerBitString(publicKey);
         }
 
-        [Obsolete("Use 'GetInstance' instead")]
-		public OriginatorPublicKey(
-            Asn1Sequence seq)
+		private OriginatorPublicKey(Asn1Sequence seq)
         {
             this.mAlgorithm = AlgorithmIdentifier.GetInstance(seq[0]);
             this.mPublicKey = DerBitString.GetInstance(seq[1]);
diff --git a/crypto/src/asn1/cms/OtherRecipientInfo.cs b/crypto/src/asn1/cms/OtherRecipientInfo.cs
index 80dd68e7c..eb5f6202e 100644
--- a/crypto/src/asn1/cms/OtherRecipientInfo.cs
+++ b/crypto/src/asn1/cms/OtherRecipientInfo.cs
@@ -16,9 +16,7 @@ namespace Org.BouncyCastle.Asn1.Cms
             this.oriValue = oriValue;
         }
 
-        [Obsolete("Use GetInstance() instead")]
-        public OtherRecipientInfo(
-            Asn1Sequence seq)
+        private OtherRecipientInfo(Asn1Sequence seq)
         {
             oriType = DerObjectIdentifier.GetInstance(seq[0]);
             oriValue = seq[1];
diff --git a/crypto/src/asn1/cms/SignerInfo.cs b/crypto/src/asn1/cms/SignerInfo.cs
index 44d4dcfb2..82ed04082 100644
--- a/crypto/src/asn1/cms/SignerInfo.cs
+++ b/crypto/src/asn1/cms/SignerInfo.cs
@@ -63,9 +63,7 @@ namespace Org.BouncyCastle.Asn1.Cms
             this.unauthenticatedAttributes = Asn1Set.GetInstance(unauthenticatedAttributes);
         }
 
-        [Obsolete("Use 'GetInstance' instead")]
-        public SignerInfo(
-            Asn1Sequence seq)
+        private SignerInfo(Asn1Sequence seq)
         {
             IEnumerator e = seq.GetEnumerator();
 
diff --git a/crypto/src/asn1/cryptopro/GOST3410PublicKeyAlgParameters.cs b/crypto/src/asn1/cryptopro/GOST3410PublicKeyAlgParameters.cs
index c32025ef6..c6ea26204 100644
--- a/crypto/src/asn1/cryptopro/GOST3410PublicKeyAlgParameters.cs
+++ b/crypto/src/asn1/cryptopro/GOST3410PublicKeyAlgParameters.cs
@@ -49,9 +49,7 @@ namespace Org.BouncyCastle.Asn1.CryptoPro
             this.encryptionParamSet = encryptionParamSet;
         }
 
-        [Obsolete("Use 'GetInstance' instead")]
-        public Gost3410PublicKeyAlgParameters(
-            Asn1Sequence seq)
+        private Gost3410PublicKeyAlgParameters(Asn1Sequence seq)
         {
             this.publicKeyParamSet = (DerObjectIdentifier) seq[0];
             this.digestParamSet = (DerObjectIdentifier) seq[1];
diff --git a/crypto/src/asn1/ess/OtherCertID.cs b/crypto/src/asn1/ess/OtherCertID.cs
deleted file mode 100644
index 183055e56..000000000
--- a/crypto/src/asn1/ess/OtherCertID.cs
+++ /dev/null
@@ -1,129 +0,0 @@
-using System;
-
-using Org.BouncyCastle.Asn1.Oiw;
-using Org.BouncyCastle.Asn1.X509;
-using Org.BouncyCastle.Utilities;
-
-namespace Org.BouncyCastle.Asn1.Ess
-{
-	[Obsolete("Use version in Asn1.Esf instead")]
-	public class OtherCertID
-		: Asn1Encodable
-	{
-		private Asn1Encodable otherCertHash;
-		private IssuerSerial issuerSerial;
-
-		public static OtherCertID GetInstance(
-			object o)
-		{
-			if (o == null || o is OtherCertID)
-			{
-				return (OtherCertID) o;
-			}
-
-			if (o is Asn1Sequence)
-			{
-				return new OtherCertID((Asn1Sequence) o);
-			}
-
-			throw new ArgumentException(
-				"unknown object in 'OtherCertID' factory : "
-                + Platform.GetTypeName(o) + ".");
-		}
-
-		/**
-		 * constructor
-		 */
-		public OtherCertID(
-			Asn1Sequence seq)
-		{
-			if (seq.Count < 1 || seq.Count > 2)
-			{
-				throw new ArgumentException("Bad sequence size: " + seq.Count);
-			}
-
-			if (seq[0].ToAsn1Object() is Asn1OctetString)
-			{
-				otherCertHash = Asn1OctetString.GetInstance(seq[0]);
-			}
-			else
-			{
-				otherCertHash = DigestInfo.GetInstance(seq[0]);
-			}
-
-			if (seq.Count > 1)
-			{
-				issuerSerial = IssuerSerial.GetInstance(Asn1Sequence.GetInstance(seq[1]));
-			}
-		}
-
-		public OtherCertID(
-			AlgorithmIdentifier	algId,
-			byte[]				digest)
-		{
-			this.otherCertHash = new DigestInfo(algId, digest);
-		}
-
-		public OtherCertID(
-			AlgorithmIdentifier	algId,
-			byte[]				digest,
-			IssuerSerial		issuerSerial)
-		{
-			this.otherCertHash = new DigestInfo(algId, digest);
-			this.issuerSerial = issuerSerial;
-		}
-
-		public AlgorithmIdentifier AlgorithmHash
-		{
-			get
-			{
-				if (otherCertHash.ToAsn1Object() is Asn1OctetString)
-				{
-					// SHA-1
-					return new AlgorithmIdentifier(OiwObjectIdentifiers.IdSha1);
-				}
-
-				return DigestInfo.GetInstance(otherCertHash).AlgorithmID;
-			}
-		}
-
-		public byte[] GetCertHash()
-		{
-			if (otherCertHash.ToAsn1Object() is Asn1OctetString)
-			{
-				// SHA-1
-				return ((Asn1OctetString) otherCertHash.ToAsn1Object()).GetOctets();
-			}
-
-			return DigestInfo.GetInstance(otherCertHash).GetDigest();
-		}
-
-		public IssuerSerial IssuerSerial
-		{
-			get { return issuerSerial; }
-		}
-
-		/**
-		 * <pre>
-		 * OtherCertID ::= SEQUENCE {
-		 *     otherCertHash    OtherHash,
-		 *     issuerSerial     IssuerSerial OPTIONAL }
-		 *
-		 * OtherHash ::= CHOICE {
-		 *     sha1Hash     OCTET STRING,
-		 *     otherHash    OtherHashAlgAndValue }
-		 *
-		 * OtherHashAlgAndValue ::= SEQUENCE {
-		 *     hashAlgorithm    AlgorithmIdentifier,
-		 *     hashValue        OCTET STRING }
-		 *
-		 * </pre>
-		 */
-		public override Asn1Object ToAsn1Object()
-		{
-			Asn1EncodableVector v = new Asn1EncodableVector(otherCertHash);
-            v.AddOptional(issuerSerial);
-			return new DerSequence(v);
-		}
-	}
-}
diff --git a/crypto/src/asn1/ess/OtherSigningCertificate.cs b/crypto/src/asn1/ess/OtherSigningCertificate.cs
deleted file mode 100644
index 65152b675..000000000
--- a/crypto/src/asn1/ess/OtherSigningCertificate.cs
+++ /dev/null
@@ -1,105 +0,0 @@
-using System;
-
-using Org.BouncyCastle.Asn1.X509;
-using Org.BouncyCastle.Utilities;
-
-namespace Org.BouncyCastle.Asn1.Ess
-{
-	[Obsolete("Use version in Asn1.Esf instead")]
-	public class OtherSigningCertificate
-		: Asn1Encodable
-	{
-		private Asn1Sequence certs, policies;
-
-		public static OtherSigningCertificate GetInstance(
-			object o)
-		{
-			if (o == null || o is OtherSigningCertificate)
-			{
-				return (OtherSigningCertificate) o;
-			}
-
-			if (o is Asn1Sequence)
-			{
-				return new OtherSigningCertificate((Asn1Sequence) o);
-			}
-
-			throw new ArgumentException(
-				"unknown object in 'OtherSigningCertificate' factory : "
-                + Platform.GetTypeName(o) + ".");
-		}
-
-		/**
-		 * constructors
-		 */
-		public OtherSigningCertificate(
-			Asn1Sequence seq)
-		{
-			if (seq.Count < 1 || seq.Count > 2)
-			{
-				throw new ArgumentException("Bad sequence size: " + seq.Count);
-			}
-
-			this.certs = Asn1Sequence.GetInstance(seq[0]);
-
-			if (seq.Count > 1)
-			{
-				this.policies = Asn1Sequence.GetInstance(seq[1]);
-			}
-		}
-
-		public OtherSigningCertificate(
-			OtherCertID otherCertID)
-		{
-			certs = new DerSequence(otherCertID);
-		}
-
-		public OtherCertID[] GetCerts()
-		{
-			OtherCertID[] cs = new OtherCertID[certs.Count];
-
-			for (int i = 0; i != certs.Count; ++i)
-			{
-				cs[i] = OtherCertID.GetInstance(certs[i]);
-			}
-
-			return cs;
-		}
-
-		public PolicyInformation[] GetPolicies()
-		{
-			if (policies == null)
-			{
-				return null;
-			}
-
-			PolicyInformation[] ps = new PolicyInformation[policies.Count];
-
-			for (int i = 0; i != policies.Count; i++)
-			{
-				ps[i] = PolicyInformation.GetInstance(policies[i]);
-			}
-
-			return ps;
-		}
-
-		/**
-		 * The definition of OtherSigningCertificate is
-		 * <pre>
-		 * OtherSigningCertificate ::=  SEQUENCE {
-		 *      certs        SEQUENCE OF OtherCertID,
-		 *      policies     SEQUENCE OF PolicyInformation OPTIONAL
-		 * }
-		 * </pre>
-		 * id-aa-ets-otherSigCert OBJECT IDENTIFIER ::= { iso(1)
-		 *  member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
-		 *  smime(16) id-aa(2) 19 }
-		 */
-		public override Asn1Object ToAsn1Object()
-		{
-			Asn1EncodableVector v = new Asn1EncodableVector(certs);
-            v.AddOptional(policies);
-			return new DerSequence(v);
-		}
-	}
-}
diff --git a/crypto/src/asn1/ocsp/BasicOCSPResponse.cs b/crypto/src/asn1/ocsp/BasicOCSPResponse.cs
index 45dadba4f..2637d36bc 100644
--- a/crypto/src/asn1/ocsp/BasicOCSPResponse.cs
+++ b/crypto/src/asn1/ocsp/BasicOCSPResponse.cs
@@ -62,34 +62,16 @@ namespace Org.BouncyCastle.Asn1.Ocsp
             }
         }
 
-		[Obsolete("Use TbsResponseData property instead")]
-		public ResponseData GetTbsResponseData()
-        {
-            return tbsResponseData;
-        }
-
 		public ResponseData TbsResponseData
 		{
 			get { return tbsResponseData; }
 		}
 
-		[Obsolete("Use SignatureAlgorithm property instead")]
-		public AlgorithmIdentifier GetSignatureAlgorithm()
-        {
-            return signatureAlgorithm;
-        }
-
 		public AlgorithmIdentifier SignatureAlgorithm
 		{
 			get { return signatureAlgorithm; }
 		}
 
-		[Obsolete("Use Signature property instead")]
-		public DerBitString GetSignature()
-        {
-            return signature;
-        }
-
 		public DerBitString Signature
 		{
 			get { return signature; }
@@ -100,12 +82,6 @@ namespace Org.BouncyCastle.Asn1.Ocsp
             return signature.GetOctets();
         }
 
-        [Obsolete("Use Certs property instead")]
-		public Asn1Sequence GetCerts()
-        {
-            return certs;
-        }
-
 		public Asn1Sequence Certs
 		{
 			get { return certs; }
diff --git a/crypto/src/asn1/pkcs/CertificationRequest.cs b/crypto/src/asn1/pkcs/CertificationRequest.cs
index 98caa2268..8c4248d36 100644
--- a/crypto/src/asn1/pkcs/CertificationRequest.cs
+++ b/crypto/src/asn1/pkcs/CertificationRequest.cs
@@ -24,13 +24,11 @@ namespace Org.BouncyCastle.Asn1.Pkcs
 		public static CertificationRequest GetInstance(
 			object obj)
 		{
-			if (obj is CertificationRequest)
+            if (obj == null)
+                return null;
+            if (obj is CertificationRequest)
 				return (CertificationRequest)obj;
-
-			if (obj != null)
-				return new CertificationRequest((Asn1Sequence)obj);
-
-			return null;
+            return new CertificationRequest(Asn1Sequence.GetInstance(obj));
 		}
 
 		protected CertificationRequest()
@@ -47,9 +45,7 @@ namespace Org.BouncyCastle.Asn1.Pkcs
             this.sigBits = signature;
         }
 
-        [Obsolete("Use 'GetInstance' instead")]
-        public CertificationRequest(
-            Asn1Sequence seq)
+        internal CertificationRequest(Asn1Sequence seq)
         {
 			if (seq.Count != 3)
 				throw new ArgumentException("Wrong number of elements in sequence", "seq");
diff --git a/crypto/src/asn1/pkcs/PBES2Parameters.cs b/crypto/src/asn1/pkcs/PBES2Parameters.cs
index fc6904eed..66e4755c8 100644
--- a/crypto/src/asn1/pkcs/PBES2Parameters.cs
+++ b/crypto/src/asn1/pkcs/PBES2Parameters.cs
@@ -24,9 +24,7 @@ namespace Org.BouncyCastle.Asn1.Pkcs
             this.scheme = encScheme;
         }
 
-        [Obsolete("Use GetInstance() instead")]
-        public PbeS2Parameters(
-            Asn1Sequence seq)
+        private PbeS2Parameters(Asn1Sequence seq)
         {
             if (seq.Count != 2)
                 throw new ArgumentException("Wrong number of elements in sequence", "seq");
diff --git a/crypto/src/asn1/pkcs/PKCSObjectIdentifiers.cs b/crypto/src/asn1/pkcs/PKCSObjectIdentifiers.cs
index 6c7fed442..8b74e8099 100644
--- a/crypto/src/asn1/pkcs/PKCSObjectIdentifiers.cs
+++ b/crypto/src/asn1/pkcs/PKCSObjectIdentifiers.cs
@@ -129,9 +129,6 @@ namespace Org.BouncyCastle.Asn1.Pkcs
         public static readonly DerObjectIdentifier Pkcs9AtFriendlyName					= new DerObjectIdentifier(Pkcs9 + ".20");
         public static readonly DerObjectIdentifier Pkcs9AtLocalKeyID					= new DerObjectIdentifier(Pkcs9 + ".21");
 
-		[Obsolete("Use X509Certificate instead")]
-        public static readonly DerObjectIdentifier X509CertType = new DerObjectIdentifier(Pkcs9 + ".22.1");
-
 		public const string CertTypes = Pkcs9 + ".22";
 		public static readonly DerObjectIdentifier X509Certificate = new DerObjectIdentifier(CertTypes + ".1");
 		public static readonly DerObjectIdentifier SdsiCertificate = new DerObjectIdentifier(CertTypes + ".2");
@@ -261,15 +258,6 @@ namespace Org.BouncyCastle.Asn1.Pkcs
         /** PKCS#9: 1.2.840.113549.1.9.16.2.40   <a href="https://tools.ietf.org/html/rfc7030">RFC7030</a>*/
         public static readonly DerObjectIdentifier IdAACommunityIdentifiers = IdAAOid.Branch("40");
 
-		[Obsolete("Use 'IdAAEtsSigPolicyID' instead")]
-		public static readonly DerObjectIdentifier IdAASigPolicyID = IdAAEtsSigPolicyID;
-		[Obsolete("Use 'IdAAEtsCommitmentType' instead")]
-		public static readonly DerObjectIdentifier IdAACommitmentType = IdAAEtsCommitmentType;
-		[Obsolete("Use 'IdAAEtsSignerLocation' instead")]
-		public static readonly DerObjectIdentifier IdAASignerLocation = IdAAEtsSignerLocation;
-		[Obsolete("Use 'IdAAEtsOtherSigCert' instead")]
-		public static readonly DerObjectIdentifier IdAAOtherSigCert = IdAAEtsOtherSigCert;
-
 		//
 		// id-spq OBJECT IDENTIFIER ::= {iso(1) member-body(2) usa(840)
 		// rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) id-spq(5)}
diff --git a/crypto/src/asn1/pkcs/RSAPrivateKeyStructure.cs b/crypto/src/asn1/pkcs/RSAPrivateKeyStructure.cs
index 738a97eb4..119ee98de 100644
--- a/crypto/src/asn1/pkcs/RSAPrivateKeyStructure.cs
+++ b/crypto/src/asn1/pkcs/RSAPrivateKeyStructure.cs
@@ -52,9 +52,7 @@ namespace Org.BouncyCastle.Asn1.Pkcs
             this.coefficient = coefficient;
         }
 
-        [Obsolete("Use 'GetInstance' method(s) instead")]
-        public RsaPrivateKeyStructure(
-            Asn1Sequence seq)
+        private RsaPrivateKeyStructure(Asn1Sequence seq)
         {
             BigInteger version = ((DerInteger)seq[0]).Value;
             if (version.IntValue != 0)
diff --git a/crypto/src/asn1/sec/ECPrivateKeyStructure.cs b/crypto/src/asn1/sec/ECPrivateKeyStructure.cs
index aec8e0af0..769ab2970 100644
--- a/crypto/src/asn1/sec/ECPrivateKeyStructure.cs
+++ b/crypto/src/asn1/sec/ECPrivateKeyStructure.cs
@@ -23,9 +23,7 @@ namespace Org.BouncyCastle.Asn1.Sec
             return new ECPrivateKeyStructure(Asn1Sequence.GetInstance(obj));
         }
 
-        [Obsolete("Use 'GetInstance' instead")]
-        public ECPrivateKeyStructure(
-            Asn1Sequence seq)
+        private ECPrivateKeyStructure(Asn1Sequence seq)
         {
             if (seq == null)
                 throw new ArgumentNullException("seq");
@@ -33,18 +31,6 @@ namespace Org.BouncyCastle.Asn1.Sec
             this.seq = seq;
         }
 
-        [Obsolete("Use constructor which takes 'orderBitLength' instead, to guarantee correct encoding")]
-        public ECPrivateKeyStructure(
-            BigInteger key)
-        {
-            if (key == null)
-                throw new ArgumentNullException("key");
-
-            this.seq = new DerSequence(
-                new DerInteger(1),
-                new DerOctetString(key.ToByteArrayUnsigned()));
-        }
-
         public ECPrivateKeyStructure(
             int         orderBitLength,
             BigInteger  key)
@@ -52,40 +38,6 @@ namespace Org.BouncyCastle.Asn1.Sec
         {
         }
 
-        [Obsolete("Use constructor which takes 'orderBitLength' instead, to guarantee correct encoding")]
-        public ECPrivateKeyStructure(
-            BigInteger		key,
-            Asn1Encodable	parameters)
-            : this(key, null, parameters)
-        {
-        }
-
-        [Obsolete("Use constructor which takes 'orderBitLength' instead, to guarantee correct encoding")]
-        public ECPrivateKeyStructure(
-            BigInteger		key,
-            DerBitString	publicKey,
-            Asn1Encodable	parameters)
-        {
-            if (key == null)
-                throw new ArgumentNullException("key");
-
-            Asn1EncodableVector v = new Asn1EncodableVector(
-                new DerInteger(1),
-                new DerOctetString(key.ToByteArrayUnsigned()));
-
-            if (parameters != null)
-            {
-                v.Add(new DerTaggedObject(true, 0, parameters));
-            }
-
-            if (publicKey != null)
-            {
-                v.Add(new DerTaggedObject(true, 1, publicKey));
-            }
-
-            this.seq = new DerSequence(v);
-        }
-
         public ECPrivateKeyStructure(
             int             orderBitLength,
             BigInteger      key,
diff --git a/crypto/src/asn1/smime/SMIMECapabilities.cs b/crypto/src/asn1/smime/SMIMECapabilities.cs
index 5bf48f321..0bfa05034 100644
--- a/crypto/src/asn1/smime/SMIMECapabilities.cs
+++ b/crypto/src/asn1/smime/SMIMECapabilities.cs
@@ -71,17 +71,6 @@ namespace Org.BouncyCastle.Asn1.Smime
             capabilities = seq;
         }
 
-#if !(SILVERLIGHT || PORTABLE)
-        [Obsolete("Use 'GetCapabilitiesForOid' instead")]
-        public ArrayList GetCapabilities(
-            DerObjectIdentifier capability)
-        {
-            ArrayList list = new ArrayList();
-            DoGetCapabilitiesForOid(capability, list);
-			return list;
-        }
-#endif
-
         /**
          * returns an ArrayList with 0 or more objects of all the capabilities
          * matching the passed in capability Oid. If the Oid passed is null the
diff --git a/crypto/src/asn1/util/FilterStream.cs b/crypto/src/asn1/util/FilterStream.cs
deleted file mode 100644
index 0c38c5b6e..000000000
--- a/crypto/src/asn1/util/FilterStream.cs
+++ /dev/null
@@ -1,83 +0,0 @@
-using System;
-using System.IO;
-
-using Org.BouncyCastle.Utilities;
-
-namespace Org.BouncyCastle.Asn1.Utilities
-{
-    [Obsolete("Use Org.BouncyCastle.Utilities.IO.FilterStream")]
-    public class FilterStream : Stream
-    {
-        [Obsolete("Use Org.BouncyCastle.Utilities.IO.FilterStream")]
-        public FilterStream(Stream s)
-        {
-            this.s = s;
-        }
-        public override bool CanRead
-        {
-            get { return s.CanRead; }
-        }
-        public override bool CanSeek
-        {
-            get { return s.CanSeek; }
-        }
-        public override bool CanWrite
-        {
-            get { return s.CanWrite; }
-        }
-        public override long Length
-        {
-            get { return s.Length; }
-        }
-        public override long Position
-        {
-            get { return s.Position; }
-            set { s.Position = value; }
-        }
-#if PORTABLE
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing)
-            {
-                Platform.Dispose(s);
-            }
-            base.Dispose(disposing);
-        }
-#else
-        public override void Close()
-        {
-            Platform.Dispose(s);
-            base.Close();
-        }
-#endif
-        public override void Flush()
-        {
-            s.Flush();
-        }
-        public override long Seek(long offset, SeekOrigin origin)
-        {
-            return s.Seek(offset, origin);
-        }
-        public override void SetLength(long value)
-        {
-            s.SetLength(value);
-        }
-        public override int Read(byte[] buffer, int offset, int count)
-        {
-            return s.Read(buffer, offset, count);
-        }
-        public override int ReadByte()
-        {
-            return s.ReadByte();
-        }
-        public override void Write(byte[] buffer, int offset, int count)
-        {
-            s.Write(buffer, offset, count);
-        }
-        public override void WriteByte(byte value)
-        {
-            s.WriteByte(value);
-        }
-        protected readonly Stream s;
-    }
-}
diff --git a/crypto/src/asn1/x509/AlgorithmIdentifier.cs b/crypto/src/asn1/x509/AlgorithmIdentifier.cs
index 00e7ad8bc..169a95c0a 100644
--- a/crypto/src/asn1/x509/AlgorithmIdentifier.cs
+++ b/crypto/src/asn1/x509/AlgorithmIdentifier.cs
@@ -31,13 +31,6 @@ namespace Org.BouncyCastle.Asn1.X509
             this.algorithm = algorithm;
         }
 
-        [Obsolete("Use version taking a DerObjectIdentifier")]
-        public AlgorithmIdentifier(
-            string algorithm)
-        {
-            this.algorithm = new DerObjectIdentifier(algorithm);
-        }
-
         public AlgorithmIdentifier(
             DerObjectIdentifier algorithm,
             Asn1Encodable		parameters)
@@ -64,12 +57,6 @@ namespace Org.BouncyCastle.Asn1.X509
 			get { return algorithm; }
 		}
 
-        [Obsolete("Use 'Algorithm' property instead")]
-        public virtual DerObjectIdentifier ObjectID
-        {
-            get { return algorithm; }
-        }
-
         /// <summary>
         /// Return the parameters structure in the Parameters entry of this identifier.
         /// </summary>
diff --git a/crypto/src/asn1/x509/AttributeTable.cs b/crypto/src/asn1/x509/AttributeTable.cs
index 33faad64a..71c42872e 100644
--- a/crypto/src/asn1/x509/AttributeTable.cs
+++ b/crypto/src/asn1/x509/AttributeTable.cs
@@ -1,7 +1,6 @@
 using System;
 using System.Collections;
 
-using Org.BouncyCastle.Asn1;
 using Org.BouncyCastle.Utilities;
 
 namespace Org.BouncyCastle.Asn1.X509
@@ -16,15 +15,6 @@ namespace Org.BouncyCastle.Asn1.X509
             this.attributes = Platform.CreateHashtable(attrs);
         }
 
-#if !(SILVERLIGHT || PORTABLE)
-        [Obsolete]
-        public AttributeTable(
-            Hashtable attrs)
-        {
-            this.attributes = Platform.CreateHashtable(attrs);
-        }
-#endif
-
 		public AttributeTable(
             Asn1EncodableVector v)
         {
@@ -57,14 +47,6 @@ namespace Org.BouncyCastle.Asn1.X509
             return (AttributeX509) attributes[oid];
         }
 
-#if !(SILVERLIGHT || PORTABLE)
-        [Obsolete("Use 'ToDictionary' instead")]
-		public Hashtable ToHashtable()
-        {
-            return new Hashtable(attributes);
-        }
-#endif
-
         public IDictionary ToDictionary()
         {
             return Platform.CreateHashtable(attributes);
diff --git a/crypto/src/asn1/x509/ExtendedKeyUsage.cs b/crypto/src/asn1/x509/ExtendedKeyUsage.cs
index 7e8c7a37c..1e7d4d642 100644
--- a/crypto/src/asn1/x509/ExtendedKeyUsage.cs
+++ b/crypto/src/asn1/x509/ExtendedKeyUsage.cs
@@ -65,15 +65,6 @@ namespace Org.BouncyCastle.Asn1.X509
             }
         }
 
-#if !(SILVERLIGHT || PORTABLE)
-        [Obsolete]
-        public ExtendedKeyUsage(
-            ArrayList usages)
-            : this((IEnumerable)usages)
-        {
-        }
-#endif
-
         public ExtendedKeyUsage(
             IEnumerable usages)
         {
@@ -96,14 +87,6 @@ namespace Org.BouncyCastle.Asn1.X509
             return usageTable.Contains(keyPurposeId);
         }
 
-#if !(SILVERLIGHT || PORTABLE)
-        [Obsolete("Use 'GetAllUsages'")]
-        public ArrayList GetUsages()
-        {
-            return new ArrayList(usageTable.Values);
-        }
-#endif
-
         /**
          * Returns all extended key usages.
          * The returned ArrayList contains DerObjectIdentifier instances.
diff --git a/crypto/src/asn1/x509/SubjectDirectoryAttributes.cs b/crypto/src/asn1/x509/SubjectDirectoryAttributes.cs
index 77923e0d2..00db90042 100644
--- a/crypto/src/asn1/x509/SubjectDirectoryAttributes.cs
+++ b/crypto/src/asn1/x509/SubjectDirectoryAttributes.cs
@@ -78,15 +78,6 @@ namespace Org.BouncyCastle.Asn1.X509
 			}
 		}
 
-#if !(SILVERLIGHT || PORTABLE)
-        [Obsolete]
-        public SubjectDirectoryAttributes(
-            ArrayList attributes)
-            : this((IList)attributes)
-        {
-        }
-#endif
-
         /**
 		 * Constructor from an ArrayList of attributes.
 		 *
diff --git a/crypto/src/asn1/x509/SubjectPublicKeyInfo.cs b/crypto/src/asn1/x509/SubjectPublicKeyInfo.cs
index ae44a451f..474493dcf 100644
--- a/crypto/src/asn1/x509/SubjectPublicKeyInfo.cs
+++ b/crypto/src/asn1/x509/SubjectPublicKeyInfo.cs
@@ -79,19 +79,6 @@ namespace Org.BouncyCastle.Asn1.X509
         }
 
 		/**
-         * for when the public key is an encoded object - if the bitstring
-         * can't be decoded this routine raises an IOException.
-         *
-         * @exception IOException - if the bit string doesn't represent a Der
-         * encoded object.
-         */
-        [Obsolete("Use 'ParsePublicKey' instead")]
-        public Asn1Object GetPublicKey()
-        {
-			return Asn1Object.FromByteArray(keyData.GetOctets());
-        }
-
-		/**
          * for when the public key is raw bits...
          */
         public DerBitString PublicKeyData
diff --git a/crypto/src/asn1/x509/X509Extensions.cs b/crypto/src/asn1/x509/X509Extensions.cs
index 42121fa60..b01db1fb5 100644
--- a/crypto/src/asn1/x509/X509Extensions.cs
+++ b/crypto/src/asn1/x509/X509Extensions.cs
@@ -296,71 +296,6 @@ namespace Org.BouncyCastle.Asn1.X509
             }
         }
 
-#if !(SILVERLIGHT || PORTABLE)
-		/**
-         * constructor from a table of extensions.
-         * <p>
-         * it's is assumed the table contains Oid/string pairs.</p>
-         */
-        [Obsolete]
-        public X509Extensions(
-            Hashtable extensions)
-             : this(null, extensions)
-        {
-        }
-
-		/**
-         * Constructor from a table of extensions with ordering.
-         * <p>
-         * It's is assumed the table contains Oid/string pairs.</p>
-         */
-        [Obsolete]
-        public X509Extensions(
-            ArrayList	ordering,
-            Hashtable	extensions)
-        {
-            if (ordering == null)
-            {
-                this.ordering = Platform.CreateArrayList(extensions.Keys);
-            }
-            else
-            {
-                this.ordering = Platform.CreateArrayList(ordering);
-            }
-
-            foreach (DerObjectIdentifier oid in this.ordering)
-			{
-				this.extensions.Add(oid, (X509Extension) extensions[oid]);
-			}
-        }
-
-		/**
-		 * Constructor from two vectors
-		 *
-		 * @param objectIDs an ArrayList of the object identifiers.
-		 * @param values an ArrayList of the extension values.
-		 */
-        [Obsolete]
-		public X509Extensions(
-			ArrayList	oids,
-			ArrayList	values)
-		{
-            this.ordering = Platform.CreateArrayList(oids);
-
-            int count = 0;
-			foreach (DerObjectIdentifier oid in this.ordering)
-			{
-				this.extensions.Add(oid, (X509Extension) values[count++]);
-			}
-		}
-#endif
-
-        [Obsolete("Use ExtensionOids IEnumerable property")]
-		public IEnumerator Oids()
-		{
-			return ExtensionOids.GetEnumerator();
-		}
-
 		/**
 		 * return an Enumeration of the extension field's object ids.
 		 */
diff --git a/crypto/src/asn1/x9/X962Parameters.cs b/crypto/src/asn1/x9/X962Parameters.cs
index 5bdabc647..b863f4bfd 100644
--- a/crypto/src/asn1/x9/X962Parameters.cs
+++ b/crypto/src/asn1/x9/X962Parameters.cs
@@ -55,9 +55,7 @@ namespace Org.BouncyCastle.Asn1.X9
             this._params = obj;
         }
 
-        [Obsolete("Use 'GetInstance' instead")]
-        public X962Parameters(
-            Asn1Object obj)
+        private X962Parameters(Asn1Object obj)
         {
             this._params = obj;
         }
diff --git a/crypto/src/asn1/x9/X9Curve.cs b/crypto/src/asn1/x9/X9Curve.cs
index 0be9bf935..88198335f 100644
--- a/crypto/src/asn1/x9/X9Curve.cs
+++ b/crypto/src/asn1/x9/X9Curve.cs
@@ -47,14 +47,6 @@ namespace Org.BouncyCastle.Asn1.X9
             }
         }
 
-        [Obsolete("Use constructor including order/cofactor")]
-        public X9Curve(
-            X9FieldID		fieldID,
-            Asn1Sequence	seq)
-            : this(fieldID, null, null, seq)
-        {
-        }
-
         public X9Curve(
             X9FieldID		fieldID,
             BigInteger      order,
diff --git a/crypto/src/asn1/x9/X9FieldElement.cs b/crypto/src/asn1/x9/X9FieldElement.cs
index 222b4cfc8..1143bf757 100644
--- a/crypto/src/asn1/x9/X9FieldElement.cs
+++ b/crypto/src/asn1/x9/X9FieldElement.cs
@@ -19,25 +19,6 @@ namespace Org.BouncyCastle.Asn1.X9
             this.f = f;
         }
 
-        [Obsolete("Will be removed")]
-        public X9FieldElement(
-            BigInteger		p,
-            Asn1OctetString	s)
-            : this(new FpFieldElement(p, new BigInteger(1, s.GetOctets())))
-        {
-        }
-
-        [Obsolete("Will be removed")]
-        public X9FieldElement(
-            int				m,
-            int				k1,
-            int				k2,
-            int				k3,
-            Asn1OctetString	s)
-            : this(new F2mFieldElement(m, k1, k2, k3, new BigInteger(1, s.GetOctets())))
-        {
-        }
-
         public ECFieldElement Value
         {
             get { return f; }
diff --git a/crypto/src/asn1/x9/X9ObjectIdentifiers.cs b/crypto/src/asn1/x9/X9ObjectIdentifiers.cs
index 9d7ecae6e..11b94e8d6 100644
--- a/crypto/src/asn1/x9/X9ObjectIdentifiers.cs
+++ b/crypto/src/asn1/x9/X9ObjectIdentifiers.cs
@@ -11,9 +11,7 @@ namespace Org.BouncyCastle.Asn1.X9
         //            us(840) ansi-x962(10045) }
         //
 
-        internal const string AnsiX962 = "1.2.840.10045";
-
-        public static readonly DerObjectIdentifier ansi_X9_62 = new DerObjectIdentifier(AnsiX962);
+        public static readonly DerObjectIdentifier ansi_X9_62 = new DerObjectIdentifier("1.2.840.10045");
 
         public static readonly DerObjectIdentifier IdFieldType = ansi_X9_62.Branch("1");
 
@@ -24,14 +22,10 @@ namespace Org.BouncyCastle.Asn1.X9
         public static readonly DerObjectIdentifier TPBasis = CharacteristicTwoField.Branch("3.2");
         public static readonly DerObjectIdentifier PPBasis = CharacteristicTwoField.Branch("3.3");
 
-        [Obsolete("Use 'id_ecSigType' instead")]
-        public const string IdECSigType = AnsiX962 + ".4";
         public static readonly DerObjectIdentifier id_ecSigType = ansi_X9_62.Branch("4");
 
         public static readonly DerObjectIdentifier ECDsaWithSha1 = id_ecSigType.Branch("1");
 
-        [Obsolete("Use 'id_publicKeyType' instead")]
-        public const string IdPublicKeyType = AnsiX962 + ".2";
         public static readonly DerObjectIdentifier id_publicKeyType = ansi_X9_62.Branch("2");
 
         public static readonly DerObjectIdentifier IdECPublicKey = id_publicKeyType.Branch("1");