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
            }
        }
        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);
        }
Exemple #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;
 }
        public override void PerformTest()
        {
            NameOrPseudonym    nameOrPseudonym   = new NameOrPseudonym("pseudonym");
            IBigInteger        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
            }
        }
 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);
     }
 }
 private void checkValues(
     PersonalData data,
     NameOrPseudonym nameOrPseudonym,
     IBigInteger 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);
 }
Exemple #7
0
    private PersonalData(Asn1Sequence seq)
    {
        if (seq.Count < 1)
        {
            throw new ArgumentException("Bad sequence size: " + seq.Count);
        }
        IEnumerator enumerator = seq.GetEnumerator();

        enumerator.MoveNext();
        nameOrPseudonym = NameOrPseudonym.GetInstance(enumerator.Current);
        while (enumerator.MoveNext())
        {
            Asn1TaggedObject instance = Asn1TaggedObject.GetInstance(enumerator.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("Bad tag number: " + instance.TagNo);
            }
        }
    }
        private void checkConstruction(
            PersonalData data,
            NameOrPseudonym nameOrPseudonym,
            IBigInteger 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);
        }