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

📄 testprivatekeyenvelop.java

📁 进行与数字证书相关开发必须的java源码
💻 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:   TestPrivateKeyEnvelop.java

package jit.testsuit;

import java.io.*;
import jit.asn1.ASN1Sequence;
import jit.asn1.pkcs.RSAPrivateKeyStructure;
import jit.asn1.x9.X9PrivateKeyInfo;
import jit.asn1parser.Parser;
import jit.crypto.CipherParameters;
import jit.crypto.params.RSAPrivateCrtKeyParameters;
import jit.jcrypto.*;
import jit.jcrypto.param.ECCParam;
import jit.jcrypto.param.RSAParam;
import jit.jcrypto.soft.JMechanism;
import jit.util.encoders.Base64;
import jit.util.jitca.PrivateKeyEnvelop;
import junit.framework.Assert;
import junit.framework.TestCase;

public class TestPrivateKeyEnvelop extends TestCase
{

    private PrivateKeyEnvelop privateKeyEnvelop;
    private Session session;

    public TestPrivateKeyEnvelop(String name)
    {
        super(name);
        privateKeyEnvelop = null;
        session = null;
    }

    protected void setUp()
        throws Exception
    {
        super.setUp();
        JCrypto jcrypto = new JCrypto();
        jcrypto.initialize(0, null);
        session = jcrypto.openSession(0);
        privateKeyEnvelop = new PrivateKeyEnvelop(session);
    }

    protected void tearDown()
        throws Exception
    {
        privateKeyEnvelop = null;
        session = null;
        super.tearDown();
    }

    public void testGenerateEnvelop_RSA()
        throws Exception
    {
        RSAParam rsaParam = new RSAParam(512, 3);
        Mechanism genM = new JMechanism(0, rsaParam);
        JKey keyPair[] = session.generateKeyPair(genM);
        JKey usePubKey = keyPair[0];
        JKey usePrvKey = keyPair[1];
        keyPair = session.generateKeyPair(genM);
        JKey prvKey = keyPair[1];
        privateKeyEnvelop.setDeviceId(1);
        privateKeyEnvelop.setCryptoType(1);
        privateKeyEnvelop.setAlgId(289);
        privateKeyEnvelop.setEncryptPublicKey(usePubKey);
        privateKeyEnvelop.setPrivateKey(prvKey);
        byte result[] = privateKeyEnvelop.generatePrvKeyEnvelop();
        PrivateKeyEnvelop parser = new PrivateKeyEnvelop(session);
        parser.loadEnvelop(result);
        JKey test = parser.getPrivateKey(usePrvKey);
        Assert.assertNotNull(test);
    }

    public void testGenerateEnvelop_ECC_DES()
        throws Exception
    {
        ECCParam eccParam = new ECCParam(10001);
        Mechanism genM = new JMechanism(1025, eccParam);
        JKey keyPair[] = session.generateKeyPair(genM);
        JKey usePubKey = keyPair[0];
        JKey usePrvKey = keyPair[1];
        keyPair = session.generateKeyPair(genM);
        JKey prvKey = keyPair[1];
        privateKeyEnvelop.setDeviceId(1);
        privateKeyEnvelop.setCryptoType(1);
        privateKeyEnvelop.setAlgId(289);
        privateKeyEnvelop.setEncryptPublicKey(usePubKey);
        privateKeyEnvelop.setPrivateKey(prvKey);
        byte result[] = privateKeyEnvelop.generatePrvKeyEnvelop();
        PrivateKeyEnvelop parser = new PrivateKeyEnvelop(session);
        parser.loadEnvelop(result);
        JKey test = parser.getPrivateKey(usePrvKey);
        Assert.assertNotNull(test);
    }

    public void testGenerateEnvelop_ECC_DES3()
        throws Exception
    {
        ECCParam eccParam = new ECCParam(10001);
        Mechanism genM = new JMechanism(1025, eccParam);
        JKey keyPair[] = session.generateKeyPair(genM);
        JKey usePubKey = keyPair[0];
        JKey usePrvKey = keyPair[1];
        keyPair = session.generateKeyPair(genM);
        JKey prvKey = keyPair[1];
        privateKeyEnvelop.setDeviceId(1);
        privateKeyEnvelop.setCryptoType(1);
        privateKeyEnvelop.setAlgId(306);
        privateKeyEnvelop.setEncryptPublicKey(usePubKey);
        privateKeyEnvelop.setPrivateKey(prvKey);
        byte result[] = privateKeyEnvelop.generatePrvKeyEnvelop();
        PrivateKeyEnvelop parser = new PrivateKeyEnvelop(session);
        parser.loadEnvelop(result);
        JKey test = parser.getPrivateKey(usePrvKey);
        Assert.assertNotNull(test);
    }

    public void testGenerateEnvelop_ECC_RC2()
        throws Exception
    {
        ECCParam eccParam = new ECCParam(10001);
        Mechanism genM = new JMechanism(1025, eccParam);
        JKey keyPair[] = session.generateKeyPair(genM);
        JKey usePubKey = keyPair[0];
        JKey usePrvKey = keyPair[1];
        keyPair = session.generateKeyPair(genM);
        JKey prvKey = keyPair[1];
        privateKeyEnvelop.setDeviceId(1);
        privateKeyEnvelop.setCryptoType(1);
        privateKeyEnvelop.setAlgId(257);
        privateKeyEnvelop.setEncryptPublicKey(usePubKey);
        privateKeyEnvelop.setPrivateKey(prvKey);
        byte result[] = privateKeyEnvelop.generatePrvKeyEnvelop();
        PrivateKeyEnvelop parser = new PrivateKeyEnvelop(session);
        parser.loadEnvelop(result);
        JKey test = parser.getPrivateKey(usePrvKey);
        Assert.assertNotNull(test);
    }

    public void testDecodeEnvelop_RSA_C()
        throws Exception
    {
        File file = new File("c:/testData/env.txt");
        FileInputStream fin = new FileInputStream(file);
        byte envelop[] = new byte[(int)file.length()];
        fin.read(envelop);
        fin.close();
        envelop = Base64.decode(envelop);
        file = new File("c:/testData/prvKey.txt");
        fin = new FileInputStream(file);
        byte data[] = new byte[(int)file.length()];
        fin.read(data);
        data = Base64.decode(data);
        ASN1Sequence seq = (ASN1Sequence)Parser.writeBytes2DERObj(data);
        RSAPrivateKeyStructure stru = new RSAPrivateKeyStructure(seq);
        RSAPrivateCrtKeyParameters privKey = new RSAPrivateCrtKeyParameters(stru.getModulus(), stru.getPublicExponent(), stru.getPrivateExponent(), stru.getPrime1(), stru.getPrime2(), stru.getExponent1(), stru.getExponent2(), stru.getCoefficient());
        JKey decryptKey = Parser.convert2JKey(2, privKey);
        PrivateKeyEnvelop pEnvelop = new PrivateKeyEnvelop(session);
        pEnvelop.loadEnvelop(envelop);
        int deviceId = pEnvelop.getDeviceID();
        System.out.println("device id:".concat(String.valueOf(String.valueOf(deviceId))));
        int cryptoType = pEnvelop.getCryptoType();
        System.out.println("crypto type:".concat(String.valueOf(String.valueOf(cryptoType))));
        int algId = pEnvelop.getAlgID();
        System.out.println("algId:".concat(String.valueOf(String.valueOf(algId))));
        JKey myKey = pEnvelop.getPrivateKey(decryptKey);
        System.out.println("Test from CA file OK. (RSA)");
        Assert.assertNotNull(myKey);
    }

    public void testDecodeEnvelop_ECC_C()
        throws Exception
    {
        File file = new File("c:/testData/ECCPrivateKeyEnvelop.txt");
        FileInputStream fin = new FileInputStream(file);
        byte envelop[] = new byte[(int)file.length()];
        fin.read(envelop);
        fin.close();
        envelop = Base64.decode(envelop);
        file = new File("c:/testData/ECCPrivateKey.txt");
        fin = new FileInputStream(file);
        byte data[] = new byte[(int)file.length()];
        fin.read(data);
        data = Base64.decode(data);
        ASN1Sequence seq = (ASN1Sequence)Parser.writeBytes2DERObj(data);
        X9PrivateKeyInfo x9pki = new X9PrivateKeyInfo(seq);
        CipherParameters privKey = x9pki.getPrivateKey();
        JKey decryptKey = Parser.convert2JKey(1002, privKey);
        PrivateKeyEnvelop pEnvelop = new PrivateKeyEnvelop(session);
        pEnvelop.loadEnvelop(envelop);
        int deviceId = pEnvelop.getDeviceID();
        System.out.println("device id:".concat(String.valueOf(String.valueOf(deviceId))));
        int cryptoType = pEnvelop.getCryptoType();
        System.out.println("crypto type:".concat(String.valueOf(String.valueOf(cryptoType))));
        int algId = pEnvelop.getAlgID();
        System.out.println("algId:".concat(String.valueOf(String.valueOf(algId))));
        JKey myKey = pEnvelop.getPrivateKey(decryptKey);
        System.out.println("Test from CA file OK. (ECC)");
        Assert.assertNotNull(myKey);
    }
}

⌨️ 快捷键说明

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