Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as Java by aaa ( 13 years ago )
package keygen;
import iaik.pkcs.PKCSException;
import iaik.pkcs.PKCSParsingException;
import iaik.pkcs.pkcs12.CertificateBag;
import iaik.pkcs.pkcs12.PKCS12;
import iaik.utils.Util;
import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.logging.Logger;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.filechooser.FileNameExtensionFilter;
import com.bmw.nice.secunit.utils.BasicCrypto;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import org.apache.commons.io.IOUtils;
public class KeyGen {
    public static String pin="";
    public static PKCS12 localPKCS12;
    public static ByteArrayInputStream inputStream=null;
    public static JFrame frame=new JFrame();
    public static JFrame choose=new JFrame();
    public static String name;
    public static String role;
    public static byte[] arrayOfByteEST;
    public static Calendar dateFrom;
    public static Calendar dateTo;
    public static JButton butOpenFile;
    public static void main(String[] args) {
        BasicCrypto.setIAIKasPrio1Provider();
        setSettings();
        setWindow();
        setAction(); 
    }
    private static void setWindow() {
        butOpenFile=new JButton("Wczytaj certyfikat");Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        int height = screenSize.height;
        int width = screenSize.width;
        frame.setTitle("CURECK GENERATOR v. 1.0");
        frame.setSize(width/2, height/2);
        frame.setVisible(true);
        frame.setLocationRelativeTo(null);
        JPanel panel=new JPanel();
        panel.add(butOpenFile);
        JLabel image = new JLabel(new ImageIcon( "build/bmw.jpg" ));
        panel.add(image);
        frame.add(panel);
        frame.pack();
    }

    private static void setAction() {
        butOpenFile.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                InputStream fileStream=null;
                try {
                    JFileChooser jFileChooserSaveFile=new JFileChooser();
                    jFileChooserSaveFile.setCurrentDirectory(
                    jFileChooserSaveFile.getFileSystemView().getParentDirectory(new File("C:\\")));  
                    jFileChooserSaveFile.setFileFilter(new FileNameExtensionFilter("Certyfikaty(*.p12)", "p12"));
                    int request = jFileChooserSaveFile.showOpenDialog(jFileChooserSaveFile);
                    File file = jFileChooserSaveFile.getSelectedFile();
                    if(file!=null){
                    fileStream = new FileInputStream(file.getAbsolutePath());
                    byte[] arrayOfByteCert=IOUtils.toByteArray(fileStream);
                    String license=Util.toBase64String(arrayOfByteCert);
                    inputStream = new ByteArrayInputStream(arrayOfByteCert);
                    localPKCS12 = new PKCS12(inputStream);                    
                    OutputStream fileOut=new FileOutputStream("C:/EST.est");
                    pin = JOptionPane.showInputDialog("Podaj PIN dla licencji:");
                    boolean bool=false;      
                    while(!bool){
                        if(pin==null){
                            bool=true; 
                        }
                        else if(!localPKCS12.verify(pin.toCharArray())){
                            JOptionPane.showMessageDialog(null, "Błędny PIN...\nWprowadź PIN ponownie!");
                            pin = JOptionPane.showInputDialog("Podaj PIN dla licencji:");   
                        }else{  
                            JOptionPane.showMessageDialog(null, ">>>>>>> PIN OK! <<<<<<<\n>>LICENCJA UTWORZONA<< ");
                            bool=true;
                            localPKCS12.decrypt(pin.toCharArray());
                            CertificateBag[] arrayOfCertificateBag = localPKCS12.getCertificateBags();
                            String sth=arrayOfCertificateBag[0].getCertificate().getIssuerDN().toString();
                            String pattern = "[,]";
                            String tab[]=sth.split(pattern);
                            String role=tab[0].substring(4);
                            String name=tab[1].substring(4);
                            SimpleDateFormat localSimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
                            String dateBefore=localSimpleDateFormat.format(arrayOfCertificateBag[0].getCertificate().getNotBefore().getTime());
                            String dateAfter=localSimpleDateFormat.format(arrayOfCertificateBag[0].getCertificate().getNotAfter().getTime());
                          arrayOfByteEST=(
                             "<!--<?xml versi encoding=\"UTF-8\"?> -->\n"+
                            "<root>\n<Name>"+name+"</Name>\n"+
                            "<Role>"+role+"</Role>\n"+
                            "<EST NotValidBefore=\""+dateBefore+"\" "+
                            "NotValidAfter=\""+dateAfter+"\">\n"+
                            license+"\n</EST>\n</root>").getBytes();
                            fileOut.write(arrayOfByteEST);
                            frame.setEnabled(false);
                            frame.dispose();
                    }
                        }        
                    } 
                } catch (FileNotFoundException ex) {
                   frame.dispose();
                } catch (IOException ex) {
                    frame.dispose();
                } catch (PKCSParsingException ex) {
                    frame.dispose();
                } catch (PKCSException ex) {
                    frame.dispose();
                } 
            }
        });
    }
    private static void setSettings() {
        dateFrom = new GregorianCalendar();
        dateTo = new GregorianCalendar();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

 

Revise this Paste

Your Name: Code Language: