Inheritance: Asn1Encodable
        protected override bool Asn1Equals(
			Asn1Object asn1Object)
        {
            DerGeneralString other = asn1Object as DerGeneralString;

            if (other == null)
                return false;

            return this.str.Equals(other.str);
        }
        public virtual void WriteObject(
			Asn1Object obj)
        {
            if (obj == null)
            {
                WriteNull();
            }
            else
            {
                obj.Encode(this);
            }
        }
        protected override bool Asn1Equals(
			Asn1Object asn1Object)
        {
            DerUnknownTag other = asn1Object as DerUnknownTag;

            if (other == null)
                return false;

            return this.isConstructed == other.isConstructed
                && this.tag == other.tag
                && Arrays.AreEqual(this.data, other.data);
        }
        public DerExternal(
			Asn1EncodableVector vector)
        {
            int offset = 0;
            Asn1Object enc = GetObjFromVector(vector, offset);
            if (enc is DerObjectIdentifier)
            {
                directReference = (DerObjectIdentifier)enc;
                offset++;
                enc = GetObjFromVector(vector, offset);
            }
            if (enc is DerInteger)
            {
                indirectReference = (DerInteger) enc;
                offset++;
                enc = GetObjFromVector(vector, offset);
            }
            if (!(enc is DerTaggedObject))
            {
                dataValueDescriptor = (Asn1Object) enc;
                offset++;
                enc = GetObjFromVector(vector, offset);
            }
            if (!(enc is DerTaggedObject))
            {
                throw new InvalidOperationException(
                    "No tagged object found in vector. Structure doesn't seem to be of type External");
            }

            if (vector.Count != offset + 1)
                throw new ArgumentException("input vector too large", "vector");

            if (!(enc is DerTaggedObject))
                throw new ArgumentException("No tagged object found in vector. Structure doesn't seem to be of type External", "vector");

            DerTaggedObject obj = (DerTaggedObject)enc;

            // Use property accessor to include check on value
            Encoding = obj.TagNo;

            if (encoding < 0 || encoding > 2)
                throw new InvalidOperationException("invalid encoding value");

            externalContent = obj.GetObject();
        }
        protected override bool Asn1Equals(
			Asn1Object asn1Object)
        {
            DerInteger other = asn1Object as DerInteger;

            if (other == null)
                return false;

            return Arrays.AreEqual(this.bytes, other.bytes);
        }
        protected override bool Asn1Equals(
			Asn1Object asn1Object)
        {
            if (this == asn1Object)
                return true;

            DerExternal other = asn1Object as DerExternal;

            if (other == null)
                return false;

            return Platform.Equals(directReference, other.directReference)
                && Platform.Equals(indirectReference, other.indirectReference)
                && Platform.Equals(dataValueDescriptor, other.dataValueDescriptor)
                && externalContent.Equals(other.externalContent);
        }
        protected override bool Asn1Equals(
			Asn1Object asn1Object)
        {
            Asn1Sequence other = asn1Object as Asn1Sequence;

            if (other == null)
                return false;

            if (Count != other.Count)
                return false;

            IEnumerator s1 = GetEnumerator();
            IEnumerator s2 = other.GetEnumerator();

            while (s1.MoveNext() && s2.MoveNext())
            {
                Asn1Object o1 = GetCurrent(s1).ToAsn1Object();
                Asn1Object o2 = GetCurrent(s2).ToAsn1Object();

                if (!o1.Equals(o2))
                    return false;
            }

            return true;
        }
        protected override bool Asn1Equals(
			Asn1Object asn1Object)
        {
            DerBoolean other = asn1Object as DerBoolean;

            if (other == null)
                return false;

            return IsTrue == other.IsTrue;
        }
 /**
 * Creates a new instance of DerExternal.
 * See X.690 for more informations about the meaning of these parameters
 * @param directReference The direct reference or <code>null</code> if not set.
 * @param indirectReference The indirect reference or <code>null</code> if not set.
 * @param dataValueDescriptor The data value descriptor or <code>null</code> if not set.
 * @param encoding The encoding to be used for the external data
 * @param externalData The external data
 */
 public DerExternal(DerObjectIdentifier directReference, DerInteger indirectReference, Asn1Object dataValueDescriptor, int encoding, Asn1Object externalData)
 {
     DirectReference = directReference;
     IndirectReference = indirectReference;
     DataValueDescriptor = dataValueDescriptor;
     Encoding = encoding;
     ExternalContent = externalData.ToAsn1Object();
 }
        protected override bool Asn1Equals(
			Asn1Object asn1Object)
        {
            DerApplicationSpecific other = asn1Object as DerApplicationSpecific;

            if (other == null)
                return false;

            return this.isConstructed == other.isConstructed
                && this.tag == other.tag
                && Arrays.AreEqual(this.octets, other.octets);
        }
 protected abstract bool Asn1Equals(Asn1Object asn1Object);
        protected override bool Asn1Equals(
			Asn1Object asn1Object)
        {
            DerBitString other = asn1Object as DerBitString;

            if (other == null)
                return false;

            return this.padBits == other.padBits
                && Arrays.AreEqual(this.data, other.data);
        }
        protected override bool Asn1Equals(
			Asn1Object asn1Object)
        {
            DerUtcTime other = asn1Object as DerUtcTime;

            if (other == null)
                return false;

            return this.time.Equals(other.time);
        }
        protected override bool Asn1Equals(
			Asn1Object asn1Object)
        {
            DerObjectIdentifier other = asn1Object as DerObjectIdentifier;

            if (other == null)
                return false;

            return this.identifier.Equals(other.identifier);
        }
        protected override bool Asn1Equals(
			Asn1Object asn1Object)
        {
            return asn1Object is DerNull;
        }
Ejemplo n.º 16
0
 internal bool CallAsn1Equals(Asn1Object obj)
 {
     return(Asn1Equals(obj));
 }
Ejemplo n.º 17
0
 protected abstract bool Asn1Equals(Asn1Object asn1Object);
 internal bool CallAsn1Equals(Asn1Object obj)
 {
     return Asn1Equals(obj);
 }
 /**
 * Creates a new instance of DerExternal
 * See X.690 for more informations about the meaning of these parameters
 * @param directReference The direct reference or <code>null</code> if not set.
 * @param indirectReference The indirect reference or <code>null</code> if not set.
 * @param dataValueDescriptor The data value descriptor or <code>null</code> if not set.
 * @param externalData The external data in its encoded form.
 */
 public DerExternal(DerObjectIdentifier directReference, DerInteger indirectReference, Asn1Object dataValueDescriptor, DerTaggedObject externalData)
     : this(directReference, indirectReference, dataValueDescriptor, externalData.TagNo, externalData.ToAsn1Object())
 {
 }
        public BerOctetString(
			Asn1Object obj)
            : base(obj)
        {
        }
        protected override bool Asn1Equals(
			Asn1Object asn1Object)
        {
            Asn1TaggedObject other = asn1Object as Asn1TaggedObject;

            if (other == null)
                return false;

            return this.tagNo == other.tagNo
            //				&& this.empty == other.empty
                && this.explicitly == other.explicitly   // TODO Should this be part of equality?
                && Platform.Equals(GetObject(), other.GetObject());
        }