⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testx509cert.java

📁 进行与数字证书相关开发必须的java源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
// 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 + -