📄 wtlscertificatetest.java
字号:
package j;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.security.KeyFactory;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.text.DateFormat;
import java.text.Format;
import java.text.SimpleDateFormat;
import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
import org.bouncycastle.asn1.x509.X509Name;
import org.bouncycastle.jce.spec.ECParameterSpec;
import org.bouncycastle.jce.spec.ECPrivateKeySpec;
import org.bouncycastle.jce.spec.ECPublicKeySpec;
import org.bouncycastle.math.ec.ECCurve;
import org.bouncycastle.util.encoders.Hex;
import java.util.Calendar;
import java.util.Date;
public class WTLScertificatetest {
public WTLSTBSCertificateGenerator tbcertge;
public static WTLSCertificateGenerator certge;
public WTLSCertificateStructure certstr;
public static WTLSCertificate cert;
public WTLSCertificateObject certob;
public WTLSTBSCertificateStructure tbcertstr;
public static PublicKey vkey;
public static PrivateKey sKey;
private static BufferedReader reader;
private static String getAnswer(){
String returnval = "";
try {
reader = new BufferedReader(new InputStreamReader(System.in));
returnval= reader.readLine();
} catch (Exception e) {}
return returnval;
}
public static void main(String[] args){
certge=new WTLSCertificateGenerator();
ECCurve curve = new ECCurve.Fp(
new BigInteger("883423532389192164791648750360308885314476597252960362792450860609699839"), // q
new BigInteger("7fffffffffffffffffffffff7fffffffffff8000000000007ffffffffffc", 16), // a
new BigInteger("6b016c3bdcf18941d0d654921475ca71a9db2fb27d1d37796185c2942c0a", 16)); // b
ECParameterSpec spec = new ECParameterSpec(
curve,
curve.decodePoint(Hex.decode("020ffa963cdca8816ccc33b8642bedf905c3d358573d3f27fbbd3b3cb9aaaf")), // G
new BigInteger("883423532389192164791648750360308884807550341691627752275345424702807307")); // n
ECPrivateKeySpec priKey = new ECPrivateKeySpec(
new BigInteger("876300101507107567501066130761671078357010671067781776716671676178726717"), // d
spec);
ECPublicKeySpec pubKey = new ECPublicKeySpec(
curve.decodePoint(Hex.decode("025b6dc53bc61a2548ffb0f671472de6c9521a9d2d2534e65abfcbd5fe0c70")), // Q
spec);
try{
KeyFactory f = KeyFactory.getInstance("ECDSA", "BC");
PrivateKey sKey = f.generatePrivate(priKey);
PublicKey vKey = f.generatePublic(pubKey);
byte[] byt=sKey.getEncoded();
for (int i=0;i<=byt.length;i++){
System.out.print(byt[i]);}
System.out.println("");
System.out.println("Publickey:"+vKey.toString());
certge.setPublicKey(vKey);
certge.setPrivateKey(sKey);
}catch(Exception e){
}
System.out.println("input X509Name IssuerDN:");
String signature="CN=ding OU=wejbca";//getAnswer();
certge.setIssuerDN(new X509Name(signature));
System.out.println("input NotAfter:");
String date="2007.10.10";//getAnswer();
DateFormat myDateFormat = new SimpleDateFormat("yyyy.mm.dd");
try{
certge.setNotAfter(myDateFormat.parse(date));
System.out.println("input NotBefore:");
date="2006.10.10";//getAnswer();
certge.setNotBefore(myDateFormat.parse(date));
}catch(Exception e){
}
System.out.println("input X509Name SubjectDN:");
signature="CN=ding OU=wejbca";//getAnswer();
certge.setSubjectDN(new X509Name(signature));
System.out.println("input OK!");
certge.setSignatureAlgorithm("ECDSAWITHSHA1");
try{
cert=certge.generateWTLSCertificate(sKey);
System.out.println(cert.toString());
}catch(Exception e){System.out.println("something wrong"+e.getMessage());}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -