📄 testpkcs10parser.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: TestPKCS10Parser.java
package jit.testsuit;
import java.io.*;
import java.util.Vector;
import jit.asn1.*;
import jit.asn1.pkcs.PKCSObjectIdentifiers;
import jit.asn1.pkcs.pkcs10.CertificationRequest;
import jit.asn1.pkcs.pkcs10.CertificationRequestInfo;
import jit.asn1.x509.*;
import jit.asn1parser.Parser;
import jit.asn1parser.pkcs.PKCS10Parser;
import jit.crypto.CipherParameters;
import jit.crypto.params.RSAKeyParameters;
import jit.jcrypto.*;
import jit.jcrypto.param.ECCParam;
import jit.jcrypto.param.RSAParam;
import jit.jcrypto.soft.JMechanism;
import jit.math.BigInteger;
import jit.util.encoders.Base64;
import junit.framework.Assert;
import junit.framework.TestCase;
public class TestPKCS10Parser extends TestCase
{
private PKCS10Parser pKCS10Parser;
private Session session;
public TestPKCS10Parser(String name)
{
super(name);
pKCS10Parser = null;
session = null;
}
protected void setUp()
throws Exception
{
super.setUp();
JCrypto jcrypto = new JCrypto();
jcrypto.initialize(0, null);
session = jcrypto.openSession(0);
pKCS10Parser = new PKCS10Parser(session);
}
protected void tearDown()
throws Exception
{
pKCS10Parser = null;
super.tearDown();
}
public void testGenerateCertRequest_RSA()
throws Exception
{
RSAParam rsaParam = new RSAParam(512, 3);
Mechanism mechanism = new JMechanism(0, rsaParam);
JKey keys[] = session.generateKeyPair(mechanism);
JKey pubKey = keys[0];
JKey prvKey = keys[1];
SubjectPublicKeyInfo spki = pKCS10Parser.generateSPKI(pubKey);
X509Name subject = new X509Name("c=cn,o=jit");
CertificationRequestInfo cri = pKCS10Parser.generateCertRequestInfo(subject, spki, null);
byte data[] = Parser.writeDERObj2Bytes(cri.getDERObject());
DERBitString signature_sha1 = pKCS10Parser.generateSignature(data, prvKey, PKCSObjectIdentifiers.sha1WithRSAEncryption);
AlgorithmIdentifier algID = new AlgorithmIdentifier(PKCSObjectIdentifiers.sha1WithRSAEncryption);
CertificationRequest certRequest = pKCS10Parser.generateCertRequest(cri, algID, signature_sha1);
Vector vector = pKCS10Parser.getCertRequestContent(certRequest);
X509Name n = (X509Name)vector.get(0);
SubjectPublicKeyInfo subPKI = (SubjectPublicKeyInfo)vector.get(1);
JKey my_pubKey = pKCS10Parser.getPubKeyFromSPKI(subPKI);
ASN1Set a = (ASN1Set)vector.get(2);
System.out.println(n.toString());
Assert.assertNotNull(n);
Assert.assertTrue(isEqualRSAPubKey(pubKey, my_pubKey));
DERBitString signature_md2 = pKCS10Parser.generateSignature(data, prvKey, PKCSObjectIdentifiers.md2WithRSAEncryption);
certRequest = pKCS10Parser.generateCertRequest(cri, new AlgorithmIdentifier(PKCSObjectIdentifiers.md2WithRSAEncryption), signature_md2);
vector = pKCS10Parser.getCertRequestContent(certRequest);
n = (X509Name)vector.get(0);
subPKI = (SubjectPublicKeyInfo)vector.get(1);
my_pubKey = pKCS10Parser.getPubKeyFromSPKI(subPKI);
Assert.assertNotNull(n);
Assert.assertTrue(isEqualRSAPubKey(pubKey, my_pubKey));
DERBitString signature_md5 = pKCS10Parser.generateSignature(data, prvKey, PKCSObjectIdentifiers.md5WithRSAEncryption);
certRequest = pKCS10Parser.generateCertRequest(cri, new AlgorithmIdentifier(PKCSObjectIdentifiers.md5WithRSAEncryption), signature_md5);
vector = pKCS10Parser.getCertRequestContent(certRequest);
n = (X509Name)vector.get(0);
subPKI = (SubjectPublicKeyInfo)vector.get(1);
my_pubKey = pKCS10Parser.getPubKeyFromSPKI(subPKI);
Assert.assertNotNull(n);
Assert.assertTrue(isEqualRSAPubKey(pubKey, my_pubKey));
}
public void testGenerateCertRequest_ECC()
throws Exception
{
ECCParam eccParam = new ECCParam(10001);
Mechanism mechanism = new JMechanism(1025, eccParam);
JKey keys[] = session.generateKeyPair(mechanism);
JKey pubKey = keys[0];
JKey prvKey = keys[1];
SubjectPublicKeyInfo spki = pKCS10Parser.generateSPKI(pubKey);
X509Name subject = new X509Name("c=cn,o=jit");
CertificationRequestInfo cri = pKCS10Parser.generateCertRequestInfo(subject, spki, null);
byte data[] = Parser.writeDERObj2Bytes(cri.getDERObject());
DERBitString signature_sha1 = pKCS10Parser.generateSignature(data, prvKey, PKCSObjectIdentifiers.sha1WithECEncryption);
AlgorithmIdentifier algID = new AlgorithmIdentifier(PKCSObjectIdentifiers.sha1WithECEncryption);
CertificationRequest certRequest = pKCS10Parser.generateCertRequest(cri, algID, signature_sha1);
Vector vector = pKCS10Parser.getCertRequestContent(certRequest);
X509Name n = (X509Name)vector.get(0);
SubjectPublicKeyInfo subPKI = (SubjectPublicKeyInfo)vector.get(1);
JKey my_pubKey = pKCS10Parser.getPubKeyFromSPKI(subPKI);
ASN1Set a = (ASN1Set)vector.get(2);
System.out.println(n.toString());
Assert.assertNotNull(n);
Assert.assertNotNull(my_pubKey);
}
public void testFromCAFile_RSA()
throws Exception
{
FileInputStream fin = new FileInputStream("c:/testData/rsacertr.txt");
byte data[] = new byte[fin.available()];
fin.read(data);
fin.close();
data = Base64.decode(data);
ByteArrayInputStream bis = new ByteArrayInputStream(data);
ASN1InputStream ais = new ASN1InputStream(bis);
ASN1Sequence seq = (ASN1Sequence)ais.readObject();
CertificationRequest certRequest = new CertificationRequest(seq);
Vector vector = pKCS10Parser.getCertRequestContent(certRequest);
X509Name n = (X509Name)vector.get(0);
SubjectPublicKeyInfo subPKI = (SubjectPublicKeyInfo)vector.get(1);
JKey my_pubKey = pKCS10Parser.getPubKeyFromSPKI(subPKI);
ASN1Set a = (ASN1Set)vector.get(2);
System.out.println(n);
Assert.assertNotNull(n);
Assert.assertNotNull(my_pubKey);
}
public void testFromCAFile_ECC()
throws Exception
{
FileInputStream fin = new FileInputStream("c:/testData/ecccertr.txt");
byte data[] = new byte[fin.available()];
fin.read(data);
fin.close();
data = Base64.decode(data);
ByteArrayInputStream bis = new ByteArrayInputStream(data);
ASN1InputStream ais = new ASN1InputStream(bis);
ASN1Sequence seq = (ASN1Sequence)ais.readObject();
CertificationRequest certRequest = new CertificationRequest(seq);
Vector vector = pKCS10Parser.getCertRequestContent(certRequest);
X509Name n = (X509Name)vector.get(0);
SubjectPublicKeyInfo subPKI = (SubjectPublicKeyInfo)vector.get(1);
JKey my_pubKey = pKCS10Parser.getPubKeyFromSPKI(subPKI);
ASN1Set a = (ASN1Set)vector.get(2);
System.out.println(n);
Assert.assertNotNull(n);
Assert.assertNotNull(my_pubKey);
}
private boolean isEqualRSAPubKey(JKey jkey1, JKey jkey2)
throws Exception
{
CipherParameters key1 = Parser.conver2CipherParam(jkey1);
CipherParameters key2 = Parser.conver2CipherParam(jkey2);
if(!(key1 instanceof RSAKeyParameters) || !(key2 instanceof RSAKeyParameters))
return false;
BigInteger m1 = ((RSAKeyParameters)key1).getModulus();
BigInteger e1 = ((RSAKeyParameters)key1).getExponent();
BigInteger m2 = ((RSAKeyParameters)key2).getModulus();
BigInteger e2 = ((RSAKeyParameters)key2).getExponent();
if(!m1.equals(m2) || !e1.equals(e2))
{
System.out.println("RSA Public Key test failtrue.");
return false;
} else
{
return true;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -