Inheritance: Asn1Encodable, IAsn1Choice
Ejemplo n.º 1
0
		public override void PerformTest()
		{
			string pseudonym = "pseudonym";
			DirectoryString surname = new DirectoryString("surname");
			Asn1Sequence givenName = new DerSequence(new DirectoryString("givenName"));

			NameOrPseudonym id = new NameOrPseudonym(pseudonym);

			checkConstruction(id, pseudonym, null, null);

			id = new NameOrPseudonym(surname, givenName);

			checkConstruction(id, null, surname, givenName);

			id = NameOrPseudonym.GetInstance(null);

			if (id != null)
			{
				Fail("null GetInstance() failed.");
			}

			try
			{
				NameOrPseudonym.GetInstance(new Object());

				Fail("GetInstance() failed to detect bad object.");
			}
			catch (ArgumentException)
			{
				// expected
			}
		}
Ejemplo n.º 2
0
		private void checkConstruction(
			NameOrPseudonym	id,
			string			pseudonym,
			DirectoryString	surname,
			Asn1Sequence	givenName)
		{
			checkValues(id, pseudonym, surname, givenName);

			id = NameOrPseudonym.GetInstance(id);

			checkValues(id, pseudonym, surname, givenName);

			Asn1InputStream aIn = new Asn1InputStream(id.ToAsn1Object().GetEncoded());

			if (surname != null)
			{
				Asn1Sequence seq = (Asn1Sequence) aIn.ReadObject();

				id = NameOrPseudonym.GetInstance(seq);
			}
			else
			{
				IAsn1String s = (IAsn1String) aIn.ReadObject();

				id = NameOrPseudonym.GetInstance(s);
			}

			checkValues(id, pseudonym, surname, givenName);
		}
Ejemplo n.º 3
0
 public PersonalData(NameOrPseudonym nameOrPseudonym, BigInteger nameDistinguisher, DerGeneralizedTime dateOfBirth, DirectoryString placeOfBirth, string gender, DirectoryString postalAddress)
 {
     this.nameOrPseudonym   = nameOrPseudonym;
     this.dateOfBirth       = dateOfBirth;
     this.gender            = gender;
     this.nameDistinguisher = nameDistinguisher;
     this.postalAddress     = postalAddress;
     this.placeOfBirth      = placeOfBirth;
 }
Ejemplo n.º 4
0
		public override void PerformTest()
		{
			NameOrPseudonym nameOrPseudonym = new NameOrPseudonym("pseudonym");
			BigInteger nameDistinguisher = BigInteger.ValueOf(10);
			DerGeneralizedTime dateOfBirth= new DerGeneralizedTime("20070315173729Z");
			DirectoryString placeOfBirth = new DirectoryString("placeOfBirth");
			string gender = "M";
			DirectoryString postalAddress = new DirectoryString("address");

			PersonalData data = new PersonalData(nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, gender, postalAddress);

			checkConstruction(data, nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, gender, postalAddress);

			data = new PersonalData(nameOrPseudonym, null, dateOfBirth, placeOfBirth, gender, postalAddress);

			checkConstruction(data, nameOrPseudonym, null, dateOfBirth, placeOfBirth, gender, postalAddress);

			data = new PersonalData(nameOrPseudonym, nameDistinguisher, null, placeOfBirth, gender, postalAddress);

			checkConstruction(data, nameOrPseudonym, nameDistinguisher, null, placeOfBirth, gender, postalAddress);

			data = new PersonalData(nameOrPseudonym, nameDistinguisher, dateOfBirth, null, gender, postalAddress);

			checkConstruction(data, nameOrPseudonym, nameDistinguisher, dateOfBirth, null, gender, postalAddress);

			data = new PersonalData(nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, null, postalAddress);

			checkConstruction(data, nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, null, postalAddress);

			data = new PersonalData(nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, gender, null);

			checkConstruction(data, nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, gender, null);

			data = PersonalData.GetInstance(null);

			if (data != null)
			{
				Fail("null GetInstance() failed.");
			}

			try
			{
				PersonalData.GetInstance(new Object());

				Fail("GetInstance() failed to detect bad object.");
			}
			catch (ArgumentException)
			{
				// expected
			}
		}
