001 package org.bouncycastle.asn1;
002
003 public class DERObjectIdentifier extends ASN1Primitive
004 {
005 String field_71611_a;
006 private static ASN1ObjectIdentifier[][] field_71610_b = new ASN1ObjectIdentifier[255][];
007
008 public DERObjectIdentifier(String par1Str)
009 {
010 if (!func_71608_a(par1Str))
011 {
012 throw new IllegalArgumentException("string " + par1Str + " not an OID");
013 }
014 else
015 {
016 this.field_71611_a = par1Str;
017 }
018 }
019
020 public String func_71609_b()
021 {
022 return this.field_71611_a;
023 }
024
025 public int hashCode()
026 {
027 return this.field_71611_a.hashCode();
028 }
029
030 boolean asn1Equals(ASN1Primitive par1ASN1Primitive)
031 {
032 return !(par1ASN1Primitive instanceof DERObjectIdentifier) ? false : this.field_71611_a.equals(((DERObjectIdentifier)par1ASN1Primitive).field_71611_a);
033 }
034
035 public String toString()
036 {
037 return this.func_71609_b();
038 }
039
040 private static boolean func_71608_a(String par0Str)
041 {
042 if (par0Str.length() >= 3 && par0Str.charAt(1) == 46)
043 {
044 char var1 = par0Str.charAt(0);
045
046 if (var1 >= 48 && var1 <= 50)
047 {
048 boolean var2 = false;
049
050 for (int var3 = par0Str.length() - 1; var3 >= 2; --var3)
051 {
052 char var4 = par0Str.charAt(var3);
053
054 if (48 <= var4 && var4 <= 57)
055 {
056 var2 = true;
057 }
058 else
059 {
060 if (var4 != 46)
061 {
062 return false;
063 }
064
065 if (!var2)
066 {
067 return false;
068 }
069
070 var2 = false;
071 }
072 }
073
074 return var2;
075 }
076 else
077 {
078 return false;
079 }
080 }
081 else
082 {
083 return false;
084 }
085 }
086 }