home *** CD-ROM | disk | FTP | other *** search
- package sun.security.x509;
-
- import java.io.IOException;
- import java.security.Principal;
- import sun.security.util.DerInputStream;
- import sun.security.util.DerOutputStream;
- import sun.security.util.DerValue;
- import sun.security.util.ObjectIdentifier;
-
- public class X500Name implements Principal {
- // $FF: renamed from: dn java.lang.String
- private String field_0;
- private RDN[] names;
- private static final int[] commonName_data = new int[]{2, 5, 4, 3};
- private static final int[] countryName_data = new int[]{2, 5, 4, 6};
- private static final int[] localityName_data = new int[]{2, 5, 4, 7};
- private static final int[] stateName_data = new int[]{2, 5, 4, 8};
- private static final int[] streetAddress_data = new int[]{2, 5, 4, 9};
- private static final int[] orgName_data = new int[]{2, 5, 4, 10};
- private static final int[] orgUnitName_data = new int[]{2, 5, 4, 11};
- private static final int[] title_data = new int[]{2, 5, 4, 12};
- public static final ObjectIdentifier commonName_oid;
- public static final ObjectIdentifier countryName_oid;
- public static final ObjectIdentifier localityName_oid;
- public static final ObjectIdentifier orgName_oid;
- public static final ObjectIdentifier orgUnitName_oid;
- public static final ObjectIdentifier stateName_oid;
- public static final ObjectIdentifier streetAddress_oid;
- public static final ObjectIdentifier title_oid;
- private static final int[] ipAddress_data;
- public static final ObjectIdentifier ipAddress_oid;
-
- private X500Name(String var1) {
- this.parseDN(var1);
- }
-
- public X500Name(String var1, String var2, String var3, String var4) throws IOException {
- this.names = new RDN[4];
- this.names[3] = new RDN(1);
- this.names[3].assertion[0] = new AVA(commonName_oid, new DerValue(var1));
- this.names[2] = new RDN(1);
- this.names[2].assertion[0] = new AVA(orgUnitName_oid, new DerValue(var2));
- this.names[1] = new RDN(1);
- this.names[1].assertion[0] = new AVA(orgName_oid, new DerValue(var3));
- this.names[0] = new RDN(1);
- this.names[0].assertion[0] = new AVA(countryName_oid, new DerValue(var4));
- }
-
- public X500Name(String var1, String var2, String var3, String var4, String var5, String var6) throws IOException {
- this.names = new RDN[6];
- this.names[5] = new RDN(1);
- this.names[5].assertion[0] = new AVA(commonName_oid, new DerValue(var1));
- this.names[4] = new RDN(1);
- this.names[4].assertion[0] = new AVA(orgUnitName_oid, new DerValue(var2));
- this.names[3] = new RDN(1);
- this.names[3].assertion[0] = new AVA(orgName_oid, new DerValue(var3));
- this.names[2] = new RDN(1);
- this.names[2].assertion[0] = new AVA(localityName_oid, new DerValue(var4));
- this.names[1] = new RDN(1);
- this.names[1].assertion[0] = new AVA(stateName_oid, new DerValue(var5));
- this.names[0] = new RDN(1);
- this.names[0].assertion[0] = new AVA(countryName_oid, new DerValue(var6));
- }
-
- public X500Name(DerValue var1) throws IOException {
- this(var1.toDerInputStream());
- }
-
- public X500Name(DerInputStream var1) throws IOException {
- this.parseDER(var1);
- }
-
- public boolean equals(X500Name var1) {
- if (this == var1) {
- return true;
- } else {
- if (this.field_0 == null) {
- this.generateDN();
- }
-
- if (this.names.length != var1.names.length) {
- return false;
- } else {
- for(int var2 = 0; var2 < this.names.length; ++var2) {
- if (!this.names[var2].equals(var1.names[var2])) {
- return false;
- }
- }
-
- return true;
- }
- }
- }
-
- private String getString(DerValue var1) throws IOException {
- String var2 = var1.getAsString();
- if (var2 == null) {
- throw new IOException("not a DER string encoding, " + var1.tag);
- } else {
- return var2;
- }
- }
-
- public String getCountry() throws IOException {
- DerValue var1 = this.findAttribute(countryName_oid);
- return this.getString(var1);
- }
-
- public String getOrganization() throws IOException {
- DerValue var1 = this.findAttribute(orgName_oid);
- return this.getString(var1);
- }
-
- public String getOrganizationalUnit() throws IOException {
- DerValue var1 = this.findAttribute(orgUnitName_oid);
- return this.getString(var1);
- }
-
- public String getCommonName() throws IOException {
- DerValue var1 = this.findAttribute(commonName_oid);
- return this.getString(var1);
- }
-
- public String getLocality() throws IOException {
- DerValue var1 = this.findAttribute(localityName_oid);
- return this.getString(var1);
- }
-
- public String getState() throws IOException {
- DerValue var1 = this.findAttribute(stateName_oid);
- return this.getString(var1);
- }
-
- public String toString() {
- if (this.field_0 == null) {
- this.generateDN();
- }
-
- return this.field_0;
- }
-
- public String getName() {
- return this.toString();
- }
-
- private DerValue findAttribute(ObjectIdentifier var1) {
- DerValue var3 = null;
-
- for(int var2 = 0; var2 < this.names.length; ++var2) {
- var3 = this.names[var2].findAttribute(var1);
- if (var3 != null) {
- break;
- }
- }
-
- return var3;
- }
-
- private void parseDER(DerInputStream var1) throws IOException {
- DerValue[] var2 = var1.getSequence(5);
- this.names = new RDN[var2.length];
-
- for(int var3 = 0; var3 < var2.length; ++var3) {
- this.names[var3] = new RDN(var2[var3]);
- }
-
- }
-
- public void emit(DerOutputStream var1) throws IOException {
- DerOutputStream var2 = new DerOutputStream();
-
- for(int var3 = 0; var3 < this.names.length; ++var3) {
- this.names[var3].emit(var2);
- }
-
- var1.write((byte)48, var2);
- }
-
- private void parseDN(String var1) {
- }
-
- private void generateDN() {
- String var2 = null;
-
- for(int var1 = this.names.length - 1; var1 >= 0; --var1) {
- if (var2 == null) {
- var2 = this.names[var1].toString();
- } else {
- var2 = var2 + ", " + this.names[var1].toString();
- }
- }
-
- this.field_0 = var2;
- }
-
- static ObjectIdentifier intern(ObjectIdentifier var0) {
- if (var0.equals(commonName_oid)) {
- return commonName_oid;
- } else if (var0.equals(countryName_oid)) {
- return countryName_oid;
- } else if (var0.equals(localityName_oid)) {
- return localityName_oid;
- } else if (var0.equals(stateName_oid)) {
- return stateName_oid;
- } else if (var0.equals(streetAddress_oid)) {
- return streetAddress_oid;
- } else if (var0.equals(orgName_oid)) {
- return orgName_oid;
- } else if (var0.equals(orgUnitName_oid)) {
- return orgUnitName_oid;
- } else if (var0.equals(title_oid)) {
- return title_oid;
- } else {
- return var0.equals(ipAddress_oid) ? ipAddress_oid : var0;
- }
- }
-
- static {
- commonName_oid = new ObjectIdentifier(commonName_data);
- countryName_oid = new ObjectIdentifier(countryName_data);
- localityName_oid = new ObjectIdentifier(localityName_data);
- orgName_oid = new ObjectIdentifier(orgName_data);
- orgUnitName_oid = new ObjectIdentifier(orgUnitName_data);
- stateName_oid = new ObjectIdentifier(stateName_data);
- streetAddress_oid = new ObjectIdentifier(streetAddress_data);
- title_oid = new ObjectIdentifier(title_data);
- ipAddress_data = new int[]{1, 3, 6, 1, 4, 1, 42, 2, 11, 2, 1};
- ipAddress_oid = new ObjectIdentifier(ipAddress_data);
- }
- }
-