Exemple #1
0
        public override void PerformTest()
        {
            GeneralName     name       = new GeneralName(new X509Name("CN=hello world"));
            NamingAuthority auth       = new NamingAuthority(new DerObjectIdentifier("1.2.3"), "url", new DirectoryString("fred"));
            Admissions      admissions = new Admissions(name, auth, new ProfessionInfo[0]);

            checkConstruction(admissions, name, auth);

            admissions = Admissions.GetInstance(null);

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

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

                Fail("GetInstance() failed to detect bad object.");
            }
            catch (ArgumentException)
            {
                // expected
            }
        }
Exemple #2
0
 private void checkValues(
     Admissions admissions,
     GeneralName name,
     NamingAuthority auth)
 {
     checkMandatoryField("admissionAuthority", name, admissions.AdmissionAuthority);
     checkMandatoryField("namingAuthority", auth, admissions.NamingAuthority);
 }
Exemple #3
0
 private void checkValues(
     NamingAuthority auth,
     DerObjectIdentifier namingAuthorityId,
     string namingAuthorityURL,
     DirectoryString namingAuthorityText)
 {
     checkOptionalField("namingAuthorityId", namingAuthorityId, auth.NamingAuthorityID);
     checkOptionalField("namingAuthorityURL", namingAuthorityURL, auth.NamingAuthorityUrl);
     checkOptionalField("namingAuthorityText", namingAuthorityText, auth.NamingAuthorityText);
 }
Exemple #4
0
 public ProfessionInfo(NamingAuthority namingAuthority, DirectoryString[] professionItems, DerObjectIdentifier[] professionOids, string registrationNumber, Asn1OctetString addProfessionInfo)
 {
     this.namingAuthority = namingAuthority;
     this.professionItems = new DerSequence(professionItems);
     if (professionOids != null)
     {
         this.professionOids = new DerSequence(professionOids);
     }
     this.registrationNumber = registrationNumber;
     this.addProfessionInfo  = addProfessionInfo;
 }
Exemple #5
0
        public override void PerformTest()
        {
            NamingAuthority auth = new NamingAuthority(new DerObjectIdentifier("1.2.3"), "url", new DirectoryString("fred"));

            DirectoryString[]     professionItems = { new DirectoryString("substitution") };
            DerObjectIdentifier[] professionOids  = { new DerObjectIdentifier("1.2.3") };
            string         registrationNumber     = "12345";
            DerOctetString addProfInfo            = new DerOctetString(new byte[20]);

            ProfessionInfo info = new ProfessionInfo(auth, professionItems, professionOids, registrationNumber, addProfInfo);

            checkConstruction(info, auth, professionItems, professionOids, registrationNumber, addProfInfo);

            info = new ProfessionInfo(null, professionItems, professionOids, registrationNumber, addProfInfo);

            checkConstruction(info, null, professionItems, professionOids, registrationNumber, addProfInfo);

            info = new ProfessionInfo(auth, professionItems, null, registrationNumber, addProfInfo);

            checkConstruction(info, auth, professionItems, null, registrationNumber, addProfInfo);

            info = new ProfessionInfo(auth, professionItems, professionOids, null, addProfInfo);

            checkConstruction(info, auth, professionItems, professionOids, null, addProfInfo);

            info = new ProfessionInfo(auth, professionItems, professionOids, registrationNumber, null);

            checkConstruction(info, auth, professionItems, professionOids, registrationNumber, null);

            info = ProfessionInfo.GetInstance(null);

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

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

                Fail("GetInstance() failed to detect bad object.");
            }
            catch (ArgumentException)
            {
                // expected
            }
        }
    private Admissions(Asn1Sequence seq)
    {
        if (seq.Count > 3)
        {
            throw new ArgumentException("Bad sequence size: " + seq.Count);
        }
        IEnumerator enumerator = seq.GetEnumerator();

        enumerator.MoveNext();
        Asn1Encodable asn1Encodable = (Asn1Encodable)enumerator.Current;

        if (asn1Encodable is Asn1TaggedObject)
        {
            switch (((Asn1TaggedObject)asn1Encodable).TagNo)
            {
            case 0:
                admissionAuthority = GeneralName.GetInstance((Asn1TaggedObject)asn1Encodable, explicitly: true);
                break;

            case 1:
                namingAuthority = NamingAuthority.GetInstance((Asn1TaggedObject)asn1Encodable, isExplicit: true);
                break;

            default:
                throw new ArgumentException("Bad tag number: " + ((Asn1TaggedObject)asn1Encodable).TagNo);
            }
            enumerator.MoveNext();
            asn1Encodable = (Asn1Encodable)enumerator.Current;
        }
        if (asn1Encodable is Asn1TaggedObject)
        {
            int tagNo = ((Asn1TaggedObject)asn1Encodable).TagNo;
            if (tagNo != 1)
            {
                throw new ArgumentException("Bad tag number: " + ((Asn1TaggedObject)asn1Encodable).TagNo);
            }
            namingAuthority = NamingAuthority.GetInstance((Asn1TaggedObject)asn1Encodable, isExplicit: true);
            enumerator.MoveNext();
            asn1Encodable = (Asn1Encodable)enumerator.Current;
        }
        professionInfos = Asn1Sequence.GetInstance(asn1Encodable);
        if (enumerator.MoveNext())
        {
            throw new ArgumentException("Bad object encountered: " + Platform.GetTypeName(enumerator.Current));
        }
    }
Exemple #7
0
 private void checkValues(
     ProfessionInfo profInfo,
     NamingAuthority auth,
     DirectoryString[]               professionItems,
     DerObjectIdentifier[]   professionOids,
     string registrationNumber,
     DerOctetString addProfInfo)
 {
     checkOptionalField("auth", auth, profInfo.NamingAuthority);
     checkMandatoryField("professionItems", professionItems[0], profInfo.GetProfessionItems()[0]);
     if (professionOids != null)
     {
         checkOptionalField("professionOids", professionOids[0], profInfo.GetProfessionOids()[0]);
     }
     checkOptionalField("registrationNumber", registrationNumber, profInfo.RegistrationNumber);
     checkOptionalField("addProfessionInfo", addProfInfo, profInfo.AddProfessionInfo);
 }
Exemple #8
0
        private void checkConstruction(
            Admissions admissions,
            GeneralName name,
            NamingAuthority auth)
        {
            checkValues(admissions, name, auth);

            admissions = Admissions.GetInstance(admissions);

            checkValues(admissions, name, auth);

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

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

            admissions = Admissions.GetInstance(info);

            checkValues(admissions, name, auth);
        }
Exemple #9
0
        private void checkConstruction(
            NamingAuthority auth,
            DerObjectIdentifier namingAuthorityID,
            string namingAuthorityURL,
            DirectoryString namingAuthorityText)
        {
            checkValues(auth, namingAuthorityID, namingAuthorityURL, namingAuthorityText);

            auth = NamingAuthority.GetInstance(auth);

            checkValues(auth, namingAuthorityID, namingAuthorityURL, namingAuthorityText);

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

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

            auth = NamingAuthority.GetInstance(seq);

            checkValues(auth, namingAuthorityID, namingAuthorityURL, namingAuthorityText);
        }
Exemple #10
0
        public override void PerformTest()
        {
            DerObjectIdentifier namingAuthorityID = new DerObjectIdentifier("1.2.3");
            string          namingAuthorityURL    = "url";
            DirectoryString namingAuthorityText   = new DirectoryString("text");

            NamingAuthority auth = new NamingAuthority(namingAuthorityID, namingAuthorityURL, namingAuthorityText);

            checkConstruction(auth, namingAuthorityID, namingAuthorityURL, namingAuthorityText);

            auth = new NamingAuthority(null, namingAuthorityURL, namingAuthorityText);

            checkConstruction(auth, null, namingAuthorityURL, namingAuthorityText);

            auth = new NamingAuthority(namingAuthorityID, null, namingAuthorityText);

            checkConstruction(auth, namingAuthorityID, null, namingAuthorityText);

            auth = new NamingAuthority(namingAuthorityID, namingAuthorityURL, null);

            checkConstruction(auth, namingAuthorityID, namingAuthorityURL, null);

            auth = NamingAuthority.GetInstance(null);

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

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

                Fail("GetInstance() failed to detect bad object.");
            }
            catch (ArgumentException)
            {
                // expected
            }
        }
Exemple #11
0
        private void checkConstruction(
            ProfessionInfo profInfo,
            NamingAuthority auth,
            DirectoryString[]               professionItems,
            DerObjectIdentifier[]   professionOids,
            string registrationNumber,
            DerOctetString addProfInfo)
        {
            checkValues(profInfo, auth, professionItems, professionOids, registrationNumber, addProfInfo);

            profInfo = ProfessionInfo.GetInstance(profInfo);

            checkValues(profInfo, auth, professionItems, professionOids, registrationNumber, addProfInfo);

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

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

            profInfo = ProfessionInfo.GetInstance(seq);

            checkValues(profInfo, auth, professionItems, professionOids, registrationNumber, addProfInfo);
        }
 public Admissions(GeneralName admissionAuthority, NamingAuthority namingAuthority, ProfessionInfo[] professionInfos)
 {
     this.admissionAuthority = admissionAuthority;
     this.namingAuthority    = namingAuthority;
     this.professionInfos    = new DerSequence(professionInfos);
 }
Exemple #13
0
    private ProfessionInfo(Asn1Sequence seq)
    {
        if (seq.Count > 5)
        {
            throw new ArgumentException("Bad sequence size: " + seq.Count);
        }
        IEnumerator enumerator = seq.GetEnumerator();

        enumerator.MoveNext();
        Asn1Encodable asn1Encodable = (Asn1Encodable)enumerator.Current;

        if (asn1Encodable is Asn1TaggedObject)
        {
            Asn1TaggedObject asn1TaggedObject = (Asn1TaggedObject)asn1Encodable;
            if (asn1TaggedObject.TagNo != 0)
            {
                throw new ArgumentException("Bad tag number: " + asn1TaggedObject.TagNo);
            }
            namingAuthority = NamingAuthority.GetInstance(asn1TaggedObject, isExplicit: true);
            enumerator.MoveNext();
            asn1Encodable = (Asn1Encodable)enumerator.Current;
        }
        professionItems = Asn1Sequence.GetInstance(asn1Encodable);
        if (enumerator.MoveNext())
        {
            asn1Encodable = (Asn1Encodable)enumerator.Current;
            if (asn1Encodable is Asn1Sequence)
            {
                professionOids = Asn1Sequence.GetInstance(asn1Encodable);
            }
            else if (asn1Encodable is DerPrintableString)
            {
                registrationNumber = DerPrintableString.GetInstance(asn1Encodable).GetString();
            }
            else
            {
                if (!(asn1Encodable is Asn1OctetString))
                {
                    throw new ArgumentException("Bad object encountered: " + Platform.GetTypeName(asn1Encodable));
                }
                addProfessionInfo = Asn1OctetString.GetInstance(asn1Encodable);
            }
        }
        if (enumerator.MoveNext())
        {
            asn1Encodable = (Asn1Encodable)enumerator.Current;
            if (asn1Encodable is DerPrintableString)
            {
                registrationNumber = DerPrintableString.GetInstance(asn1Encodable).GetString();
            }
            else
            {
                if (!(asn1Encodable is DerOctetString))
                {
                    throw new ArgumentException("Bad object encountered: " + Platform.GetTypeName(asn1Encodable));
                }
                addProfessionInfo = (DerOctetString)asn1Encodable;
            }
        }
        if (enumerator.MoveNext())
        {
            asn1Encodable = (Asn1Encodable)enumerator.Current;
            if (!(asn1Encodable is DerOctetString))
            {
                throw new ArgumentException("Bad object encountered: " + Platform.GetTypeName(asn1Encodable));
            }
            addProfessionInfo = (DerOctetString)asn1Encodable;
        }
    }