001package org.apache.commons.ssl; 002 003import java.io.File; 004import java.io.FileInputStream; 005import java.io.FileOutputStream; 006import java.io.IOException; 007import java.util.Iterator; 008import java.util.Map; 009import java.util.Properties; 010import java.util.TreeSet; 011 012/** 013 * @author Julius Davies 014 * @since 4-Jul-2007 015 */ 016public class PBETestCreate { 017 018 public static void main(String[] args) throws Exception { 019 FileInputStream in = new FileInputStream(args[0]); 020 Properties p = new Properties(); 021 p.load(in); 022 in.close(); 023 024 String targetDir = p.getProperty("target"); 025 File dir = new File(targetDir); 026 dir.mkdirs(); 027 if (!dir.exists()) { 028 throw new IOException(dir.getCanonicalPath() + " doesn't exist!"); 029 } 030 031 TreeSet ciphers = new TreeSet(); 032 Iterator it = p.entrySet().iterator(); 033 while (it.hasNext()) { 034 Map.Entry entry = (Map.Entry) it.next(); 035 String key = (String) entry.getKey(); 036 if (!"target".equalsIgnoreCase(key)) { 037 ciphers.add(key); 038 ciphers.add(key + "-cbc"); 039 ciphers.add(key + "-cfb"); 040 ciphers.add(key + "-cfb1"); 041 ciphers.add(key + "-cfb8"); 042 ciphers.add(key + "-ecb"); 043 ciphers.add(key + "-ofb"); 044 } 045 } 046 047 byte[] toEncrypt = "Hello World!".getBytes("UTF-8"); 048 char[] pwd = "changeit".toCharArray(); 049 it = ciphers.iterator(); 050 while (it.hasNext()) { 051 String cipher = (String) it.next(); 052 String cipherPadded = Util.pad(cipher, 15, false); 053 String fileNameBase64 = cipher + ".base64"; 054 String fileNameRaw = cipher + ".raw"; 055 String d = dir.getCanonicalPath() + "/"; 056 try { 057 byte[] base64 = OpenSSL.encrypt(cipher, pwd, toEncrypt, true); 058 FileOutputStream out = new FileOutputStream(d + fileNameBase64); 059 out.write(base64); 060 out.close(); 061 } 062 catch (Exception e) { 063 System.err.println("FAILURE \t" + cipherPadded + "\t" + fileNameBase64 + "\t" + e); 064 } 065 066 try { 067 byte[] raw = OpenSSL.encrypt(cipher, pwd, toEncrypt, false); 068 FileOutputStream out = new FileOutputStream(d + fileNameRaw); 069 out.write(raw); 070 out.close(); 071 } 072 catch (Exception e) { 073 System.err.println("FAILURE \t" + cipherPadded + "\t" + fileNameRaw + "\t" + e); 074 } 075 076 } 077 } 078 079}