Ejemplo n.º 5
0
        /**
        * Constructor from a given details.
        *
        * @param nameOrPseudonym  Name or pseudonym.
        * @param nameDistiguisher Name distinguisher.
        * @param dateOfBirth      Date of birth.
        * @param placeOfBirth     Place of birth.
        * @param gender           Gender.
        * @param postalAddress    Postal Address.
        */
        public PersonalData(
			NameOrPseudonym		nameOrPseudonym,
			BigInteger			nameDistiguisher,
			DerGeneralizedTime	dateOfBirth,
			string				placeOfBirth,
			string				gender,
			string				postalAddress)
        {
            this.nameOrPseudonym = nameOrPseudonym;
            this.dateOfBirth = dateOfBirth;
            this.gender = new DerPrintableString(gender, true);
            this.nameDistiguisher = nameDistiguisher;
            this.postalAddress = new DirectoryString(postalAddress);
            this.placeOfBirth = new DirectoryString(placeOfBirth);
        }
        /**
        * Constructor from a given details.
        *
        * @param nameOrPseudonym  Name or pseudonym.
        * @param nameDistinguisher Name distinguisher.
        * @param dateOfBirth      Date of birth.
        * @param placeOfBirth     Place of birth.
        * @param gender           Gender.
        * @param postalAddress    Postal Address.
        */
        public PersonalData(
			NameOrPseudonym		nameOrPseudonym,
			IBigInteger			nameDistinguisher,
			DerGeneralizedTime	dateOfBirth,
			DirectoryString		placeOfBirth,
			string				gender,
			DirectoryString		postalAddress)
        {
            this.nameOrPseudonym = nameOrPseudonym;
            this.dateOfBirth = dateOfBirth;
            this.gender = gender;
            this.nameDistinguisher = nameDistinguisher;
            this.postalAddress = postalAddress;
            this.placeOfBirth = placeOfBirth;
        }
Ejemplo n.º 7
0
		private void checkValues(
			NameOrPseudonym	id,
			string			pseudonym,
			DirectoryString	surname,
			Asn1Sequence	givenName)
		{

			if (surname != null)
			{
				checkMandatoryField("surname", surname, id.Surname);
				checkMandatoryField("givenName", givenName, new DerSequence(id.GetGivenName()[0]));
			}
			else
			{
				checkOptionalField("pseudonym", new DirectoryString(pseudonym), id.Pseudonym);
			}
		}
Ejemplo n.º 8
0
        /**
         * Constructor from Asn1Sequence.
         * <p/>
         * The sequence is of type NameOrPseudonym:
         * <p/>
         * <pre>
         *     PersonalData ::= SEQUENCE {
         *       nameOrPseudonym NameOrPseudonym,
         *       nameDistinguisher [0] INTEGER OPTIONAL,
         *       dateOfBirth [1] GeneralizedTime OPTIONAL,
         *       placeOfBirth [2] DirectoryString OPTIONAL,
         *       gender [3] PrintableString OPTIONAL,
         *       postalAddress [4] DirectoryString OPTIONAL
         *       }
         * </pre>
         *
         * @param seq The ASN.1 sequence.
         */
        private PersonalData(
            Asn1Sequence seq)
        {
            if (seq.Count < 1)
            {
                throw new ArgumentException("Bad sequence size: " + seq.Count);
            }

            IEnumerator e = seq.GetEnumerator();

            e.MoveNext();

            nameOrPseudonym = NameOrPseudonym.GetInstance(e.Current);

            while (e.MoveNext())
            {
                Asn1TaggedObject o = Asn1TaggedObject.GetInstance(e.Current);
                int tag            = o.TagNo;
                switch (tag)
                {
                case 0:
                    nameDistinguisher = DerInteger.GetInstance(o, false).Value;
                    break;

                case 1:
                    dateOfBirth = DerGeneralizedTime.GetInstance(o, false);
                    break;

                case 2:
                    placeOfBirth = DirectoryString.GetInstance(o, true);
                    break;

                case 3:
                    gender = DerPrintableString.GetInstance(o, false).GetString();
                    break;

                case 4:
                    postalAddress = DirectoryString.GetInstance(o, true);
                    break;

                default:
                    throw new ArgumentException("Bad tag number: " + o.TagNo);
                }
            }
        }
