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

📄 x509cert.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:   X509Cert.java

package jit.asn1parser.x509;

import java.io.*;
import jit.asn1.*;
import jit.asn1.pkcs.PKCSObjectIdentifiers;
import jit.asn1.x509.*;
import jit.asn1parser.Parser;
import jit.jcrypto.JKey;
import jit.jcrypto.Session;
import jit.jcrypto.soft.JMechanism;
import jit.math.BigInteger;

public class X509Cert
{

    private TBSCertificateStructure tbsCertificate;
    private AlgorithmIdentifier signatureAlg;
    private DERBitString signatureValue;
    private X509CertificateStructure x509;
    private V3TBSCertificateGenerator tbsCertGen;

    public X509Cert()
    {
        tbsCertificate = null;
        signatureAlg = null;
        signatureValue = null;
        x509 = null;
        tbsCertGen = null;
        tbsCertGen = new V3TBSCertificateGenerator();
    }

    public X509Cert(ASN1Sequence seq)
    {
        tbsCertificate = null;
        signatureAlg = null;
        signatureValue = null;
        x509 = null;
        tbsCertGen = null;
        x509 = new X509CertificateStructure(seq);
    }

    public X509Cert(X509CertificateStructure certStructure)
    {
        tbsCertificate = null;
        signatureAlg = null;
        signatureValue = null;
        x509 = null;
        tbsCertGen = null;
        x509 = certStructure;
    }

    public X509Cert(String certFileName)
        throws Exception
    {
        tbsCertificate = null;
        signatureAlg = null;
        signatureValue = null;
        x509 = null;
        tbsCertGen = null;
        try
        {
            InputStream cerFis = new FileInputStream(certFileName);
            ASN1InputStream cerAsnIn = new ASN1InputStream(cerFis);
            ASN1Sequence cerAsnSeq = (ASN1Sequence)cerAsnIn.readObject();
            x509 = new X509CertificateStructure(cerAsnSeq);
        }
        catch(Exception e)
        {
            throw new Exception("Construct x509cert Failed\n".concat(String.valueOf(String.valueOf(e.getMessage()))));
        }
    }

    public X509Cert(byte cert[])
        throws Exception
    {
        tbsCertificate = null;
        signatureAlg = null;
        signatureValue = null;
        x509 = null;
        tbsCertGen = null;
        try
        {
            ByteArrayInputStream bis = new ByteArrayInputStream(cert);
            ASN1InputStream dis = new ASN1InputStream(bis);
            ASN1Sequence seq = (ASN1Sequence)dis.readObject();
            x509 = new X509CertificateStructure(seq);
        }
        catch(Exception e)
        {
            throw new Exception("Construct x509cert Failed\n".concat(String.valueOf(String.valueOf(e.getMessage()))));
        }
    }

    public byte[] getTBSCertificate()
        throws Exception
    {
        if(x509 == null)
            throw new Exception("please call X509Cert(ASN1Sequence seq) or X509Cert(byte[] cert) or X509Cert(String certFileName)");
        byte out[] = null;
        try
        {
            out = Parser.writeDERObj2Bytes(x509.getTBSCertificate().getDERObject());
        }
        catch(Exception e)
        {
            throw new Exception("error from get TBSCertificateStructure");
        }
        return out;
    }

    public AlgorithmIdentifier getSignatureAlg()
        throws Exception
    {
        if(x509 == null)
            throw new Exception("please call X509Cert(ASN1Sequence seq) or X509Cert(byte[] cert) or X509Cert(String certFileName)");
        else
            return x509.getSignatureAlgorithm();
    }

    public byte[] getSignature()
        throws Exception
    {
        if(x509 == null)
            throw new Exception("please call X509Cert(ASN1Sequence seq) or X509Cert(byte[] cert) or X509Cert(String certFileName)");
        else
            return x509.getSignature().getBytes();
    }

    public int getVersion()
        throws Exception
    {
        if(x509 == null)
            throw new Exception("please call X509Cert(ASN1Sequence seq) or X509Cert(byte[] cert) or X509Cert(String certFileName)");
        else
            return x509.getVersion();
    }

    public BigInteger getSerialNumber()
        throws Exception
    {
        if(x509 == null)
        {
            throw new Exception("please call X509Cert(ASN1Sequence seq) or X509Cert(byte[] cert) or X509Cert(String certFileName)");
        } else
        {
            DERInteger din = x509.getSerialNumber();
            return din.getValue();
        }
    }

    public X509Name getIssuer()
        throws Exception
    {
        if(x509 == null)
            throw new Exception("please call X509Cert(ASN1Sequence seq) or X509Cert(byte[] cert) or X509Cert(String certFileName)");
        else
            return x509.getIssuer();
    }

    public Time getNotBefore()
        throws Exception
    {
        if(x509 == null)
            throw new Exception("please call X509Cert(ASN1Sequence seq) or X509Cert(byte[] cert) or X509Cert(String certFileName)");
        else
            return x509.getStartDate();
    }

    public Time getNotAfter()
        throws Exception
    {
        if(x509 == null)
            throw new Exception("please call X509Cert(ASN1Sequence seq) or X509Cert(byte[] cert) or X509Cert(String certFileName)");
        else
            return x509.getEndDate();
    }

    public X509Name getSubject()
        throws Exception
    {
        if(x509 == null)
            throw new Exception("please call X509Cert(ASN1Sequence seq) or X509Cert(byte[] cert) or X509Cert(String certFileName)");
        else
            return x509.getSubject();
    }

    public SubjectPublicKeyInfo getSubjectPublicKeyInfo()
        throws Exception
    {
        if(x509 == null)
            throw new Exception("please call X509Cert(ASN1Sequence seq) or X509Cert(byte[] cert) or X509Cert(String certFileName)");
        else
            return x509.getSubjectPublicKeyInfo();
    }

    public int getPublicKeyType()
        throws Exception
    {
        if(x509 == null)
            throw new Exception("please call X509Cert(ASN1Sequence seq) or X509Cert(byte[] cert) or X509Cert(String certFileName)");
        DERObjectIdentifier oid = x509.getSubjectPublicKeyInfo().getAlgorithmId().getObjectId();
        if(oid.equals(PKCSObjectIdentifiers.rsaEncryption))
            return 1;
        if(oid.equals(PKCSObjectIdentifiers.ecEncryption))
            return 2;
        else
            throw new Exception("unknown publicKey type: ");
    }

    public X509CertificateStructure getCertStructure()
    {
        return x509;
    }

    public X509Extensions getExtensions()
        throws Exception
    {
        if(x509 == null)
            throw new Exception("please call X509Cert(ASN1Sequence seq) or X509Cert(byte[] cert) or X509Cert(String certFileName)");
        else
            return x509.getExtensions();
    }

    public DERBitString getIssuerUniqueId()
        throws Exception
    {
        if(x509 == null)
            throw new Exception("please call X509Cert(ASN1Sequence seq) or X509Cert(byte[] cert) or X509Cert(String certFileName)");
        else
            return x509.getIssuerUniqueId();
    }

    public DERBitString getSubjectUniqueId()
        throws Exception
    {
        if(x509 == null)
            throw new Exception("please call X509Cert(ASN1Sequence seq) or X509Cert(byte[] cert) or X509Cert(String certFileName)");
        else
            return x509.getSubjectUniqueId();
    }

    public void setSerialNumber(DERInteger serialNumber)
    {
        tbsCertGen.setSerialNumber(serialNumber);
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -