📄 swingui.java
字号:
X509Certificate newCert = certGen.generateX509Certificate(issuer.subjectPkey); net.jxta.impl.protocol.Certificate cert_msg = new net.jxta.impl.protocol.Certificate(); List<X509Certificate> newChain = new ArrayList<X509Certificate>(Arrays.asList(issuerChain)); newChain.add(0, newCert); cert_msg.setCertificates(newChain); XMLDocument asXML = (XMLDocument) cert_msg.getDocument(MimeMediaType.XMLUTF8); JFileChooser fc = new JFileChooser(); // In response to a button click: int returnVal = fc.showSaveDialog(this); if (returnVal == JFileChooser.APPROVE_OPTION) { FileWriter csr_file = new FileWriter(fc.getSelectedFile()); asXML.sendToWriter(csr_file); csr_file.close(); authenticationStatus.setText("Signed certificate saved."); } else { authenticationStatus.setText("Save certificate cancelled."); } } catch (NoSuchAlgorithmException failed) { authenticationStatus.setText("Certificate signing failed:" + failed.getMessage()); } catch (NoSuchProviderException failed) { authenticationStatus.setText("Certificate signing failed:" + failed.getMessage()); } catch (InvalidKeyException failed) { authenticationStatus.setText("Certificate signing failed:" + failed.getMessage()); } catch (SignatureException failed) { authenticationStatus.setText("Certificate signing failed:" + failed.getMessage()); } catch (IOException failed) { authenticationStatus.setText("Certificate signing failed:" + failed.getMessage()); } }// GEN-LAST:event_adminSignCSRButtonActionPerformed private void memberGenerateCSRButtonActionPerformed(java.awt.event.ActionEvent evt) { // GEN-FIRST:event_memberGenerateCSRButtonActionPerformed if (null == memberCredential) { authenticationStatus.setText("Not authenticated -- cannot generate Certificate Signing Request."); return; } X509Certificate cert = memberCredential.getCertificate(); PrivateKey key = null; try { key = memberCredential.getPrivateKey(); } catch (IllegalStateException notLocal) { ; } if (null == key) { authenticationStatus.setText("Credential is not a local login credential."); return; } try { PKCS10CertificationRequest csr = new PKCS10CertificationRequest("SHA1withRSA" , new X509Principal(cert.getSubjectX500Principal().getEncoded()), cert.getPublicKey(), new DERSet(), key); net.jxta.impl.protocol.CertificateSigningRequest csr_msg = new net.jxta.impl.protocol.CertificateSigningRequest(); csr_msg.setCSR(csr); XMLDocument asXML = (XMLDocument) csr_msg.getDocument(MimeMediaType.XMLUTF8); JFileChooser fc = new JFileChooser(); // In response to a button click: int returnVal = fc.showSaveDialog(this); if (returnVal == JFileChooser.APPROVE_OPTION) { FileWriter csr_file = new FileWriter(fc.getSelectedFile()); asXML.sendToWriter(csr_file); csr_file.close(); authenticationStatus.setText( "Certificate Signing Request saved as file: " + fc.getSelectedFile().getCanonicalPath()); } else { authenticationStatus.setText("Certificate Signing Request not saved."); } } catch (NoSuchAlgorithmException failed) { authenticationStatus.setText("Certificate Signing Request generation failed:" + failed.getMessage()); } catch (NoSuchProviderException failed) { authenticationStatus.setText("Certificate Signing Request generation failed:" + failed.getMessage()); } catch (InvalidKeyException failed) { authenticationStatus.setText("Certificate Signing Request generation failed:" + failed.getMessage()); } catch (SignatureException failed) { authenticationStatus.setText("Certificate Signing Request generation failed:" + failed.getMessage()); } catch (IOException failed) { authenticationStatus.setText("Certificate Signing Request generation failed:" + failed.getMessage()); } }// GEN-LAST:event_memberGenerateCSRButtonActionPerformed private void memberAuthenticateButtonActionPerformed(java.awt.event.ActionEvent evt) { // GEN-FIRST:event_memberAuthenticateButtonActionPerformed if (null != memberCredential) { authenticationStatus.setText("Already authenticated."); return; } StringAuthenticator memberAuthenticator = null; try { AuthenticationCredential application = new AuthenticationCredential(group, "StringAuthentication", null); memberAuthenticator = (StringAuthenticator) membership.apply(application); } catch (ProtocolNotSupportedException noAuthenticator) { authenticationStatus.setText("Could not create authenticator: " + noAuthenticator.getMessage()); return; } memberAuthenticator.setAuth1_KeyStorePassword(keyStorePasswordField.getPassword()); memberAuthenticator.setAuth2Identity(group.getPeerID()); memberAuthenticator.setAuth3_IdentityPassword(memberPasswordField.getPassword()); // clear the password memberPasswordField.setText(""); try { memberCredential = (PSECredential) membership.join(memberAuthenticator); authenticationStatus.setText("Member authentication successful."); } catch (PeerGroupException failed) { authenticationStatus.setText("Member authentication failed: " + failed.getMessage()); return; } X509Certificate[] chain = memberCredential.getCertificateChain(); memberGenerateCSRButton.setEnabled(true); memberResignButton.setEnabled(true); if (chain.length > 1) { // If there's a certificate chain then perhaps admin and owner // be should enabled. if (chain[1].getPublicKey().equals(Main.PSE_SAMPLE_GROUP_ROOT_CERT.getPublicKey())) { // Signed by the root? That makes us an admin and maybe an owner tabs.add(adminTab); tabs.add(ownerTab); } } }// GEN-LAST:event_memberAuthenticateButtonActionPerformed private void swingUIClosed(java.awt.event.WindowEvent evt) { // GEN-FIRST:event_swingUIClosed // Shutdown the pse peer group. group.stopApp(); group.unref(); // Un-reference the parent peer group. parentgroup.unref(); }// GEN-LAST:event_swingUIClosed private void invitationPasswordFieldKeyReleased(java.awt.event.KeyEvent evt) { // GEN-FIRST:event_invitationPasswordFieldKeyReleased invitationAuthenticator.setAuth3_IdentityPassword(invitationPasswordField.getPassword()); invitationConfirmButton.setEnabled(invitationAuthenticator.isReadyForJoin()); }// GEN-LAST:event_invitationPasswordFieldKeyReleased private void invitationConfirmButtonActionPerformed(java.awt.event.ActionEvent evt) { // GEN-FIRST:event_invitationConfirmButtonActionPerformed boolean ownerInvite = invitationAuthenticator.getCertificate(null, group.getPeerID()).getPublicKey().equals( Main.PSE_SAMPLE_GROUP_ROOT_CERT.getPublicKey()); invitationAuthenticator.setAuth1_KeyStorePassword(keyStorePasswordField.getPassword()); if (ownerInvite) { // If the invitation is for the owner identity then store it under the peer group id. invitationAuthenticator.setAuth2Identity(group.getPeerGroupID()); } else { // Otherwise store it under another random key. invitationAuthenticator.setAuth2Identity(IDFactory.newCodatID(group.getPeerGroupID())); } invitationAuthenticator.setAuth3_IdentityPassword(invitationPasswordField.getPassword()); // clear the password invitationPasswordField.setText(""); try { invitationCredential = (PSECredential) membership.join(invitationAuthenticator); tabs.remove(invitationTab); tabs.add(memberTab); if (ownerInvite) { tabs.add(ownerTab); } authenticationStatus.setText("Invitation confirmed."); } catch (PeerGroupException failed) { authenticationStatus.setText("Invitation confirmation failed: " + failed.getMessage()); } }// GEN-LAST:event_invitationConfirmButtonActionPerformed private void invitationPasswordFieldActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_invitationPasswordFieldActionPerformed // TODO add your handling code here: }// GEN-LAST:event_invitationPasswordFieldActionPerformed private void keyStorePasswordFieldActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_keyStorePasswordFieldActionPerformed // TODO add your handling code here: }// GEN-LAST:event_keyStorePasswordFieldActionPerformed private void generateMemberCertButtonActionPerformed(java.awt.event.ActionEvent evt) { // GEN-FIRST:event_generateMemberCertButtonActionPerformed try { X509Certificate checkCert = membership.getPSEConfig().getTrustedCertificate(group.getPeerID()); if (null != checkCert) { authenticationStatus.setText("Member certificate already present."); } PSEUtils.IssuerInfo issuer = null; if (null != invitationCredential) { issuer = new PSEUtils.IssuerInfo(); issuer.cert = invitationCredential.getCertificate(); issuer.subjectPkey = invitationCredential.getPrivateKey(); } PSEUtils.IssuerInfo certs = PSEUtils.genCert(group.getPeerName(), issuer); X509Certificate chain[]; if (null != issuer) { chain = new X509Certificate[] { certs.cert, certs.issuer}; } else { chain = new X509Certificate[] { certs.cert}; } if (null == membership.getDefaultCredential()) { // if the keychain hasn't been unlocked then set the keystore password. membership.getPSEConfig().setKeyStorePassword(keyStorePasswordField.getPassword()); } // Save our new certificate into the keystore. membership.getPSEConfig().setKey(group.getPeerID(), chain, certs.subjectPkey, memberPasswordField.getPassword()); authenticationStatus.setText("New member certificate generated."); memberAuthenticateButton.setEnabled(true); } catch (KeyStoreException failed) { authenticationStatus.setText("Certificate generation failed: " + failed.getMessage()); } catch (IOException failed) { authenticationStatus.setText("Certificate generation failed: " + failed.getMessage()); } }// GEN-LAST:event_generateMemberCertButtonActionPerformed private void authenticationStatusActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_authenticationStatusActionPerformed // TODO add your handling code here: }// GEN-LAST:event_authenticationStatusActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JPasswordField adminInvitationPasswordField; private javax.swing.JLabel adminInvitationPasswordLabel; private javax.swing.JButton adminInviteButton; private javax.swing.JButton adminSignCSRButton; private javax.swing.JPanel adminTab; private javax.swing.JTextField authenticationStatus; private javax.swing.JButton generateMemberCertButton; private javax.swing.JButton invitationConfirmButton; private javax.swing.JPasswordField invitationPasswordField; private javax.swing.JPanel invitationTab; private javax.swing.JPasswordField keyStorePasswordField; private javax.swing.JLabel keyStorePasswordLabel; private javax.swing.JButton memberAuthenticateButton; private javax.swing.JButton memberGenerateCSRButton; private javax.swing.JButton memberImportCertButton; private javax.swing.JPasswordField memberPasswordField; private javax.swing.JButton memberResignButton; private javax.swing.JPanel memberTab; private javax.swing.JButton ownerAuthenticateButton; private javax.swing.JPasswordField ownerPasswordField; private javax.swing.JLabel ownerPasswordLabel; private javax.swing.JButton ownerResignButton; private javax.swing.JButton ownerSignCSRButton; private javax.swing.JPanel ownerTab; private javax.swing.JTabbedPane tabs; // End of variables declaration//GEN-END:variables}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -