📄 extensionsparser.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: ExtensionsParser.java
package jit.asn1parser.x509;
import java.io.ByteArrayInputStream;
import java.util.*;
import jit.asn1.*;
import jit.asn1.x509.*;
import jit.asn1parser.Parser;
import jit.math.BigInteger;
// Referenced classes of package jit.asn1parser.x509:
// ExtensConstant, X509Cert, X509CRL
public class ExtensionsParser extends ExtensConstant
{
private X509Extensions extens;
public ExtensionsParser(X509Extensions extensions)
{
extens = extensions;
}
public ExtensionsParser(X509Cert cert)
throws Exception
{
extens = cert.getExtensions();
}
public ExtensionsParser(X509CRL crl)
throws Exception
{
extens = crl.getExtensions();
}
public ExtensionsParser(CRLEntry crlEntry)
{
extens = crlEntry.getExtensions();
}
public Vector listAllName()
{
Vector extenNameVec = new Vector();
String extenName;
for(Enumeration oidEnum = extens.oids(); oidEnum.hasMoreElements(); extenNameVec.add(extenName))
{
DERObjectIdentifier objID = (DERObjectIdentifier)oidEnum.nextElement();
extenName = (String)ExtensConstant.oidAndName.get(objID);
}
return extenNameVec;
}
public Vector listAllOID()
{
Vector extenOIDVec = new Vector();
DERObjectIdentifier objID;
for(Enumeration oidEnum = extens.oids(); oidEnum.hasMoreElements(); extenOIDVec.add(objID.getId()))
objID = (DERObjectIdentifier)oidEnum.nextElement();
return extenOIDVec;
}
public Vector listCriticalOID()
{
Vector criticalOID = new Vector();
Enumeration oidEnum = extens.oids();
do
{
if(!oidEnum.hasMoreElements())
break;
DERObjectIdentifier objID = (DERObjectIdentifier)oidEnum.nextElement();
X509Extension exten = extens.getExtension(objID);
if(exten.isCritical())
criticalOID.add(objID.getId());
} while(true);
return criticalOID;
}
public Vector listCriticalName()
{
Vector criticalName = new Vector();
Enumeration oidEnum = extens.oids();
do
{
if(!oidEnum.hasMoreElements())
break;
DERObjectIdentifier objID = (DERObjectIdentifier)oidEnum.nextElement();
X509Extension exten = extens.getExtension(objID);
if(exten.isCritical())
criticalName.add(ExtensConstant.oidAndName.get(objID));
} while(true);
return criticalName;
}
public X509Extension getExtension(DERObjectIdentifier derOID)
{
return extens.getExtension(derOID);
}
public X509Extension getExtension(String extensionName)
{
DERObjectIdentifier oid = (DERObjectIdentifier)ExtensConstant.nameAndOid.get(extensionName);
return getExtension(oid);
}
public SubjectDirectoryAttributes getSubjectDirectoryAttributes()
throws Exception
{
DERObjectIdentifier id = X509Extensions.SubjectDirectoryAttributes;
X509Extension exten = getExtension(id);
if(exten == null)
{
return null;
} else
{
ASN1Sequence seq = Parser.oct2Seq(exten.getValue());
return new SubjectDirectoryAttributes(seq);
}
}
public SubjectKeyIdentifier getSubjectKeyIdentifier()
throws Exception
{
DERObjectIdentifier id = X509Extensions.SubjectKeyIdentifier;
X509Extension exten = getExtension(id);
if(exten == null)
{
return null;
} else
{
ASN1OctetString octet = exten.getValue();
return SubjectKeyIdentifier.getInstance(Parser.writeBytes2DERObj(octet.getOctets()));
}
}
public KeyUsage getKeyUsage()
throws Exception
{
DERObjectIdentifier id = X509Extensions.KeyUsage;
X509Extension exten = getExtension(id);
if(exten == null)
{
return null;
} else
{
byte octetKeyUsage[] = exten.getValue().getOctets();
ByteArrayInputStream bis = new ByteArrayInputStream(octetKeyUsage);
ASN1InputStream derIns = new ASN1InputStream(bis);
DERBitString derBitStr = (DERBitString)derIns.readObject();
return new KeyUsage(derBitStr);
}
}
public PrivateKeyUsagePeriod getPriKeyUsagePeriod()
throws Exception
{
DERObjectIdentifier id = X509Extensions.PrivateKeyUsagePeriod;
X509Extension exten = getExtension(id);
if(exten == null)
{
return null;
} else
{
ASN1Sequence seq = Parser.oct2Seq(exten.getValue());
return new PrivateKeyUsagePeriod(seq);
}
}
public GeneralNames getSubjectAltName()
throws Exception
{
DERObjectIdentifier id = X509Extensions.SubjectAlternativeName;
X509Extension exten = getExtension(id);
if(exten == null)
{
return null;
} else
{
ASN1Sequence seq = Parser.oct2Seq(exten.getValue());
return new GeneralNames(seq);
}
}
public GeneralNames getIssuerAltName()
throws Exception
{
DERObjectIdentifier id = X509Extensions.IssuerAlternativeName;
X509Extension exten = getExtension(id);
if(exten == null)
{
return null;
} else
{
ASN1Sequence seq = Parser.oct2Seq(exten.getValue());
return new GeneralNames(seq);
}
}
public BasicConstraints getBasicConstraints()
throws Exception
{
DERObjectIdentifier id = X509Extensions.BasicConstraints;
X509Extension exten = getExtension(id);
if(exten == null)
{
return null;
} else
{
ASN1Sequence basicConstraints = Parser.oct2Seq(exten.getValue());
return new BasicConstraints(basicConstraints);
}
}
public CRLNumber getCRLNumber()
throws Exception
{
DERObjectIdentifier id = X509Extensions.CRLNumber;
X509Extension exten = getExtension(id);
if(exten == null)
{
return null;
} else
{
ASN1OctetString octet = exten.getValue();
DERInteger derInt = (DERInteger)Parser.writeBytes2DERObj(octet.getOctets());
CRLNumber CRLNumber = new CRLNumber(derInt.getValue());
return CRLNumber;
}
}
public CRLReason getReasonCode()
throws Exception
{
DERObjectIdentifier id = X509Extensions.ReasonCode;
X509Extension exten = getExtension(id);
if(exten == null)
{
return null;
} else
{
ASN1OctetString octet = exten.getValue();
DEREnumerated derEnum = (DEREnumerated)Parser.writeBytes2DERObj(octet.getOctets());
CRLReason crlReason = new CRLReason(derEnum);
return crlReason;
}
}
public DERObjectIdentifier getHoldInstructionCode()
{
DERObjectIdentifier id = X509Extensions.InstructionCode;
X509Extension exten = getExtension(id);
if(exten == null)
{
return null;
} else
{
ASN1OctetString octet = exten.getValue();
DERObjectIdentifier instructionCode = DERObjectIdentifier.getInstance(octet);
return instructionCode;
}
}
public DERGeneralizedTime getInvalidityDate()
{
DERObjectIdentifier id = X509Extensions.InvalidityDate;
X509Extension exten = getExtension(id);
if(exten == null)
{
return null;
} else
{
ASN1OctetString octet = exten.getValue();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -