Пример #1
0
 public X500Name(
     IX500NameStyle style,
     Rdn[] rDNs)
 {
     this.rdns  = rDNs;
     this.style = style;
 }
Пример #2
0
        private X500Name(
            IX500NameStyle style,
            Asn1Sequence seq)
        {
            this.style = style;
            this.rdns  = new Rdn[seq.Count];

            int index = 0;

            for (IEnumerator e = seq.GetEnumerator(); e.MoveNext();)
            {
                rdns[index++] = Rdn.GetInstance(e.Current);
            }
        }
Пример #3
0
        public static X500Name GetInstance(
            IX500NameStyle style,
            Object obj)
        {
            if (obj is X500Name)
            {
                return(new X500Name(style, (X500Name)obj));
            }
            else if (obj != null)
            {
                return(new X500Name(style, Asn1Sequence.GetInstance(obj)));
            }

            return(null);
        }
Пример #4
0
 private X500Name(IX500NameStyle style, X500Name name)
 {
     this.rdns  = name.rdns;
     this.style = style;
 }
Пример #5
0
 public X500Name(
     IX500NameStyle style,
     String dirName) : this(style.FromString(dirName))
 {
     this.style = style;
 }
Пример #6
0
        public static Rdn[] rDNsFromString(String name, IX500NameStyle x500Style)
        {
            X500NameTokenizer nTok    = new X500NameTokenizer(name);
            X500NameBuilder   builder = new X500NameBuilder(x500Style);

            while (nTok.hasMoreTokens())
            {
                String token = nTok.nextToken();

                if (token.IndexOf('+') > 0)
                {
                    X500NameTokenizer pTok = new X500NameTokenizer(token, '+');
                    X500NameTokenizer vTok = new X500NameTokenizer(pTok.nextToken(), '=');

                    String attr = vTok.nextToken();

                    if (!vTok.hasMoreTokens())
                    {
                        throw new ArgumentException("badly formatted directory string");
                    }

                    String value            = vTok.nextToken();
                    DerObjectIdentifier oid = x500Style.AttrNameToOID(attr.Trim());

                    if (pTok.hasMoreTokens())
                    {
                        IList oids   = Platform.CreateArrayList();
                        IList values = Platform.CreateArrayList();

                        oids.Add(oid);
                        values.Add(unescape(value));

                        while (pTok.hasMoreTokens())
                        {
                            vTok = new X500NameTokenizer(pTok.nextToken(), '=');

                            attr = vTok.nextToken();

                            if (!vTok.hasMoreTokens())
                            {
                                throw new ArgumentException("badly formatted directory string");
                            }

                            value = vTok.nextToken();
                            oid   = x500Style.AttrNameToOID(attr.Trim());


                            oids.Add(oid);
                            values.Add(unescape(value));
                        }

                        builder.AddMultiValuedRdn(toOIDArray(oids), toValueArray(values));
                    }
                    else
                    {
                        builder.AddRdn(oid, unescape(value));
                    }
                }
                else
                {
                    X500NameTokenizer vTok = new X500NameTokenizer(token, '=');

                    String attr = vTok.nextToken();

                    if (!vTok.hasMoreTokens())
                    {
                        throw new ArgumentException("badly formatted directory string");
                    }

                    String value            = vTok.nextToken();
                    DerObjectIdentifier oid = x500Style.AttrNameToOID(attr.Trim());

                    builder.AddRdn(oid, unescape(value));
                }
            }

            return(builder.Build().GetRdns());
        }
Пример #7
0
        static BCStyle()
        {
            DefaultSymbols.Add(C, "C");
            DefaultSymbols.Add(O, "O");
            DefaultSymbols.Add(T, "T");
            DefaultSymbols.Add(OU, "OU");
            DefaultSymbols.Add(CN, "CN");
            DefaultSymbols.Add(L, "L");
            DefaultSymbols.Add(ST, "ST");
            DefaultSymbols.Add(SN, "SERIALNUMBER");
            DefaultSymbols.Add(EmailAddress, "E");
            DefaultSymbols.Add(DC, "DC");
            DefaultSymbols.Add(UID, "UID");
            DefaultSymbols.Add(STREET, "STREET");
            DefaultSymbols.Add(SURNAME, "SURNAME");
            DefaultSymbols.Add(GIVENNAME, "GIVENNAME");
            DefaultSymbols.Add(INITIALS, "INITIALS");
            DefaultSymbols.Add(GENERATION, "GENERATION");
            DefaultSymbols.Add(UnstructuredAddress, "unstructuredAddress");
            DefaultSymbols.Add(UnstructuredName, "unstructuredName");
            DefaultSymbols.Add(UNIQUE_IDENTIFIER, "UniqueIdentifier");
            DefaultSymbols.Add(DN_QUALIFIER, "DN");
            DefaultSymbols.Add(PSEUDONYM, "Pseudonym");
            DefaultSymbols.Add(POSTAL_ADDRESS, "PostalAddress");
            DefaultSymbols.Add(NAME_AT_BIRTH, "NameAtBirth");
            DefaultSymbols.Add(COUNTRY_OF_CITIZENSHIP, "CountryOfCitizenship");
            DefaultSymbols.Add(COUNTRY_OF_RESIDENCE, "CountryOfResidence");
            DefaultSymbols.Add(GENDER, "Gender");
            DefaultSymbols.Add(PLACE_OF_BIRTH, "PlaceOfBirth");
            DefaultSymbols.Add(DATE_OF_BIRTH, "DateOfBirth");
            DefaultSymbols.Add(POSTAL_CODE, "PostalCode");
            DefaultSymbols.Add(BUSINESS_CATEGORY, "BusinessCategory");
            DefaultSymbols.Add(TELEPHONE_NUMBER, "TelephoneNumber");
            DefaultSymbols.Add(NAME, "Name");

            DefaultLookUp.Add("c", C);
            DefaultLookUp.Add("o", O);
            DefaultLookUp.Add("t", T);
            DefaultLookUp.Add("ou", OU);
            DefaultLookUp.Add("cn", CN);
            DefaultLookUp.Add("l", L);
            DefaultLookUp.Add("st", ST);
            DefaultLookUp.Add("sn", SN);
            DefaultLookUp.Add("serialnumber", SN);
            DefaultLookUp.Add("street", STREET);
            DefaultLookUp.Add("emailaddress", E);
            DefaultLookUp.Add("dc", DC);
            DefaultLookUp.Add("e", E);
            DefaultLookUp.Add("uid", UID);
            DefaultLookUp.Add("surname", SURNAME);
            DefaultLookUp.Add("givenname", GIVENNAME);
            DefaultLookUp.Add("initials", INITIALS);
            DefaultLookUp.Add("generation", GENERATION);
            DefaultLookUp.Add("unstructuredaddress", UnstructuredAddress);
            DefaultLookUp.Add("unstructuredname", UnstructuredName);
            DefaultLookUp.Add("uniqueidentifier", UNIQUE_IDENTIFIER);
            DefaultLookUp.Add("dn", DN_QUALIFIER);
            DefaultLookUp.Add("pseudonym", PSEUDONYM);
            DefaultLookUp.Add("postaladdress", POSTAL_ADDRESS);
            DefaultLookUp.Add("nameofbirth", NAME_AT_BIRTH);
            DefaultLookUp.Add("countryofcitizenship", COUNTRY_OF_CITIZENSHIP);
            DefaultLookUp.Add("countryofresidence", COUNTRY_OF_RESIDENCE);
            DefaultLookUp.Add("gender", GENDER);
            DefaultLookUp.Add("placeofbirth", PLACE_OF_BIRTH);
            DefaultLookUp.Add("dateofbirth", DATE_OF_BIRTH);
            DefaultLookUp.Add("postalcode", POSTAL_CODE);
            DefaultLookUp.Add("businesscategory", BUSINESS_CATEGORY);
            DefaultLookUp.Add("telephonenumber", TELEPHONE_NUMBER);
            DefaultLookUp.Add("name", NAME);

            Instance = new BCStyle();
        }
Пример #8
0
 /// <summary>
 /// Constructor using a specified style.
 /// </summary>
 /// <param name="template">The style template for string to DN conversion.</param>
 public X500NameBuilder(IX500NameStyle template)
 {
     this.template = template;
 }