⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 x500distinguishedname.java

📁 gcc的JAVA模块的源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
  public String getOrganization()  {    return organization;  }  public String getStreet()  {    return street;  }  public String getState()  {    return state;  }  public String getTitle()  {    return title;  }  public String getDNQualifier()  {    return dnQualifier;  }  public String getSurname()  {    return surname;  }  public String getGivenName()  {    return givenName;  }  public String getInitials()  {    return initials;  }  public String getGeneration()  {    return generation;  }  public String getEmail()  {    return email;  }  public String getDomain()  {    return domainComponent;  }  public String getUserID()  {    return userid;  }  // Own methods.  // ------------------------------------------------------------------------  private static String unquote(String str)  {    if (str.startsWith("\"") && str.endsWith("\""))      str = str.substring(1, str.length()-1);    // XXX needs regex    //return str.replaceAll("\\([,+\"\\<>;])", "\1");    return str;  }  private void parseDN(String name, boolean rfc2253)  {    if (name.length() == 0)      throw new IllegalArgumentException("zero-length distinguished name");    StreamTokenizer parse = new StreamTokenizer(new StringReader(name));    parse.resetSyntax();    parse.wordChars('\000', '~');    parse.ordinaryChar('#');    parse.ordinaryChar(',');    parse.ordinaryChar('=');    parse.ordinaryChar('<');    parse.ordinaryChar('>');    parse.ordinaryChar(';');    parse.ordinaryChar('\\');    parse.quoteChar('"');    String attrib = null;    String value = null;    int token, lastToken = ',';    while (true)      {        try          {            token = parse.nextToken();          }        catch (IOException ioe)          {            throw new IllegalArgumentException();          }        switch (token)          {            case StreamTokenizer.TT_WORD:              if (lastToken == ',' || lastToken == '+' ||                  (!rfc2253 && lastToken == ';'))                attrib = parse.sval.trim();              else if (lastToken == '=')                value = unquote(parse.sval.trim());              else                throw new IllegalArgumentException();              break;            case '"':              if (lastToken == '=')                value = parse.sval;              else                throw new IllegalArgumentException();              break;            case ';':              if (rfc2253)                throw new IllegalArgumentException();            case ',':            case '+':              if (attrib == null || value == null)                throw new IllegalArgumentException("extraneous separator");              try                {                  setAttribute(new OID(attrib), value);                }              catch (Exception x)                {                  setAttribute(attrib, value);                }              attrib = null;              value = null;              break;            case '=':              break;            case StreamTokenizer.TT_EOF:              return;            default:              throw new IllegalArgumentException("unknown token " + (char)token                + " (" + token + ")");          }        lastToken = token;      }  }  private void parseDER(InputStream in) throws IOException  {    DERReader der = new DERReader(in);    DERValue name = der.read();    if (!name.isConstructed())      throw new ASN1ParsingException("badly formed Name");    int len = 0;    while (len < name.getLength())      {        DERValue rdn = der.read();        if (rdn.getValue() != DER.CONSTRUCTED_VALUE)          throw new ASN1ParsingException("badly formed RDNSequence");        int len2 = 0;        while (len2 < rdn.getLength())          {            DERValue atav = der.read();            if (atav.getValue() != DER.CONSTRUCTED_VALUE)              throw new ASN1ParsingException(                "badly formed AttributeTypeAndValue");            OID atype = (OID) der.read().getValue();            String aval = (String) der.read().getValue();            setAttribute(atype, aval);            len2 += 1 + atav.getLength()                 + DERWriter.definiteEncodingSize(atav.getLength());          }        len += len2 + 1 + DERWriter.definiteEncodingSize(name.getLength());      }  }  private byte[] encodeDER()  {    try      {        LinkedList name = new LinkedList();        if (commonName != null)          {            HashSet rdn = new HashSet();            LinkedList atav = new LinkedList();            atav.add(new DERValue(DER.OBJECT_IDENTIFIER, CN));            atav.add(new DERValue(DER.PRINTABLE_STRING, commonName));            rdn.add(new DERValue(DER.CONSTRUCTED | DER.SEQUENCE, atav));            name.add(new DERValue(DER.CONSTRUCTED | DER.SET, rdn));          }        if (country != null)          {            HashSet rdn = new HashSet();            LinkedList atav = new LinkedList();            atav.add(new DERValue(DER.OBJECT_IDENTIFIER, C));            atav.add(new DERValue(DER.PRINTABLE_STRING, country));            rdn.add(new DERValue(DER.CONSTRUCTED | DER.SEQUENCE, atav));            name.add(new DERValue(DER.CONSTRUCTED | DER.SET, rdn));          }        if (locality != null)          {            HashSet rdn = new HashSet();            LinkedList atav = new LinkedList();            atav.add(new DERValue(DER.OBJECT_IDENTIFIER, L));            atav.add(new DERValue(DER.PRINTABLE_STRING, locality));            rdn.add(new DERValue(DER.CONSTRUCTED | DER.SEQUENCE, atav));            name.add(new DERValue(DER.CONSTRUCTED | DER.SET, rdn));          }        if (orgUnit != null)          {            HashSet rdn = new HashSet();            LinkedList atav = new LinkedList();            atav.add(new DERValue(DER.OBJECT_IDENTIFIER, OU));            atav.add(new DERValue(DER.PRINTABLE_STRING, orgUnit));            rdn.add(new DERValue(DER.CONSTRUCTED | DER.SEQUENCE, atav));            name.add(new DERValue(DER.CONSTRUCTED | DER.SET, rdn));          }        if (organization != null)          {            HashSet rdn = new HashSet();            LinkedList atav = new LinkedList();            atav.add(new DERValue(DER.OBJECT_IDENTIFIER, O));            atav.add(new DERValue(DER.PRINTABLE_STRING, organization));            rdn.add(new DERValue(DER.CONSTRUCTED | DER.SEQUENCE, atav));            name.add(new DERValue(DER.CONSTRUCTED | DER.SET, rdn));          }        if (street != null)          {            HashSet rdn = new HashSet();            LinkedList atav = new LinkedList();            atav.add(new DERValue(DER.OBJECT_IDENTIFIER, STREET));            atav.add(new DERValue(DER.PRINTABLE_STRING, street));            rdn.add(new DERValue(DER.CONSTRUCTED | DER.SEQUENCE, atav));            name.add(new DERValue(DER.CONSTRUCTED | DER.SET, rdn));          }        if (state != null)          {            HashSet rdn = new HashSet();            LinkedList atav = new LinkedList();            atav.add(new DERValue(DER.OBJECT_IDENTIFIER, ST));            atav.add(new DERValue(DER.PRINTABLE_STRING, state));            rdn.add(new DERValue(DER.CONSTRUCTED | DER.SEQUENCE, atav));            name.add(new DERValue(DER.CONSTRUCTED | DER.SET, rdn));          }        if (title != null)          {            HashSet rdn = new HashSet();            LinkedList atav = new LinkedList();            atav.add(new DERValue(DER.OBJECT_IDENTIFIER, T));            atav.add(new DERValue(DER.PRINTABLE_STRING, title));            rdn.add(new DERValue(DER.CONSTRUCTED | DER.SEQUENCE, atav));            name.add(new DERValue(DER.CONSTRUCTED | DER.SET, rdn));          }        if (dnQualifier != null)          {            HashSet rdn = new HashSet();            LinkedList atav = new LinkedList();            atav.add(new DERValue(DER.OBJECT_IDENTIFIER, DNQ));            atav.add(new DERValue(DER.PRINTABLE_STRING, dnQualifier));            rdn.add(new DERValue(DER.CONSTRUCTED | DER.SEQUENCE, atav));            name.add(new DERValue(DER.CONSTRUCTED | DER.SET, rdn));          }        if (surname != null)          {            HashSet rdn = new HashSet();            LinkedList atav = new LinkedList();            atav.add(new DERValue(DER.OBJECT_IDENTIFIER, NAME));            atav.add(new DERValue(DER.PRINTABLE_STRING, surname));            rdn.add(new DERValue(DER.CONSTRUCTED | DER.SEQUENCE, atav));            name.add(new DERValue(DER.CONSTRUCTED | DER.SET, rdn));          }        if (givenName != null)          {            HashSet rdn = new HashSet();            LinkedList atav = new LinkedList();            atav.add(new DERValue(DER.OBJECT_IDENTIFIER, GIVENNAME));            atav.add(new DERValue(DER.PRINTABLE_STRING, givenName));            rdn.add(new DERValue(DER.CONSTRUCTED | DER.SEQUENCE, atav));            name.add(new DERValue(DER.CONSTRUCTED | DER.SET, rdn));          }        if (initials != null)          {            HashSet rdn = new HashSet();            LinkedList atav = new LinkedList();            atav.add(new DERValue(DER.OBJECT_IDENTIFIER, INITIALS));            atav.add(new DERValue(DER.PRINTABLE_STRING, initials));            rdn.add(new DERValue(DER.CONSTRUCTED | DER.SEQUENCE, atav));            name.add(new DERValue(DER.CONSTRUCTED | DER.SET, rdn));          }        if (generation != null)          {            HashSet rdn = new HashSet();            LinkedList atav = new LinkedList();            atav.add(new DERValue(DER.OBJECT_IDENTIFIER, GENERATION));            atav.add(new DERValue(DER.PRINTABLE_STRING, generation));            rdn.add(new DERValue(DER.CONSTRUCTED | DER.SEQUENCE, atav));            name.add(new DERValue(DER.CONSTRUCTED | DER.SET, rdn));          }        if (email != null)          {            HashSet rdn = new HashSet();            LinkedList atav = new LinkedList();            atav.add(new DERValue(DER.OBJECT_IDENTIFIER, EMAIL));            atav.add(new DERValue(DER.PRINTABLE_STRING, email));            rdn.add(new DERValue(DER.CONSTRUCTED | DER.SEQUENCE, atav));            name.add(new DERValue(DER.CONSTRUCTED | DER.SET, rdn));          }        if (domainComponent != null)          {            HashSet rdn = new HashSet();            LinkedList atav = new LinkedList();            atav.add(new DERValue(DER.OBJECT_IDENTIFIER, DC));            atav.add(new DERValue(DER.PRINTABLE_STRING, domainComponent));            rdn.add(new DERValue(DER.CONSTRUCTED | DER.SEQUENCE, atav));            name.add(new DERValue(DER.CONSTRUCTED | DER.SET, rdn));          }        if (userid != null)          {            HashSet rdn = new HashSet();            LinkedList atav = new LinkedList();            atav.add(new DERValue(DER.OBJECT_IDENTIFIER, UID));            atav.add(new DERValue(DER.PRINTABLE_STRING, userid));            rdn.add(new DERValue(DER.CONSTRUCTED | DER.SEQUENCE, atav));            name.add(new DERValue(DER.CONSTRUCTED | DER.SET, rdn));          }        ByteArrayOutputStream out = new ByteArrayOutputStream();        DERWriter.write(out, new DERValue(DER.CONSTRUCTED|DER.SEQUENCE, name));        return out.toByteArray();      }    catch (IOException ioe)      {        throw new Error(ioe);      }  }  private void setAttribute(String atype, String aval)  {    if (atype.equals("CN"))      commonName = aval;    else if (atype.equals("C"))      country = aval;    else if (atype.equals("L"))      locality = aval;    else if (atype.equals("ST"))      state = aval;    else if (atype.equals("STREET"))      street = aval;    else if (atype.equals("O"))      organization = aval;    else if (atype.equals("OU"))      orgUnit = aval;    else if (atype.equals("T"))      title = aval;    else if (atype.equals("DNQ") || atype.equals("DNQUALIFIER"))      dnQualifier = aval;    else if (atype.equals("SURNAME"))      surname = aval;    else if (atype.equals("GIVENNAME"))      givenName = aval;    else if (atype.equals("INITIALS"))      initials = aval;    else if (atype.equals("GENERATION"))      generation = aval;    else if (atype.equals("EMAILADDRESS"))      email = aval;    else if (atype.equals("DC"))      domainComponent = aval;    else if (atype.equals("UID"))      userid = aval;    else      throw new IllegalArgumentException("unknown attribute " + atype);  }  private void setAttribute(OID atype, String aval)  {    if (atype.equals(CN))      commonName = aval;    else if (atype.equals(C))      country = aval;    else if (atype.equals(L))      locality = aval;    else if (atype.equals(ST))      state = aval;    else if (atype.equals(STREET))      street = aval;    else if (atype.equals(O))      organization = aval;    else if (atype.equals(OU))      orgUnit = aval;    else if (atype.equals(T))      title = aval;    else if (atype.equals(DNQ))      dnQualifier = aval;    else if (atype.equals(NAME))      surname = aval;    else if (atype.equals(GIVENNAME))      givenName = aval;    else if (atype.equals(INITIALS))      initials = aval;    else if (atype.equals(GENERATION))      generation = aval;    else if (atype.equals(EMAIL))      email = aval;    else if (atype.equals(DC))      domainComponent = aval;    else if (atype.equals(UID))      userid = aval;    else      throw new IllegalArgumentException("unknown attribute " + atype);  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -