📄 testpkcs8parser.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: TestPKCS8Parser.java
package jit.testsuit;
import jit.asn1.ASN1Sequence;
import jit.asn1.pkcs.pkcs8.EncryptedPrivateKeyInfo;
import jit.asn1parser.Parser;
import jit.asn1parser.pkcs.PKCS8Parser;
import jit.jcrypto.*;
import jit.jcrypto.param.ECCParam;
import jit.jcrypto.param.RSAParam;
import jit.jcrypto.soft.JMechanism;
import junit.framework.Assert;
import junit.framework.TestCase;
public class TestPKCS8Parser extends TestCase
{
private PKCS8Parser pKCS8Parser;
private Session session;
static final byte SOURCE[] = "中华人民共和国吉大正元信息技术股份有限公司加密测试".getBytes();
public TestPKCS8Parser(String name)
{
super(name);
pKCS8Parser = null;
session = null;
}
protected void setUp()
throws Exception
{
super.setUp();
pKCS8Parser = new PKCS8Parser();
JCrypto jcrypto = new JCrypto();
jcrypto.initialize(0, null);
session = jcrypto.openSession(0);
}
protected void tearDown()
throws Exception
{
pKCS8Parser = null;
session = null;
super.tearDown();
}
public void testRSA_512_EPKI()
throws Exception
{
Assert.assertTrue(rsaTest(512));
}
public void testRSA_1024_EPKI()
throws Exception
{
Assert.assertTrue(rsaTest(1024));
}
public void testECC_160_EPKI()
throws Exception
{
Assert.assertTrue(eccTest(10001));
}
public void testECC_192_EPKI()
throws Exception
{
Assert.assertTrue(eccTest(20001));
}
public void testECC_239_EPKI()
throws Exception
{
Assert.assertTrue(eccTest(30001));
}
public void testECC_256_EPKI()
throws Exception
{
Assert.assertTrue(eccTest(40001));
}
private boolean rsaTest(int keyLen)
throws Exception
{
byte password[] = "1234567".getBytes();
RSAParam rsaParam = new RSAParam(keyLen, 3);
Mechanism mechanism = new JMechanism(0, rsaParam);
JKey keys[] = session.generateKeyPair(mechanism);
JKey pubKey = keys[0];
JKey prvKey = keys[1];
EncryptedPrivateKeyInfo epki = pKCS8Parser.generateEPKI(password, prvKey);
byte epki_data[] = Parser.writeDERObj2Bytes(epki.getDERObject());
EncryptedPrivateKeyInfo my_epki = new EncryptedPrivateKeyInfo((ASN1Sequence)Parser.writeBytes2DERObj(epki_data));
JKey myPrvKey = pKCS8Parser.getPriKeyFromEPKI(1, my_epki, password);
mechanism = new JMechanism(1);
byte encryptedData[] = session.encrypt(mechanism, pubKey, SOURCE);
byte decryptedData[] = session.decrypt(mechanism, myPrvKey, encryptedData);
return isEqualArray(decryptedData, SOURCE);
}
private boolean eccTest(int curveID)
throws Exception
{
byte password[] = "12345".getBytes();
ECCParam eccParam = new ECCParam(curveID);
Mechanism mechanism = new JMechanism(1025, eccParam);
JKey keys[] = session.generateKeyPair(mechanism);
JKey pubKey = keys[0];
JKey prvKey = keys[1];
EncryptedPrivateKeyInfo epki = pKCS8Parser.generateEPKI(password, prvKey);
byte epki_data[] = Parser.writeDERObj2Bytes(epki.getDERObject());
EncryptedPrivateKeyInfo my_epki = new EncryptedPrivateKeyInfo((ASN1Sequence)Parser.writeBytes2DERObj(epki_data));
JKey myPrvKey = pKCS8Parser.getPriKeyFromEPKI(2, my_epki, password);
mechanism = new JMechanism(1026);
byte encryptedData[] = session.encrypt(mechanism, pubKey, SOURCE);
byte decryptedData[] = session.decrypt(mechanism, myPrvKey, encryptedData);
return isEqualArray(decryptedData, SOURCE);
}
private boolean isEqualArray(byte a[], byte b[])
{
if(a.length != b.length)
return false;
for(int i = 0; i < a.length; i++)
if(a[i] != b[i])
return false;
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -