public X500Name( IX500NameStyle style, Rdn[] rDNs) { this.rdns = rDNs; this.style = style; }
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); } }
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); }
private X500Name(IX500NameStyle style, X500Name name) { this.rdns = name.rdns; this.style = style; }
public X500Name( IX500NameStyle style, String dirName) : this(style.FromString(dirName)) { this.style = style; }
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()); }
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(); }
/// <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; }