29.07.2013 Views

Master of Science thesis Fighting Spam

Master of Science thesis Fighting Spam

Master of Science thesis Fighting Spam

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

}<br />

Debugger.debug(Cryptotools.class, 3, "Certificate generated");<br />

Debugger.debug(Cryptotools.class, 3, "Command: " + command);<br />

public static boolean generateKeyPair(String alias, String keystorefilename, String<br />

algorithm, int keysize,<br />

String storepass, String keypass, String[]<br />

data) throws Exception<br />

{<br />

//data = {firstname,lastname,orgUnit,orgName,locality,state,country}<br />

Runtime rt = Runtime.getRuntime();<br />

String cmd = "keytool -genkey -alias " + alias + " -keystore " + keystorefilename<br />

+ " -keyalg " + algorithm<br />

+ " -keysize " + keysize + " -dname \"CN=" + data[0] + " " + data[1] + ",<br />

OU=" + data[2] + ", O=" + data[3]<br />

+ ", L=" + data[4] + ", S=" + data[5] + ", C=" + data[6] + "\" -storepass " +<br />

storepass + " -keypass "<br />

+ keypass;<br />

Debugger.debug(Cryptotools.class, 3, "Command: " + cmd);<br />

Process proc = rt.exec(cmd);<br />

proc.waitFor();<br />

KeyStore ks = KeyStore.getInstance("JKS");<br />

File file = new File(keystorefilename);<br />

ks.load(new FileInputStream(file), storepass.toCharArray()); // must be changed<br />

to "correct" path<br />

}<br />

return ks.containsAlias(alias);<br />

public static PrivateKey getKey(String keystorefilepath, String alias, String<br />

keystorepass, String keypass) throws<br />

Exception<br />

{<br />

KeyStore ks = KeyStore.getInstance("JKS");<br />

ks.load(new FileInputStream(new File(keystorefilepath)),<br />

keystorepass.toCharArray());<br />

return(PrivateKey) ks.getKey(alias, keypass.toCharArray());<br />

}<br />

public static byte[] generateCertRequest(String alias, String keystorefilename,<br />

String keystorepass, String keypass) throws<br />

Exception<br />

{<br />

String cmd = "keytool -certreq -alias " + alias + " -keystore " +<br />

keystorefilename + " -storepass "<br />

+ keystorepass + " -keypass " + keypass + " -file " + alias + ".csr";<br />

Runtime rt = Runtime.getRuntime();<br />

Process proc = rt.exec(cmd);<br />

proc.waitFor();<br />

File file = new File(alias + ".csr");<br />

return FileHandler.readBytes(file);<br />

}<br />

public static SecretKey generateAESKey()<br />

{<br />

try<br />

{<br />

KeyGenerator kgen = KeyGenerator.getInstance("AES");<br />

kgen.init(encryptedKeySize); // 192 and 256 bits may not be available<br />

// Generate the secret key specs.<br />

return kgen.generateKey();<br />

}<br />

catch(Exception e)<br />

{<br />

System.out.println("Exception in generateKey: " + e);<br />

396

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!