Ejemplo n.º 9
0
        private PersonalData(Asn1Sequence seq)
        {
            //IL_0024: Unknown result type (might be due to invalid IL or missing references)
            //IL_00e9: Unknown result type (might be due to invalid IL or missing references)
            if (seq.Count < 1)
            {
                throw new ArgumentException(string.Concat((object)"Bad sequence size: ", (object)seq.Count));
            }
            global::System.Collections.IEnumerator enumerator = seq.GetEnumerator();
            enumerator.MoveNext();
            nameOrPseudonym = NameOrPseudonym.GetInstance(enumerator.get_Current());
            while (enumerator.MoveNext())
            {
                Asn1TaggedObject instance = Asn1TaggedObject.GetInstance(enumerator.get_Current());
                switch (instance.TagNo)
                {
                case 0:
                    nameDistinguisher = DerInteger.GetInstance(instance, isExplicit: false).Value;
                    break;

                case 1:
                    dateOfBirth = DerGeneralizedTime.GetInstance(instance, isExplicit: false);
                    break;

                case 2:
                    placeOfBirth = DirectoryString.GetInstance(instance, isExplicit: true);
                    break;

                case 3:
                    gender = DerPrintableString.GetInstance(instance, isExplicit: false).GetString();
                    break;

                case 4:
                    postalAddress = DirectoryString.GetInstance(instance, isExplicit: true);
                    break;

                default:
                    throw new ArgumentException(string.Concat((object)"Bad tag number: ", (object)instance.TagNo));
                }
            }
        }
Ejemplo n.º 10
0
		private void checkConstruction(
			PersonalData		data,
			NameOrPseudonym		nameOrPseudonym,
			BigInteger			nameDistinguisher,
			DerGeneralizedTime	dateOfBirth,
			DirectoryString		placeOfBirth,
			string				gender,
			DirectoryString		postalAddress)
		{
			checkValues(data, nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, gender, postalAddress);

			data = PersonalData.GetInstance(data);

			checkValues(data, nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, gender, postalAddress);

			Asn1InputStream aIn = new Asn1InputStream(data.ToAsn1Object().GetEncoded());

			Asn1Sequence seq = (Asn1Sequence) aIn.ReadObject();

			data = PersonalData.GetInstance(seq);

			checkValues(data, nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, gender, postalAddress);
		}
Ejemplo n.º 11
0
		/**
		* Constructor from Asn1Sequence.
		* <p/>
		* The sequence is of type NameOrPseudonym:
		* <p/>
		* <pre>
		*     PersonalData ::= SEQUENCE {
		*       nameOrPseudonym NameOrPseudonym,
		*       nameDistinguisher [0] INTEGER OPTIONAL,
		*       dateOfBirth [1] GeneralizedTime OPTIONAL,
		*       placeOfBirth [2] DirectoryString OPTIONAL,
		*       gender [3] PrintableString OPTIONAL,
		*       postalAddress [4] DirectoryString OPTIONAL
		*       }
		* </pre>
		*
		* @param seq The ASN.1 sequence.
		*/
		private PersonalData(
			Asn1Sequence seq)
		{
			if (seq.Count < 1)
				throw new ArgumentException("Bad sequence size: " + seq.Count);

			IEnumerator e = seq.GetEnumerator();
			e.MoveNext();

			nameOrPseudonym = NameOrPseudonym.GetInstance(e.Current);

			while (e.MoveNext())
			{
				Asn1TaggedObject o = Asn1TaggedObject.GetInstance(e.Current);
				int tag = o.TagNo;
				switch (tag)
				{
					case 0:
						nameDistinguisher = DerInteger.GetInstance(o, false).Value;
						break;
					case 1:
						dateOfBirth = DerGeneralizedTime.GetInstance(o, false);
						break;
					case 2:
						placeOfBirth = DirectoryString.GetInstance(o, true);
						break;
					case 3:
						gender = DerPrintableString.GetInstance(o, false).GetString();
						break;
					case 4:
						postalAddress = DirectoryString.GetInstance(o, true);
						break;
					default:
						throw new ArgumentException("Bad tag number: " + o.TagNo);
				}
			}
		}
Ejemplo n.º 12
0
		private void checkValues(
			PersonalData		data,
			NameOrPseudonym		nameOrPseudonym,
			BigInteger			nameDistinguisher,
			DerGeneralizedTime	dateOfBirth,
			DirectoryString		placeOfBirth,
			string				gender,
			DirectoryString		postalAddress)
		{
			checkMandatoryField("nameOrPseudonym", nameOrPseudonym, data.NameOrPseudonym);
			checkOptionalField("nameDistinguisher", nameDistinguisher, data.NameDistinguisher);
			checkOptionalField("dateOfBirth", dateOfBirth, data.DateOfBirth);
			checkOptionalField("placeOfBirth", placeOfBirth, data.PlaceOfBirth);
			checkOptionalField("gender", gender, data.Gender);
			checkOptionalField("postalAddress", postalAddress, data.PostalAddress);
		}