diff options
Diffstat (limited to 'crypto/src/asn1/DerApplicationSpecific.cs')
-rw-r--r-- | crypto/src/asn1/DerApplicationSpecific.cs | 235 |
1 files changed, 0 insertions, 235 deletions
diff --git a/crypto/src/asn1/DerApplicationSpecific.cs b/crypto/src/asn1/DerApplicationSpecific.cs deleted file mode 100644 index d474034ed..000000000 --- a/crypto/src/asn1/DerApplicationSpecific.cs +++ /dev/null @@ -1,235 +0,0 @@ -using System; -using System.IO; - -using Org.BouncyCastle.Utilities; - -namespace Org.BouncyCastle.Asn1 -{ - /** - * Base class for an application specific object - */ - public class DerApplicationSpecific - : Asn1Object, IAsn1ApplicationSpecificParser - { - public static DerApplicationSpecific GetInstance(object obj) - { - if (obj == null || obj is DerApplicationSpecific) - { - return (DerApplicationSpecific)obj; - } - else if (obj is byte[]) - { - try - { - return GetInstance(FromByteArray((byte[])obj)); - } - catch (IOException e) - { - throw new ArgumentException("failed to construct application-specific from byte[]: " + e.Message); - } - } - - throw new ArgumentException("illegal object in GetInstance: " + Platform.GetTypeName(obj), "obj"); - } - - internal readonly Asn1TaggedObject m_taggedObject; - - /** - * Create an application specific object from the passed in data. This will assume - * the data does not represent a constructed object. - * - * @param tagNo the tag number for this object. - * @param contentsOctets the encoding of the object's body. - */ - public DerApplicationSpecific(int tagNo, byte[] contentsOctets) - : this(new DerTaggedObject(false, Asn1Tags.Application, tagNo, new DerOctetString(contentsOctets))) - { - } - - /** - * Create an application specific object with a tagging of explicit/constructed. - * - * @param tag the tag number for this object. - * @param object the object to be contained. - */ - public DerApplicationSpecific(int tag, Asn1Encodable baseEncodable) - : this(true, tag, baseEncodable) - { - } - - /** - * Create an application specific object with the tagging style given by the value of explicit. - * - * @param explicit true if the object is explicitly tagged. - * @param tagNo the tag number for this object. - * @param baseEncodable the object to be contained. - */ - public DerApplicationSpecific(bool isExplicit, int tagNo, Asn1Encodable baseEncodable) - : this(new DerTaggedObject(isExplicit, Asn1Tags.Application, tagNo, baseEncodable)) - { - } - - /** - * Create an application specific object which is marked as constructed - * - * @param tagNo the tag number for this object. - * @param contentsElements the objects making up the application specific object. - */ - public DerApplicationSpecific(int tagNo, Asn1EncodableVector contentsElements) - : this(new DerTaggedObject(false, Asn1Tags.Application, tagNo, DerSequence.FromVector(contentsElements))) - { - } - - internal DerApplicationSpecific(Asn1TaggedObject taggedObject) - //: base(taggedObject.explicitness, CheckTagClass(taggedObject.tagClass), taggedObject.tagNo, - // taggedObject.obj) - { - CheckTagClass(taggedObject.TagClass); - - this.m_taggedObject = taggedObject; - } - - public int ApplicationTag - { - get { return m_taggedObject.TagNo; } - } - - [Obsolete("Will be removed")] - public byte[] GetContents() - { - return m_taggedObject.GetContents(); - } - - public Asn1Object GetEnclosedObject() - { - return m_taggedObject.GetBaseObject().ToAsn1Object(); - } - - [Obsolete("Use GetEnclosedObject instead")] - public Asn1Object GetObject() - { - return GetEnclosedObject(); - } - - public Asn1Object GetObject(int tagNo) - { - return m_taggedObject.GetBaseUniversal(false, tagNo); - } - - public IAsn1Convertible GetObjectParser(int tag, bool isExplicit) - { - throw new Asn1Exception("this method only valid for CONTEXT_SPECIFIC tags"); - } - - public IAsn1Convertible ParseBaseUniversal(bool declaredExplicit, int baseTagNo) - { - return m_taggedObject.ParseBaseUniversal(declaredExplicit, baseTagNo); - } - - public IAsn1Convertible ParseExplicitBaseObject() - { - return TaggedObject.ParseExplicitBaseObject(); - } - - public Asn1TaggedObjectParser ParseExplicitBaseTagged() - { - return m_taggedObject.ParseExplicitBaseTagged(); - } - - public Asn1TaggedObjectParser ParseImplicitBaseTagged(int baseTagClass, int baseTagNo) - { - return m_taggedObject.ParseImplicitBaseTagged(baseTagClass, baseTagNo); - } - - public bool HasApplicationTag(int tagNo) - { - return m_taggedObject.HasTag(Asn1Tags.Application, tagNo); - } - - public bool HasContextTag(int tagNo) - { - return false; - } - - public bool HasTag(int tagClass, int tagNo) - { - return m_taggedObject.HasTag(tagClass, tagNo); - } - - [Obsolete("Will be removed")] - public bool IsConstructed() - { - return m_taggedObject.IsConstructed(); - } - - public IAsn1Convertible ReadObject() - { - // NOTE: No way to say you're looking for an implicitly-tagged object via IAsn1ApplicationSpecificParser - return ParseExplicitBaseObject(); - } - - public int TagClass - { - get { return m_taggedObject.TagClass; } - } - - public int TagNo - { - get { return m_taggedObject.TagNo; } - } - - /** - * DerApplicationSpecific uses an internal Asn1TaggedObject for the - * implementation, and will soon be deprecated in favour of using - * Asn1TaggedObject with a tag class of {@link Asn1Tags#Application}. This method - * lets you get the internal Asn1TaggedObject so that client code can begin the - * migration. - */ - public Asn1TaggedObject TaggedObject - { - get { return m_taggedObject; } - } - - protected override bool Asn1Equals(Asn1Object asn1Object) - { - Asn1TaggedObject that; - if (asn1Object is DerApplicationSpecific) - { - that = ((DerApplicationSpecific)asn1Object).m_taggedObject; - } - else if (asn1Object is Asn1TaggedObject) - { - that = (Asn1TaggedObject)asn1Object; - } - else - { - return false; - } - - return m_taggedObject.Equals(that); - } - - protected override int Asn1GetHashCode() - { - return m_taggedObject.CallAsn1GetHashCode(); - } - - internal override IAsn1Encoding GetEncoding(int encoding) - { - return m_taggedObject.GetEncoding(encoding); - } - - internal override IAsn1Encoding GetEncodingImplicit(int encoding, int tagClass, int tagNo) - { - return m_taggedObject.GetEncodingImplicit(encoding, tagClass, tagNo); - } - - private static int CheckTagClass(int tagClass) - { - if (Asn1Tags.Application != tagClass) - throw new ArgumentException(); - - return tagClass; - } - } -} |