📄 testx509cert.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: TestX509Cert.java
package jit.test;
import java.io.PrintStream;
import java.util.*;
import jit.asn1.*;
import jit.asn1.pkcs.Attribute;
import jit.asn1.pkcs.PKCSObjectIdentifiers;
import jit.asn1.x509.*;
import jit.asn1parser.Parser;
import jit.asn1parser.x509.*;
import jit.crypto.params.RSAKeyParameters;
import jit.crypto.params.RSAPrivateCrtKeyParameters;
import jit.jcrypto.*;
import jit.math.BigInteger;
public class TestX509Cert
{
BigInteger mod;
BigInteger pubExp;
BigInteger priExp;
BigInteger p;
BigInteger q;
BigInteger dp;
BigInteger dq;
BigInteger coff;
RSAPrivateCrtKeyParameters priKey;
RSAKeyParameters pubKey;
BigInteger smod;
BigInteger spubExp;
BigInteger spriExp;
BigInteger sp;
BigInteger sq;
BigInteger sdp;
BigInteger sdq;
BigInteger scoff;
RSAPrivateCrtKeyParameters spriKey;
RSAKeyParameters spubKey;
X509Cert cert;
public TestX509Cert()
{
mod = new BigInteger("dba7ecd2cb0cd61e6dc9d6802deba2f2c7ff58db2e49864e86499999c829a8903d27b054e0a44b556a3e6b5fc3ba265d5328c9fc005ede177f897034176d2f087f6cae54533889c6b65d1ef4d873340e1e54dcf6051d9bf2f52716d88798cb8edf66651eb7f0fb98048dddf110393105ca88e90760d9868bbd5e4502addbee4f", 16);
pubExp = new BigInteger("3");
priExp = new BigInteger("926ff33732088ebef3dbe45573f26ca1daaa3b3cc9865989aedbbbbbdac6706028c5203895c2dce39c299cea827c19938cc5dbfd5594940faa5ba022ba48ca046e1923316268d24464c21cd1f7535b0b7d1301f388416bd53c74e4423c7c0c1af3d4b4046f81ac16fc7ba5d43890896f9babe9269b7a2b0b98b822b724685a0b", 16);
p = new BigInteger("eb7705f0f858fe5a01a697659901aa5b2e2acff664715ab42ccd04fe4ce5b0b97f4c23bad235feb074536432e84264e1bd3cd1f45b8868eeceb059a3108ccc59", 16);
q = new BigInteger("eecff399474250061d935c544c748121b48d8a12544a1f7eedaabb76dff908acf25b335d3e787ac5158100ffd31dfdfca3ca39591c19dd0b8999b74ce6b29ae7", 16);
dp = new BigInteger("9cfa03f5fae5fee6abc464ee66011c3cc971dff9984b91cd733358a98899207baa32c27c8c23ff204d8ced77458198967e288bf83d059b49df203bc20b08883b", 16);
dq = new BigInteger("9f354d10da2c3559690ce83832f85616785e5c0c38316a549e71d24f3ffb5b1df6e777937efafc8363ab55ffe213fea86d317b90bd66935d06667a33447711ef", 16);
coff = new BigInteger("9f864f86695a64d08c04c2eb29d5e3996a463ef764c640cf5db748c2d0757561d3153f925cd5d69fd6a8040e27ee29bb0d60a30bf140a45b2555263a2cbc5969", 16);
priKey = new RSAPrivateCrtKeyParameters(mod, pubExp, priExp, p, q, dp, dq, coff);
pubKey = new RSAKeyParameters(false, mod, pubExp);
smod = new BigInteger("9d021b39ec0fe2c910a408642547a1e58ca7b50908286de148e78841bc830337e982ed532ea2ab3427510a6af0b0178a3776772580b5303685ffce65566106c9", 16);
spubExp = new BigInteger("3");
spriExp = new BigInteger("68ac12269d5fec860b18059818da6bee5dc5235b5ac59e96309a5ad67dacaccee52143b9d9a87982d3a05bf3049b1cf87870d7a06ed6d5cf6bf47c4aef07d363", 16);
sp = new BigInteger("d5f293affef7802907b7b103d9503ac2034de9ea188740aec75f0640c6b9244f", 16);
sq = new BigInteger("bbde740c692e74c6e228cf7a907731537f7f49cac1ebaed09cb20db4291c2567", 16);
sdp = new BigInteger("8ea1b7caa9fa5570afcfcb57e6357c815789469c105a2b1f2f94aed5d9d0c2df", 16);
sdq = new BigInteger("7d3ef808461ef88496c5dfa70afa20e254ff86872bf2748b13215e781b6818ef", 16);
scoff = new BigInteger("54dfc3c314948066d7fa1d9de56d7228de0f8a2e73db6e51f29f576221311c3a", 16);
spriKey = new RSAPrivateCrtKeyParameters(smod, spubExp, spriExp, sp, sq, sdp, sdq, scoff);
spubKey = new RSAKeyParameters(false, smod, spubExp);
cert = null;
cert = new X509Cert();
}
public void parserTest()
{
try
{
X509Cert cert = new X509Cert("D:/hgl9.cer");
int version = cert.getVersion();
AlgorithmIdentifier alg = cert.getSignatureAlg();
String issuer = cert.getIssuer().toString();
String subject = cert.getSubject().toString();
BigInteger serialNumber = cert.getSerialNumber();
SubjectPublicKeyInfo subjectPubKey = cert.getSubjectPublicKeyInfo();
String notBefore = cert.getNotBefore().getTime();
String notAfter = cert.getNotAfter().getTime();
DERBitString issuerUID = cert.getIssuerUniqueId();
DERBitString subjectUID = cert.getSubjectUniqueId();
X509Extensions x509Extens = cert.getExtensions();
ExtensionsParser extenParser = new ExtensionsParser(x509Extens);
Vector extenVector = extenParser.listAllName();
Vector criticalName = extenParser.listCriticalName();
SubjectDirectoryAttributes sda = extenParser.getSubjectDirectoryAttributes();
Attribute sdAttritutes[] = sda.getAttributes();
String derID = sdAttritutes[0].getAttrType().getId();
int setSize = sdAttritutes[0].getAttrValues().size();
DERPrintableString printableString = (DERPrintableString)sdAttritutes[0].getAttrValues().getObjectAt(0);
String strFromDer = printableString.getString();
AuthorityKeyIdentifier authKeyID = extenParser.getAuthorityKeyIdentifier();
byte akeyID[] = null;
DERInteger sn = null;
GeneralNames certissuer = null;
String sCertIssuer = null;
if(authKeyID != null)
{
akeyID = authKeyID.getKeyIdentifier();
sn = authKeyID.getCertSerialNumber();
certissuer = authKeyID.getCertIssuer();
}
if(certissuer != null)
sCertIssuer = GeneralName.getInstance(((ASN1Sequence)certissuer.getDERObject()).getObjectAt(0)).getStringName();
SubjectKeyIdentifier subjectKeyID = extenParser.getSubjectKeyIdentifier();
byte skeyID[] = null;
if(subjectKeyID != null)
skeyID = subjectKeyID.getKeyIdentifier();
KeyUsage keyUsage = extenParser.getKeyUsage();
boolean bKeyUsage[] = null;
if(keyUsage != null)
bKeyUsage = keyUsage.getKeyUsage();
CertificatePolicies certPolicies = extenParser.getCertificatePolicies();
PolicyInformation policyInfomations[] = certPolicies.getPolicyInfomations();
PolicyQualifierInfo policyQualifierInfos[] = policyInfomations[0].getPolicyQualifiers();
String cpsUri = policyQualifierInfos[0].getCPSuri();
String organization = null;
BigInteger noticeNumbers[] = null;
String explicitText = null;
if(policyQualifierInfos.length > 1)
{
explicitText = policyQualifierInfos[1].getExplicitText();
organization = policyQualifierInfos[1].getOrganization();
noticeNumbers = policyQualifierInfos[1].getNoticeNumbers();
}
BasicConstraints bc = extenParser.getBasicConstraints();
boolean bcOfisCA = false;
BigInteger pathLen = null;
if(bc != null)
{
bcOfisCA = bc.isCA();
pathLen = bc.getPathLenConstraint();
}
PrivateKeyUsagePeriod priKeyUsagePeriod = extenParser.getPriKeyUsagePeriod();
String priKeyNotBofore = priKeyUsagePeriod.getNotBefore().getTime();
String priKeyNotAfter = priKeyUsagePeriod.getNotAfter().getTime();
ExtendedKeyUsage extendedKeyUse = extenParser.getExtendedKeyUsage();
Vector usage = null;
boolean timeStamp = false;
boolean serverAuth = false;
boolean clientAuth = false;
boolean emailProtection = false;
if(extendedKeyUse != null)
{
usage = extendedKeyUse.getKeyUsage();
timeStamp = extendedKeyUse.hasKeyPurposeId(KeyPurposeId.id_kp_timeStamping);
serverAuth = extendedKeyUse.hasKeyPurposeId(KeyPurposeId.id_kp_serverAuth);
clientAuth = extendedKeyUse.hasKeyPurposeId(KeyPurposeId.id_kp_clientAuth);
emailProtection = extendedKeyUse.hasKeyPurposeId(KeyPurposeId.id_kp_emailProtection);
}
CRLDistPoint crlDistPoint = extenParser.getCRLDistPoint();
DistributionPoint dp[] = crlDistPoint.getDistributionPoints();
GeneralNames fullName = dp[0].getFullName();
DEREncodable obj = ((ASN1Sequence)fullName.getDERObject()).getObjectAt(0);
GeneralName dname = GeneralName.getInstance(obj);
String strFullName = dname.getStringName();
ReasonFlags rfs = dp[0].getReasons();
String crlIssuerName = dp[0].getCRLIssuer().getStringName();
GeneralNames fullName1 = dp[1].getFullName();
DEREncodable obj1 = ((ASN1Sequence)fullName1.getDERObject()).getObjectAt(0);
GeneralName dname1 = GeneralName.getInstance(obj1);
String strFullName1 = dname1.getStringName();
ReasonFlags rfs1 = dp[1].getReasons();
AuthorityInformationAccess aia = extenParser.getAuthorityInfoAccess();
GeneralName accessLocation = aia.getAccessLocation();
String accessMethod = aia.getAccessMethod().getId();
GeneralNames issuerAltName = extenParser.getIssuerAltName();
GeneralName genName = GeneralName.getInstance(((ASN1Sequence)issuerAltName.getDERObject()).getObjectAt(0));
String sIssuerAltName = genName.getStringName();
PolicyMappings policyMappings = extenParser.getPolicyMappings();
ASN1Sequence seqMappings = (ASN1Sequence)policyMappings.toASN1Object();
ASN1Sequence seqID = (ASN1Sequence)seqMappings.getObjectAt(0);
DERObjectIdentifier idp = (DERObjectIdentifier)seqID.getObjectAt(0);
DERObjectIdentifier sdp = (DERObjectIdentifier)seqID.getObjectAt(1);
NameConstraints nameConstraints = extenParser.getNameConstraints();
ASN1Sequence seqPermitteds = nameConstraints.getPermittedSubtrees();
ASN1Sequence seqExcludeds = nameConstraints.getExcludedSubtrees();
ASN1Sequence seqPermitted = (ASN1Sequence)seqPermitteds.getObjectAt(0);
GeneralSubtree subPermitted = new GeneralSubtree(seqPermitted);
GeneralName base = subPermitted.getBase();
X509Name name = X509Name.getInstance(base.getName());
String strBase = name.toString();
BigInteger permittedMin = subPermitted.getMinimum();
BigInteger permittedMax = subPermitted.getMaximum();
PolicyConstraints policyConstraints = extenParser.getPolicyConstraints();
DERInteger inhibitPM = policyConstraints.getInhibitPolicyMapping();
DERInteger requireEP = policyConstraints.getRequireExplicitPolicy();
JITIdentifyCode jitIdentifyCode = extenParser.getJITIdentifyCode();
String rCardNumber = jitIdentifyCode.getResidenterCardNumber().getString();
String mCardNumber = jitIdentifyCode.getMilitaryOfficerCardNumber().getString();
String passportNumber = jitIdentifyCode.getPassportNumber().getString();
JITInsuranceNumber jitInsuranceNumber = extenParser.getJITInsuranceNumber();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -