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