📄 x509extensions.java
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
// Source File Name: X509Extensions.java
package jit.asn1.x509;
import java.util.*;
import jit.asn1.*;
// Referenced classes of package jit.asn1.x509:
// X509Extension
public class X509Extensions
implements DEREncodable
{
public static final DERObjectIdentifier JIT_IdentifyCode = new DERObjectIdentifier("1.2.86.11.7.1");
public static final DERObjectIdentifier JIT_InsuranceNumber = new DERObjectIdentifier("1.2.86.11.7.2");
public static final DERObjectIdentifier JIT_OrganizationCode = new DERObjectIdentifier("1.2.86.11.7.3");
public static final DERObjectIdentifier JIT_ICRegistrationNumber = new DERObjectIdentifier("1.2.86.11.7.4");
public static final DERObjectIdentifier JIT_TaxationNumber = new DERObjectIdentifier("1.2.86.11.7.5");
public static final DERObjectIdentifier JIT_StationCode = new DERObjectIdentifier("1.2.86.53525105.0.1");
public static final DERObjectIdentifier JIT_CasteCode = new DERObjectIdentifier("1.2.86.53525105.0.2");
public static final DERObjectIdentifier SubjectDirectoryAttributes = new DERObjectIdentifier("2.5.29.9");
public static final DERObjectIdentifier AuthorityInformationAccess = new DERObjectIdentifier("1.3.6.1.5.5.7.1.1");
public static final DERObjectIdentifier SubjectKeyIdentifier = new DERObjectIdentifier("2.5.29.14");
public static final DERObjectIdentifier KeyUsage = new DERObjectIdentifier("2.5.29.15");
public static final DERObjectIdentifier PrivateKeyUsagePeriod = new DERObjectIdentifier("2.5.29.16");
public static final DERObjectIdentifier SubjectAlternativeName = new DERObjectIdentifier("2.5.29.17");
public static final DERObjectIdentifier IssuerAlternativeName = new DERObjectIdentifier("2.5.29.18");
public static final DERObjectIdentifier BasicConstraints = new DERObjectIdentifier("2.5.29.19");
public static final DERObjectIdentifier CRLNumber = new DERObjectIdentifier("2.5.29.20");
public static final DERObjectIdentifier ReasonCode = new DERObjectIdentifier("2.5.29.21");
public static final DERObjectIdentifier InstructionCode = new DERObjectIdentifier("2.5.29.23");
public static final DERObjectIdentifier InvalidityDate = new DERObjectIdentifier("2.5.29.24");
public static final DERObjectIdentifier DeltaCRLIndicator = new DERObjectIdentifier("2.5.29.27");
public static final DERObjectIdentifier IssuingDistributionPoint = new DERObjectIdentifier("2.5.29.28");
public static final DERObjectIdentifier CertificateIssuer = new DERObjectIdentifier("2.5.29.29");
public static final DERObjectIdentifier NameConstraints = new DERObjectIdentifier("2.5.29.30");
public static final DERObjectIdentifier CRLDistributionPoints = new DERObjectIdentifier("2.5.29.31");
public static final DERObjectIdentifier CertificatePolicies = new DERObjectIdentifier("2.5.29.32");
public static final DERObjectIdentifier PolicyMappings = new DERObjectIdentifier("2.5.29.33");
public static final DERObjectIdentifier AuthorityKeyIdentifier = new DERObjectIdentifier("2.5.29.35");
public static final DERObjectIdentifier PolicyConstraints = new DERObjectIdentifier("2.5.29.36");
public static final DERObjectIdentifier ExtendedKeyUsage = new DERObjectIdentifier("2.5.29.37");
public static final DERObjectIdentifier InhibitAnyPolicy = new DERObjectIdentifier("2.5.29.54");
private Hashtable extensions;
private Vector ordering;
public static X509Extensions getInstance(ASN1TaggedObject obj, boolean explicit)
{
return getInstance(ASN1Sequence.getInstance(obj, explicit));
}
public static X509Extensions getInstance(Object obj)
{
if(obj == null || (obj instanceof X509Extensions))
return (X509Extensions)obj;
if(obj instanceof ASN1Sequence)
return new X509Extensions((ASN1Sequence)obj);
if(obj instanceof ASN1TaggedObject)
return getInstance(((ASN1TaggedObject)obj).getObject());
else
throw new IllegalArgumentException("illegal object in getInstance: ".concat(String.valueOf(String.valueOf(obj.getClass().getName()))));
}
public X509Extensions(ASN1Sequence seq)
{
extensions = new Hashtable();
ordering = new Vector();
ASN1Sequence s;
for(Enumeration e = seq.getObjects(); e.hasMoreElements(); ordering.addElement(s.getObjectAt(0)))
{
s = (ASN1Sequence)e.nextElement();
if(s.size() == 3)
extensions.put(s.getObjectAt(0), new X509Extension((DERBoolean)s.getObjectAt(1), (ASN1OctetString)s.getObjectAt(2)));
else
extensions.put(s.getObjectAt(0), new X509Extension(false, (ASN1OctetString)s.getObjectAt(1)));
}
}
public X509Extensions(Hashtable extensions)
{
this(null, extensions);
}
public X509Extensions(Vector ordering, Hashtable extensions)
{
this.extensions = new Hashtable();
this.ordering = new Vector();
Enumeration e;
if(ordering == null)
e = extensions.keys();
else
e = ordering.elements();
for(; e.hasMoreElements(); this.ordering.addElement(e.nextElement()));
DERObjectIdentifier oid;
X509Extension ext;
for(e = this.ordering.elements(); e.hasMoreElements(); this.extensions.put(oid, ext))
{
oid = (DERObjectIdentifier)e.nextElement();
ext = (X509Extension)extensions.get(oid);
}
}
public Enumeration oids()
{
return ordering.elements();
}
public X509Extension getExtension(DERObjectIdentifier oid)
{
return (X509Extension)extensions.get(oid);
}
public DERObject getDERObject()
{
ASN1EncodableVector vec = new ASN1EncodableVector();
ASN1EncodableVector v;
for(Enumeration e = ordering.elements(); e.hasMoreElements(); vec.add(new DERSequence(v)))
{
DERObjectIdentifier oid = (DERObjectIdentifier)e.nextElement();
X509Extension ext = (X509Extension)extensions.get(oid);
v = new ASN1EncodableVector();
v.add(oid);
if(ext.isCritical())
v.add(new DERBoolean(true));
v.add(ext.getValue());
}
return new DERSequence(vec);
}
public int hashCode()
{
Enumeration e = extensions.keys();
int hashCode;
Object o;
for(hashCode = 0; e.hasMoreElements(); hashCode ^= extensions.get(o).hashCode())
{
o = e.nextElement();
hashCode ^= o.hashCode();
}
return hashCode;
}
public boolean equals(Object o)
{
if(o == null || !(o instanceof X509Extensions))
return false;
X509Extensions other = (X509Extensions)o;
Enumeration e1 = extensions.keys();
Enumeration e2;
for(e2 = other.extensions.keys(); e1.hasMoreElements() && e2.hasMoreElements();)
{
Object o1 = e1.nextElement();
Object o2 = e2.nextElement();
if(!o1.equals(o2))
return false;
}
return !e1.hasMoreElements() && !e2.hasMoreElements();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -