001    package org.apache.commons.ssl;
002    
003    import java.io.File;
004    import java.io.FileInputStream;
005    import java.io.FileOutputStream;
006    import java.io.IOException;
007    import java.util.Iterator;
008    import java.util.Map;
009    import java.util.Properties;
010    import java.util.TreeSet;
011    
012    /**
013     * @author Julius Davies
014     * @since 4-Jul-2007
015     */
016    public 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    }