/* * GenCertificate.java * * Created on 2004年2月19日, 上午10:15 */ //package GenCertificate; /** * * @author Administrator */ import org.bouncycastle.jce.provider.BouncyCastleProvider; import java.security.*; import java.security.interfaces.*; import org.bouncycastle.asn1.x509.*; import javax.security.cert.*; import org.bouncycastle.jce.*; import java.math.BigInteger; import java.util.*; import java.io.*; import javax.swing.JDialog; import java.security.cert.CertificateFactory; public class GenCertificate extends javax.swing.JFrame { /** Creates new form GenCertificate */ public GenCertificate() { initComponents(); this.setSize(600,500); addProvider(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private void initComponents() {//GEN-BEGIN:initComponents mainJTP = new javax.swing.JTabbedPane(); rootCertJP = new javax.swing.JPanel(); resultSaveJP = new javax.swing.JPanel(); saveJP = new javax.swing.JPanel(); filePathLabel = new javax.swing.JLabel(); file_PathJTF = new javax.swing.JTextField(); chooseFileJB = new javax.swing.JButton(); rootPWDJP = new javax.swing.JPanel(); rootpasswordLabel = new javax.swing.JLabel(); rootPWDJPF = new javax.swing.JPasswordField(); rootOperatorJP = new javax.swing.JPanel(); genRootCertJB = new javax.swing.JButton(); saveJB = new javax.swing.JButton(); mainJP = new javax.swing.JPanel(); rootCertInputInfoJP = new javax.swing.JPanel(); rootSNJP = new javax.swing.JPanel(); rootSNLabel = new javax.swing.JLabel(); rootSNJTF = new javax.swing.JTextField(); rootDateJP = new javax.swing.JPanel(); rootDateLabel = new javax.swing.JLabel(); rootDateJTF = new javax.swing.JTextField(); rootIssuerJP = new javax.swing.JPanel(); rootIssuerLabel = new javax.swing.JLabel(); rootCJP = new javax.swing.JPanel(); rootCLabel = new javax.swing.JLabel(); rootCJTF = new javax.swing.JTextField(); rootSJP = new javax.swing.JPanel(); rootSLabel = new javax.swing.JLabel(); rootSJTF = new javax.swing.JTextField(); rootCityJP = new javax.swing.JPanel(); rootCityLabel = new javax.swing.JLabel(); rootCityJTF = new javax.swing.JTextField(); rootOJP = new javax.swing.JPanel(); rootOLabel = new javax.swing.JLabel(); rootOJTF = new javax.swing.JTextField(); rootOUJP = new javax.swing.JPanel(); rootOULabel = new javax.swing.JLabel(); rootOUJTF = new javax.swing.JTextField(); rootSubjectJP = new javax.swing.JPanel(); rootSubjectLabel = new javax.swing.JLabel(); rootSubjectJTF = new javax.swing.JTextField(); rootCertInfoJSP = new javax.swing.JScrollPane(); rootCertInfo = new javax.swing.JTextArea(); headJP = new javax.swing.JPanel(); jPanel10 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jPanel11 = new javax.swing.JPanel(); jLabel2 = new javax.swing.JLabel(); userCertJP = new javax.swing.JPanel(); userResultSaveJP = new javax.swing.JPanel(); jPanel5 = new javax.swing.JPanel(); userCertSaveLabel = new javax.swing.JLabel(); userCertSavePathJTF = new javax.swing.JTextField(); jButton1 = new javax.swing.JButton(); jPanel8 = new javax.swing.JPanel(); userCertPWDLabel = new javax.swing.JLabel(); userCertJPF = new javax.swing.JPasswordField(); jPanel9 = new javax.swing.JPanel(); initSignCertJB = new javax.swing.JButton(); genUserCertJB = new javax.swing.JButton(); saveUserCertJB = new javax.swing.JButton(); userHeadJP = new javax.swing.JPanel(); jPanel2 = new javax.swing.JPanel(); jLabel3 = new javax.swing.JLabel(); jPanel3 = new javax.swing.JPanel(); jLabel4 = new javax.swing.JLabel(); userMainJP = new javax.swing.JPanel(); jPanel4 = new javax.swing.JPanel(); jPanel12 = new javax.swing.JPanel(); userSNLabel = new javax.swing.JLabel(); userSNJTF = new javax.swing.JTextField(); jPanel13 = new javax.swing.JPanel(); userDateLabel = new javax.swing.JLabel(); userDateJTF = new javax.swing.JTextField(); jPanel15 = new javax.swing.JPanel(); emailLabel = new javax.swing.JLabel(); userEmailJTF = new javax.swing.JTextField(); jPanel16 = new javax.swing.JPanel(); rootIssuerJP1 = new javax.swing.JPanel(); rootIssuerLabel1 = new javax.swing.JLabel(); jPanel17 = new javax.swing.JPanel(); userCLabel = new javax.swing.JLabel(); userCJTF = new javax.swing.JTextField(); jPanel18 = new javax.swing.JPanel(); userSLabel = new javax.swing.JLabel(); userSJTF = new javax.swing.JTextField(); jPanel19 = new javax.swing.JPanel(); userCityLabel = new javax.swing.JLabel(); userCityJTF = new javax.swing.JTextField(); jPanel20 = new javax.swing.JPanel(); userOLabel = new javax.swing.JLabel(); userOJTF = new javax.swing.JTextField(); jPanel21 = new javax.swing.JPanel(); userOULabel = new javax.swing.JLabel(); userOUJTF = new javax.swing.JTextField(); jPanel14 = new javax.swing.JPanel(); userSubjectLabel = new javax.swing.JLabel(); userSubjectJTF = new javax.swing.JTextField(); jScrollPane1 = new javax.swing.JScrollPane(); userCertInfo = new javax.swing.JTextArea(); providerInfoJSP = new javax.swing.JScrollPane(); providerJTP = new javax.swing.JTextPane(); test = new javax.swing.JPanel(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); setTitle("\u6570\u5b57\u8bc1\u4e66\u4ea7\u751f\u7a0b\u5e8f"); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { exitForm(evt); } }); mainJTP.setFont(new java.awt.Font("宋体", 0, 14)); rootCertJP.setLayout(new java.awt.BorderLayout()); resultSaveJP.setLayout(new java.awt.GridLayout(3, 0)); saveJP.setLayout(new javax.swing.BoxLayout(saveJP, javax.swing.BoxLayout.X_AXIS)); filePathLabel.setFont(new java.awt.Font("Dialog", 0, 14)); filePathLabel.setText("\u8bc1\u4e66\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84\u53ca\u540d\u79f0\uff1a"); saveJP.add(filePathLabel); file_PathJTF.setFont(new java.awt.Font("Dialog", 0, 14)); file_PathJTF.setText(System.getProperty("user.home")+System.getProperty("file.separator")+"rootCert.p12"); saveJP.add(file_PathJTF); chooseFileJB.setFont(new java.awt.Font("Dialog", 1, 14)); chooseFileJB.setText("..."); saveJP.add(chooseFileJB); resultSaveJP.add(saveJP); rootPWDJP.setLayout(new javax.swing.BoxLayout(rootPWDJP, javax.swing.BoxLayout.X_AXIS)); rootpasswordLabel.setFont(new java.awt.Font("Dialog", 0, 14)); rootpasswordLabel.setText("\u8bc1\u4e66\u53ca\u5bc6\u94a5\u6587\u4ef6\u6253\u5f00\u5bc6\u7801\uff1a"); rootPWDJP.add(rootpasswordLabel); rootPWDJP.add(rootPWDJPF); resultSaveJP.add(rootPWDJP); genRootCertJB.setFont(new java.awt.Font("宋体", 0, 14)); genRootCertJB.setText("\u4ea7\u751f"); genRootCertJB.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { genRootCertJBActionPerformed(evt); } }); rootOperatorJP.add(genRootCertJB); saveJB.setFont(new java.awt.Font("宋体", 0, 14)); saveJB.setText("\u4fdd\u5b58"); saveJB.setEnabled(false); saveJB.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { saveJBActionPerformed(evt); } }); rootOperatorJP.add(saveJB); resultSaveJP.add(rootOperatorJP); rootCertJP.add(resultSaveJP, java.awt.BorderLayout.SOUTH); mainJP.setLayout(new java.awt.GridLayout(1, 0)); rootCertInputInfoJP.setLayout(new java.awt.GridLayout(10, 0)); rootSNJP.setLayout(new javax.swing.BoxLayout(rootSNJP, javax.swing.BoxLayout.X_AXIS)); rootSNLabel.setFont(new java.awt.Font("宋体", 0, 14)); rootSNLabel.setText("\u5e8f\u5217\u53f7\u7801\uff1a"); rootSNJP.add(rootSNLabel); rootSNJTF.setFont(new java.awt.Font("Dialog", 0, 14)); rootSNJTF.setText("1"); rootSNJP.add(rootSNJTF); rootCertInputInfoJP.add(rootSNJP); rootDateJP.setLayout(new javax.swing.BoxLayout(rootDateJP, javax.swing.BoxLayout.X_AXIS)); rootDateLabel.setFont(new java.awt.Font("宋体", 0, 14)); rootDateLabel.setText("\u6709\u6548\u5929\u6570\uff1a"); rootDateJP.add(rootDateLabel); rootDateJTF.setFont(new java.awt.Font("Dialog", 0, 14)); rootDateJTF.setText("\u8bf7\u8f93\u5165\u5929\u6570"); rootDateJTF.addFocusListener(new java.awt.event.FocusAdapter() { public void focusGained(java.awt.event.FocusEvent evt) { rootDateJTFFocusGained(evt); } }); rootDateJP.add(rootDateJTF); rootCertInputInfoJP.add(rootDateJP); rootIssuerJP.setLayout(new javax.swing.BoxLayout(rootIssuerJP, javax.swing.BoxLayout.X_AXIS)); rootIssuerLabel.setFont(new java.awt.Font("隶书", 1, 18)); rootIssuerLabel.setText("\u4e3b\u4f53\u540d\u79f0"); rootIssuerJP.add(rootIssuerLabel); rootCertInputInfoJP.add(rootIssuerJP); rootCJP.setLayout(new javax.swing.BoxLayout(rootCJP, javax.swing.BoxLayout.X_AXIS)); rootCLabel.setFont(new java.awt.Font("宋体", 0, 14)); rootCLabel.setText("\u3000\u3000\u56fd\u522b\uff1a"); rootCJP.add(rootCLabel); rootCJTF.setFont(new java.awt.Font("Dialog", 0, 14)); rootCJTF.setText("\u4e2d\u56fd"); rootCJTF.setToolTipText("\u586b\u51992\u4e2a\u5b57\u7b26\u7684\u56fd\u5bb6\u4ee3\u7801"); rootCJP.add(rootCJTF); rootCertInputInfoJP.add(rootCJP); rootSJP.setLayout(new javax.swing.BoxLayout(rootSJP, javax.swing.BoxLayout.X_AXIS)); rootSLabel.setFont(new java.awt.Font("宋体", 0, 14)); rootSLabel.setText("\u3000\u3000\u7701\u522b\uff1a"); rootSJP.add(rootSLabel); rootSJTF.setFont(new java.awt.Font("Dialog", 0, 14)); rootSJTF.setText("\u5e7f\u4e1c\u7701"); rootSJP.add(rootSJTF); rootCertInputInfoJP.add(rootSJP); rootCityJP.setLayout(new javax.swing.BoxLayout(rootCityJP, javax.swing.BoxLayout.X_AXIS)); rootCityLabel.setFont(new java.awt.Font("宋体", 0, 14)); rootCityLabel.setText("\u3000\u3000\u5e02\u522b\uff1a"); rootCityJP.add(rootCityLabel); rootCityJTF.setFont(new java.awt.Font("Dialog", 0, 14)); rootCityJTF.setText("\u5e7f\u5dde\u5e02"); rootCityJP.add(rootCityJTF); rootCertInputInfoJP.add(rootCityJP); rootOJP.setLayout(new javax.swing.BoxLayout(rootOJP, javax.swing.BoxLayout.X_AXIS)); rootOLabel.setFont(new java.awt.Font("宋体", 0, 14)); rootOLabel.setText("\u3000\u3000\u7ec4\u7ec7\uff1a"); rootOJP.add(rootOLabel); rootOJTF.setFont(new java.awt.Font("Dialog", 0, 14)); rootOJP.add(rootOJTF); rootCertInputInfoJP.add(rootOJP); rootOUJP.setLayout(new javax.swing.BoxLayout(rootOUJP, javax.swing.BoxLayout.X_AXIS)); rootOULabel.setFont(new java.awt.Font("宋体", 0, 14)); rootOULabel.setText("\u3000\u3000\u5355\u4f4d\uff1a"); rootOUJP.add(rootOULabel); rootOUJTF.setFont(new java.awt.Font("Dialog", 0, 14)); rootOUJTF.setText("\u4f60\u7684\u7ec4\u7ec7\u5355\u4f4d\u540d"); rootOUJP.add(rootOUJTF); rootCertInputInfoJP.add(rootOUJP); rootSubjectJP.setLayout(new javax.swing.BoxLayout(rootSubjectJP, javax.swing.BoxLayout.X_AXIS)); rootSubjectLabel.setFont(new java.awt.Font("宋体", 0, 14)); rootSubjectLabel.setText("\u3000\u3000\u5b9e\u4f53\uff1a"); rootSubjectJP.add(rootSubjectLabel); rootSubjectJTF.setFont(new java.awt.Font("Dialog", 0, 14)); rootSubjectJTF.setText("\u5b9e\u4f53\u540d\u79f0"); rootSubjectJP.add(rootSubjectJTF); rootCertInputInfoJP.add(rootSubjectJP); mainJP.add(rootCertInputInfoJP); rootCertInfo.setFont(new java.awt.Font("Dialog", 0, 14)); rootCertInfoJSP.setViewportView(rootCertInfo); mainJP.add(rootCertInfoJSP); rootCertJP.add(mainJP, java.awt.BorderLayout.CENTER); headJP.setLayout(new java.awt.GridLayout(1, 0)); jLabel1.setFont(new java.awt.Font("宋体", 0, 14)); jLabel1.setText("\u8f93\u5165\u6839\u8bc1\u4e66\u5b57\u6bb5\u4fe1\u606f"); jPanel10.add(jLabel1); headJP.add(jPanel10); jLabel2.setFont(new java.awt.Font("宋体", 0, 14)); jLabel2.setText("\u6839\u8bc1\u4e66\u4fe1\u606f"); jPanel11.add(jLabel2); headJP.add(jPanel11); rootCertJP.add(headJP, java.awt.BorderLayout.NORTH); mainJTP.addTab("\u751f\u6210\u6839\u8bc1\u4e66", rootCertJP); userCertJP.setLayout(new java.awt.BorderLayout()); userResultSaveJP.setLayout(new java.awt.GridLayout(3, 0)); jPanel5.setLayout(new javax.swing.BoxLayout(jPanel5, javax.swing.BoxLayout.X_AXIS)); userCertSaveLabel.setFont(new java.awt.Font("宋体", 0, 14)); userCertSaveLabel.setText("\u8bc1\u4e66\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84\u53ca\u540d\u79f0\uff1a"); jPanel5.add(userCertSaveLabel); userCertSavePathJTF.setFont(new java.awt.Font("Dialog", 0, 14)); userCertSavePathJTF.setText(System.getProperty("user.home")+System.getProperty("file.separator")+"userCert.p12"); jPanel5.add(userCertSavePathJTF); jButton1.setFont(new java.awt.Font("宋体", 1, 14)); jButton1.setText("..."); jPanel5.add(jButton1); userResultSaveJP.add(jPanel5); jPanel8.setLayout(new javax.swing.BoxLayout(jPanel8, javax.swing.BoxLayout.X_AXIS)); userCertPWDLabel.setFont(new java.awt.Font("宋体", 0, 14)); userCertPWDLabel.setText("\u8bc1\u4e66\u53ca\u5bc6\u94a5\u6587\u4ef6\u6253\u5f00\u5bc6\u7801\uff1a"); jPanel8.add(userCertPWDLabel); jPanel8.add(userCertJPF); userResultSaveJP.add(jPanel8); initSignCertJB.setFont(new java.awt.Font("宋体", 0, 14)); initSignCertJB.setText("\u521d\u59cb\u5316\u7b7e\u540d\u8bc1\u4e66"); initSignCertJB.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { initSignCertJBActionPerformed(evt); } }); jPanel9.add(initSignCertJB); genUserCertJB.setFont(new java.awt.Font("宋体", 0, 14)); genUserCertJB.setText("\u4ea7\u751f\u5b9e\u4f53\u8bc1\u4e66"); genUserCertJB.setEnabled(false); genUserCertJB.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { genUserCertJBActionPerformed(evt); } }); jPanel9.add(genUserCertJB); saveUserCertJB.setFont(new java.awt.Font("Dialog", 0, 14)); saveUserCertJB.setText("\u4fdd\u5b58"); saveUserCertJB.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { saveUserCertJBActionPerformed(evt); } }); jPanel9.add(saveUserCertJB); userResultSaveJP.add(jPanel9); userCertJP.add(userResultSaveJP, java.awt.BorderLayout.SOUTH); userHeadJP.setLayout(new java.awt.GridLayout(1, 0)); jLabel3.setFont(new java.awt.Font("宋体", 0, 14)); jLabel3.setText("\u8f93\u5165\u7528\u6237\u8bc1\u4e66\u5b57\u6bb5\u4fe1\u606f"); jPanel2.add(jLabel3); userHeadJP.add(jPanel2); jLabel4.setFont(new java.awt.Font("宋体", 0, 14)); jLabel4.setText("\u7528\u6237\u8bc1\u4e66\u4fe1\u606f"); jPanel3.add(jLabel4); userHeadJP.add(jPanel3); userCertJP.add(userHeadJP, java.awt.BorderLayout.NORTH); userMainJP.setLayout(new java.awt.GridLayout(1, 0)); jPanel4.setLayout(new java.awt.GridLayout(10, 0)); jPanel12.setLayout(new javax.swing.BoxLayout(jPanel12, javax.swing.BoxLayout.X_AXIS)); userSNLabel.setFont(new java.awt.Font("宋体", 0, 14)); userSNLabel.setText("\u5e8f\u5217\u53f7\u7801\uff1a"); jPanel12.add(userSNLabel); userSNJTF.setFont(new java.awt.Font("Dialog", 0, 14)); userSNJTF.setText("2"); jPanel12.add(userSNJTF); jPanel4.add(jPanel12); jPanel13.setLayout(new javax.swing.BoxLayout(jPanel13, javax.swing.BoxLayout.X_AXIS)); userDateLabel.setFont(new java.awt.Font("宋体", 0, 14)); userDateLabel.setText("\u6709\u6548\u5929\u6570\uff1a"); jPanel13.add(userDateLabel); userDateJTF.setFont(new java.awt.Font("Dialog", 0, 14)); userDateJTF.setText("\u8bf7\u8f93\u5165\u5929\u6570"); userDateJTF.addFocusListener(new java.awt.event.FocusAdapter() { public void focusGained(java.awt.event.FocusEvent evt) { userDateJTFFocusGained(evt); } }); jPanel13.add(userDateJTF); jPanel4.add(jPanel13); jPanel15.setLayout(new javax.swing.BoxLayout(jPanel15, javax.swing.BoxLayout.X_AXIS)); emailLabel.setFont(new java.awt.Font("Dialog", 0, 14)); emailLabel.setText("\u7535\u5b50\u90ae\u4ef6\uff1a"); jPanel15.add(emailLabel); jPanel15.add(userEmailJTF); jPanel4.add(jPanel15); jPanel16.setLayout(new javax.swing.BoxLayout(jPanel16, javax.swing.BoxLayout.X_AXIS)); rootIssuerJP1.setLayout(new javax.swing.BoxLayout(rootIssuerJP1, javax.swing.BoxLayout.X_AXIS)); rootIssuerLabel1.setFont(new java.awt.Font("隶书", 1, 18)); rootIssuerLabel1.setText("\u4e3b\u4f53\u540d\u79f0"); rootIssuerJP1.add(rootIssuerLabel1); jPanel16.add(rootIssuerJP1); jPanel4.add(jPanel16); jPanel17.setLayout(new javax.swing.BoxLayout(jPanel17, javax.swing.BoxLayout.X_AXIS)); userCLabel.setFont(new java.awt.Font("宋体", 0, 14)); userCLabel.setText("\u3000\u3000\u56fd\u522b\uff1a"); jPanel17.add(userCLabel); userCJTF.setFont(new java.awt.Font("Dialog", 0, 14)); userCJTF.setText("\u4e2d\u56fd"); userCJTF.setToolTipText("\u586b\u51992\u4e2a\u5b57\u7b26\u7684\u56fd\u5bb6\u4ee3\u7801"); jPanel17.add(userCJTF); jPanel4.add(jPanel17); jPanel18.setLayout(new javax.swing.BoxLayout(jPanel18, javax.swing.BoxLayout.X_AXIS)); userSLabel.setFont(new java.awt.Font("宋体", 0, 14)); userSLabel.setText("\u3000\u3000\u7701\u522b\uff1a"); jPanel18.add(userSLabel); userSJTF.setFont(new java.awt.Font("Dialog", 0, 14)); userSJTF.setText("\u5e7f\u4e1c\u7701"); jPanel18.add(userSJTF); jPanel4.add(jPanel18); jPanel19.setLayout(new javax.swing.BoxLayout(jPanel19, javax.swing.BoxLayout.X_AXIS)); userCityLabel.setFont(new java.awt.Font("宋体", 0, 14)); userCityLabel.setText("\u3000\u3000\u5e02\u522b\uff1a"); jPanel19.add(userCityLabel); userCityJTF.setFont(new java.awt.Font("Dialog", 0, 14)); userCityJTF.setText("\u5e7f\u5dde\u5e02"); jPanel19.add(userCityJTF); jPanel4.add(jPanel19); jPanel20.setLayout(new javax.swing.BoxLayout(jPanel20, javax.swing.BoxLayout.X_AXIS)); userOLabel.setFont(new java.awt.Font("宋体", 0, 14)); userOLabel.setText("\u3000\u3000\u7ec4\u7ec7\uff1a"); jPanel20.add(userOLabel); userOJTF.setFont(new java.awt.Font("Dialog", 0, 14)); jPanel20.add(userOJTF); jPanel4.add(jPanel20); jPanel21.setLayout(new javax.swing.BoxLayout(jPanel21, javax.swing.BoxLayout.X_AXIS)); userOULabel.setFont(new java.awt.Font("宋体", 0, 14)); userOULabel.setText("\u3000\u3000\u5355\u4f4d\uff1a"); jPanel21.add(userOULabel); userOUJTF.setFont(new java.awt.Font("Dialog", 0, 14)); userOUJTF.setText("\u4f60\u7684\u7ec4\u7ec7\u5355\u4f4d\u540d"); jPanel21.add(userOUJTF); jPanel4.add(jPanel21); jPanel14.setLayout(new javax.swing.BoxLayout(jPanel14, javax.swing.BoxLayout.X_AXIS)); userSubjectLabel.setFont(new java.awt.Font("宋体", 0, 14)); userSubjectLabel.setText("\u3000\u3000\u5b9e\u4f53\uff1a"); jPanel14.add(userSubjectLabel); userSubjectJTF.setFont(new java.awt.Font("Dialog", 0, 14)); userSubjectJTF.setText("\u5b9e\u4f53\u540d\u79f0"); jPanel14.add(userSubjectJTF); jPanel4.add(jPanel14); userMainJP.add(jPanel4); userCertInfo.setFont(new java.awt.Font("Dialog", 0, 14)); jScrollPane1.setViewportView(userCertInfo); userMainJP.add(jScrollPane1); userCertJP.add(userMainJP, java.awt.BorderLayout.CENTER); mainJTP.addTab("\u751f\u6210\u5b9e\u4f53\u8bc1\u4e66", userCertJP); providerInfoJSP.addFocusListener(new java.awt.event.FocusAdapter() { public void focusGained(java.awt.event.FocusEvent evt) { providerInfoJSPFocusGained(evt); } }); providerInfoJSP.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { providerInfoJSPMouseClicked(evt); } }); providerInfoJSP.setViewportView(providerJTP); mainJTP.addTab("\u5b89\u5168\u63d0\u4f9b\u5668\u5217\u8868", providerInfoJSP); jButton2.setFont(new java.awt.Font("宋体", 0, 14)); jButton2.setText("test"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); test.add(jButton2); jButton3.setFont(new java.awt.Font("宋体", 0, 14)); jButton3.setText("\u663e\u793a\u8bc1\u4e66"); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); test.add(jButton3); mainJTP.addTab("\u5e2e\u52a9", test); getContentPane().add(mainJTP, java.awt.BorderLayout.CENTER); pack(); }//GEN-END:initComponents private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed try{ FileInputStream fis = new FileInputStream("c:\\projects\\cert.cer"); BufferedInputStream bis = new BufferedInputStream(fis); CertificateFactory cf = CertificateFactory.getInstance("X.509"); while (bis.available() > 0) { java.security.cert.Certificate cert = cf.generateCertificate(bis); java.security.cert.X509Certificate xcert=(java.security.cert.X509Certificate)cert; displayCert(xcert,rootCertInfo); System.out.println(cert.toString()); } }catch(IOException e1) { }catch(java.security.cert.CertificateException e2) { } }//GEN-LAST:event_jButton3ActionPerformed private void userDateJTFFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_userDateJTFFocusGained //请在此处增加您的处理代码: userDateJTF.setText(""); }//GEN-LAST:event_userDateJTFFocusGained private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed try{ org.ietf.jgss.Oid oid=new org.ietf.jgss.Oid("2.5.29.15"); System.out.println(oid.toString()); }catch(org.ietf.jgss.GSSException e1) { System.out.println(e1.toString()); } //javax.security.auth. }//GEN-LAST:event_jButton2ActionPerformed private void saveUserCertJBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveUserCertJBActionPerformed //请在此处增加您的处理代码: try{ FileOutputStream fio=new FileOutputStream(userCertSavePathJTF.getText()); KeyStore ks=KeyStore.getInstance("PKCS12","BC"); ks.load(null,null); ks.setCertificateEntry("user",userCert); java.security.cert.X509Certificate certChain[]=/*{rootCert,*/ {userCert}; ks.setKeyEntry("user",userRSAPrivKey,userCertJPF.getPassword(),certChain); ks.store(fio,userCertJPF.getPassword()); fio.flush(); fio.close(); }catch(IOException e1) { System.out.println(e1.toString()); }catch(KeyStoreException e2) { System.out.println(e2.toString()); }catch(NoSuchAlgorithmException e3) { System.out.println(e3.toString()); }catch(java.security.cert.CertificateException e4) { System.out.println(e4.toString()); }catch(NoSuchProviderException e5) { } }//GEN-LAST:event_saveUserCertJBActionPerformed private void genUserCertJBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_genUserCertJBActionPerformed //请在此处增加您的处理代码: X509V3CertificateGenerator x3certgen=new X509V3CertificateGenerator(); x3certgen.setSignatureAlgorithm("SHA1withRSA"); //setting of SN x3certgen.setSerialNumber(new BigInteger(userSNJTF.getText().trim())); //setting of subject DN String dnstr=""; if(userCJTF.getText().trim()!="") dnstr+=("C="+userCJTF.getText()+","); if(userSJTF.getText().trim()!="") dnstr+=("ST="+userSJTF.getText()+","); if(userCityJTF.getText().trim()!="") dnstr+=("L="+userCityJTF.getText()+","); if(userOJTF.getText().trim()!="") dnstr+=("O="+userOJTF.getText()+","); if(userOUJTF.getText().trim()!="") dnstr+=("OU="+userOUJTF.getText()+","); if(userSubjectJTF.getText().trim()!="") dnstr+=("CN="+userSubjectJTF.getText()+","); if(userEmailJTF.getText().trim()!="") dnstr+=("E="+userEmailJTF.getText());//setting of email address X509Name x509dn=new X509Name(dnstr); //setting of issuer dn //System.out.println(rootCert.getSubjectDN().toString()); //System.out.println(rootCert.getIssuerDN().toString()); x3certgen.setIssuerDN(new X509Name(rootCert.getSubjectDN().toString())); //self signature certificate x3certgen.setSubjectDN(x509dn); //System.out.println(x509dn.toString()); //setting of date Long addnum=new Long(userDateJTF.getText()); x3certgen.setNotBefore(new Date(System.currentTimeMillis())); x3certgen.setNotAfter(new Date(System.currentTimeMillis()+addnum.longValue()*24*3600*1000)); int keyusage=X509KeyUsage.digitalSignature; X509KeyUsage x509KU=new X509KeyUsage(keyusage); x3certgen.addExtension("2.5.29.15",true,x509KU); try{ KeyPairGenerator kpgen=KeyPairGenerator.getInstance("RSA"); kpgen.initialize(1024); KeyPair kp=kpgen.genKeyPair(); RSAPublicKey rsapubkey=(RSAPublicKey)kp.getPublic(); userRSAPrivKey=(RSAPrivateKey)kp.getPrivate(); //setting of publickey x3certgen.setPublicKey(rsapubkey); //generate certificate userCert=x3certgen.generateX509Certificate(rootRSAPrivKey); //output to display certificate displayCert(userCert,userCertInfo); System.out.println(userCert); saveUserCertJB.setEnabled(true); ///enable other buttons }catch(NoSuchAlgorithmException e1) { //System.MessageBox("","",2); }catch(SignatureException e2) { }catch(InvalidKeyException e3) { } }//GEN-LAST:event_genUserCertJBActionPerformed private void initSignCertJBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_initSignCertJBActionPerformed //请在此处增加您的处理代码: chooseDialog jd=new chooseDialog(new javax.swing.JFrame(), true); //jd.setSize(300, 200); jd.setTitle("请选择根证书文件并输入打开密码"); jd.show(); int returnValue=jd.resultValue; if(returnValue==0) { String filenameStr=jd.filepathstr; char pwd[]=jd.pwd; int resultValue=initRootCert(filenameStr, pwd); if(resultValue==0) genUserCertJB.setEnabled(true); } jd.dispose(); }//GEN-LAST:event_initSignCertJBActionPerformed private void rootDateJTFFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_rootDateJTFFocusGained //请在此处增加您的处理代码: //String str="请输入天数".trim(); //if(rootDateJTF.getText().trim()==str) rootDateJTF.setText(""); }//GEN-LAST:event_rootDateJTFFocusGained private void saveJBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveJBActionPerformed //请在此处增加您的处理代码: try{ FileOutputStream fio=new FileOutputStream(file_PathJTF.getText()); KeyStore ks=KeyStore.getInstance("PKCS12","BC"); ks.load(null,null); ks.setCertificateEntry("root", rootCert); java.security.cert.X509Certificate certChain[]={rootCert}; ks.setKeyEntry("root",rootRSAPrivKey,rootPWDJPF.getPassword(),certChain); ks.store(fio,rootPWDJPF.getPassword()); fio.flush(); fio.close(); }catch(IOException e1) { System.out.println(e1.toString()); }catch(KeyStoreException e2) { System.out.println(e2.toString()); }catch(NoSuchAlgorithmException e3) { System.out.println(e3.toString()); }catch(java.security.cert.CertificateException e4) { System.out.println(e4.toString()); }catch(NoSuchProviderException e5) { } }//GEN-LAST:event_saveJBActionPerformed private void genRootCertJBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_genRootCertJBActionPerformed //请在此处增加您的处理代码: X509V1CertificateGenerator certGen=new X509V1CertificateGenerator(); //certGen. certGen.setSignatureAlgorithm("SHA1withRSA"); //setting of SN certGen.setSerialNumber(new BigInteger(rootSNJTF.getText().trim())); //setting of issuerDN String dnstr=""; if(rootCJTF.getText().trim()!="") dnstr+=("C="+rootCJTF.getText()+","); if(rootSJTF.getText().trim()!="") dnstr+=("ST="+rootSJTF.getText()+","); if(rootCityJTF.getText().trim()!="") dnstr+=("L="+rootCityJTF.getText()+","); if(rootOJTF.getText().trim()!="") dnstr+=("O="+rootOJTF.getText()+","); if(rootOUJTF.getText().trim()!="") dnstr+=("OU="+rootOUJTF.getText()+","); if(rootSubjectJTF.getText().trim()!="") dnstr+=("CN="+rootSubjectJTF.getText()); X509Name x509dn=new X509Name(dnstr); certGen.setIssuerDN(x509dn); certGen.setSubjectDN(x509dn);//self signature certificate //setting of date Long addnum=new Long(rootDateJTF.getText()); certGen.setNotBefore(new Date(System.currentTimeMillis())); certGen.setNotAfter(new Date(System.currentTimeMillis()+addnum.longValue()*24*3600*1000)); try{ KeyPairGenerator kpgen=KeyPairGenerator.getInstance("RSA"); kpgen.initialize(1024); KeyPair kp=kpgen.genKeyPair(); RSAPublicKey rsapubkey=(RSAPublicKey)kp.getPublic(); rootRSAPrivKey=(RSAPrivateKey)kp.getPrivate(); //setting of publickey certGen.setPublicKey(rsapubkey); //System.out.println("OK"); //generate certificate rootCert=certGen.generateX509Certificate(rootRSAPrivKey); //output to display certificate rootCertInfo.setText(""); displayCert(rootCert,rootCertInfo); ///enable other buttons saveJB.setEnabled(true); genUserCertJB.setEnabled(true); }catch(NoSuchAlgorithmException e1) { //System.MessageBox("","",2); }catch(SignatureException e2) { }catch(InvalidKeyException e3) { } //X509Name issuerdn=new X509Name(); //X509V1CertificateGenerator }//GEN-LAST:event_genRootCertJBActionPerformed private void providerInfoJSPMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_providerInfoJSPMouseClicked //请在此处增加您的处理代码: getProviders(); }//GEN-LAST:event_providerInfoJSPMouseClicked private void providerInfoJSPFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_providerInfoJSPFocusGained //请在此处增加您的处理代码: getProviders(); }//GEN-LAST:event_providerInfoJSPFocusGained /** Exit the Application */ private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm System.exit(0); }//GEN-LAST:event_exitForm /** * @param args the command line arguments */ public static void main(String args[]) { new GenCertificate().show(); } public void addProvider() { Security.addProvider(new BouncyCastleProvider()); } public void getProviders() { String str=""; Provider mypro[]=Security.getProviders(); for(int i=0;i