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); }
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); }
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); }