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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

}<br />

System.out.println();<br />

private static void testRSA() throws Exception<br />

{<br />

System.out.println("\nTest RSA...");<br />

SecretKey sessionKey = generateAESKey();<br />

Key publicKey = open("distributer_RSA_public");<br />

Debugger.debug(className, 3, "Key before: " + sessionKey);<br />

CryptoPacket encrypted = encryptRSA(sessionKey, publicKey);<br />

Debugger.debug(className, 3,<br />

"Key after : " + sessionKey.equals(decryptRSA(encrypted,<br />

open("distributer_RSA_private"))));<br />

Debugger.debug(className, 3, "\nTest RSA Done.\n");<br />

}<br />

private static void testAES() throws Exception<br />

{<br />

SecretKey key = generateAESKey();<br />

}<br />

NetPacket np = new LogonPacket("Kurt", "password1");<br />

System.out.println("Encrypting...");<br />

CryptoPacket cp = encryptAES(np, key);<br />

System.out.println("Decrypting...");<br />

NetPacket np2 = decryptAES(cp, key);<br />

System.out.println("Passed test?: " + np.equals((LogonPacket) np2));<br />

System.out.println("Pack 1: " + np);<br />

System.out.println("Pack 2: " + np2);<br />

public void testSafe() throws Exception<br />

{<br />

System.out.println("\nTest AES...");<br />

SecretKey sessionKey = generateAESKey();<br />

Coin vc1 = new Coin(3.3, 1243432, System.currentTimeMillis(), 10, null, null);<br />

Coin vc2 = new Coin(3.3, 12432, System.currentTimeMillis(), 10, null, null);<br />

Coin vc3 = new Coin(3.3, 12434, System.currentTimeMillis(), 10, null, null);<br />

Coin vc4 = new Coin(3.3, 1232, System.currentTimeMillis(), 10, null, null);<br />

}<br />

Vector box = new Vector();<br />

box.addElement(vc1);<br />

box.addElement(vc2);<br />

box.addElement(vc3);<br />

box.addElement(vc4);<br />

ByteArrayOutputStream byteStream = new ByteArrayOutputStream();<br />

ObjectOutputStream out = new ObjectOutputStream(byteStream);<br />

out.writeObject(box);<br />

public static CryptoPacket encryptRSA(SecretKey sessionKey, Key key) throws Exception<br />

{<br />

return new CryptoPacket(encryptRSA(sessionKey.getEncoded(), key));<br />

}<br />

public static byte[] encryptRSA(byte[] data, Key key) throws Exception<br />

{<br />

Cipher encryptCipher = Cipher.getInstance("RSA/ECB/PKCS1Padding", "BC");<br />

encryptCipher.init(Cipher.ENCRYPT_MODE, key);<br />

return encryptCipher.doFinal(data);<br />

}<br />

public static SecretKey decryptRSA(CryptoPacket cp, Key key) throws Exception<br />

{<br />

return(SecretKey)new SecretKeySpec(decryptRSA(cp.data, key), "AES");<br />

}<br />

393

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

Saved successfully!

Ooh no, something went wrong!