Search in sources :

Example 51 with ConfigurationException

use of org.jpos.core.ConfigurationException in project jPOS by jpos.

the class SimpleKeyFile method setConfiguration.

/**
 * @param cfg configuration object
 * @throws ConfigurationException
 */
public void setConfiguration(Configuration cfg) throws ConfigurationException {
    try {
        init(cfg.get("key-file"));
        header = cfg.get("file-header", header);
    } catch (Exception e) {
        throw new ConfigurationException(e);
    }
}
Also used : ConfigurationException(org.jpos.core.ConfigurationException) ConfigurationException(org.jpos.core.ConfigurationException)

Example 52 with ConfigurationException

use of org.jpos.core.ConfigurationException in project jPOS by jpos.

the class Console method exec.

public void exec(PrintStream outPS, PrintStream errPS, String[] args) {
    JCESecurityModule sm = new JCESecurityModule();
    Logger logger = new Logger();
    logger.addListener(new SimpleLogListener(outPS));
    sm.setLogger(logger, "jce-security-module");
    Properties cfgProps = new Properties();
    SimpleConfiguration cfg = new SimpleConfiguration(cfgProps);
    String commandName = null;
    // 10 is Maximum number of paramters for a command
    String[] commandParams = new String[10];
    outPS.println("Welcome to JCE Security Module console commander!");
    if (args.length == 0) {
        outPS.println("Usage: Console [-options] command [commandparameters...]");
        outPS.println("\nwhere options include:");
        outPS.println("    -lmk <filename>");
        outPS.println("                  to specify the Local Master Keys file");
        outPS.println("    -rebuildlmk   to rebuild new Local Master Keys");
        outPS.println("                  WARNING: old Local Master Keys gets overwritten");
        outPS.println("    -jce <provider classname>");
        outPS.println("                  to specify a JavaTM Cryptography Extension 1.2.1 provider");
        outPS.println("\nWhere command include: ");
        outPS.println("    GC <keyLength>");
        outPS.println("                  to generate a clear key component.");
        outPS.println("    FK <keyLength> <keyType> <component1> <component2> <component3>");
        outPS.println("                  to form a key from three clear components.");
        outPS.println("                  and returns the key encrypted under LMK");
        outPS.println("                  Odd parity is be forced before encryption under LMK");
        outPS.println("    CK <keyLength> <keyType> <KEYunderLMK>");
        outPS.println("                  to generate a key check value for a key encrypted under LMK.");
        outPS.println("    IK <keyLength> <keyType> <KEYunderKEK> ");
        outPS.println("       <kekLength> <kekType> <KEKunderLMK> <KEKcheckValue>");
        outPS.println("                  to import a key from encryption under KEK (eg. ZMK,TMK) to encryption under LMK");
        outPS.println("                  Odd parity is be forced before encryption under LMK");
        outPS.println("    KE <keyLength> <keyType> <KEYunderLMK> <KEYcheckValue> ");
        outPS.println("       <kekLength> <kekType> <KEKunderLMK> <KEKcheckValue> ");
        outPS.println("                  to translate (export) a key from encryption under LMK");
        outPS.println("                  to encryption under KEK (eg. ZMK,TMK)");
    } else {
        int argsCounter = 0;
        for (int j = 0; j < 10; j++) {
            if (argsCounter < args.length && args[argsCounter].toLowerCase().compareTo("-lmk") == 0) {
                argsCounter++;
                cfgProps.setProperty("lmk", args[argsCounter++]);
            }
            if (argsCounter < args.length && args[argsCounter].toLowerCase().compareTo("-jce") == 0) {
                argsCounter++;
                cfgProps.setProperty("provider", args[argsCounter++]);
            }
            if (argsCounter < args.length && args[argsCounter].toLowerCase().compareTo("-rebuildlmk") == 0) {
                argsCounter++;
                cfgProps.setProperty("rebuildlmk", "true");
            }
        }
        if (argsCounter < args.length) {
            commandName = args[argsCounter++];
            int i = 0;
            while (argsCounter < args.length) {
                commandParams[i++] = args[argsCounter++];
            }
        }
        // Configure JCE Security Module
        try {
            sm.setConfiguration(cfg);
        } catch (ConfigurationException e) {
            e.printStackTrace(errPS);
            return;
        }
        // Execute Command
        if (commandName != null) {
            try {
                short keyLength = (short) Integer.parseInt(commandParams[0]);
                if (commandName.toUpperCase().compareTo("GC") == 0) {
                    String clearKeyComponenetHexString = sm.generateClearKeyComponent(keyLength);
                } else if (commandName.toUpperCase().compareTo("FK") == 0) {
                    SecureDESKey KEYunderLMK = sm.formKEYfromThreeClearComponents(keyLength, commandParams[1].toUpperCase(), commandParams[2], commandParams[3], commandParams[4]);
                } else if (commandName.toUpperCase().compareTo("CK") == 0) {
                    byte[] keyCheckValue = sm.generateKeyCheckValue(new SecureDESKey(keyLength, commandParams[1].toUpperCase(), commandParams[2], ""));
                } else if (commandName.toUpperCase().compareTo("IK") == 0) {
                    SecureDESKey KEKunderLMK = new SecureDESKey((short) Integer.parseInt(commandParams[3]), commandParams[4].toUpperCase(), commandParams[5], commandParams[6]);
                    sm.importKey(keyLength, commandParams[1].toUpperCase(), ISOUtil.hex2byte(commandParams[2]), KEKunderLMK, true);
                } else if (commandName.toUpperCase().compareTo("KE") == 0) {
                    SecureDESKey KEKunderLMK = new SecureDESKey((short) Integer.parseInt(commandParams[4]), commandParams[5].toUpperCase(), commandParams[6], commandParams[7]);
                    SecureDESKey KEYunderLMK = new SecureDESKey(keyLength, commandParams[1].toUpperCase(), commandParams[2], commandParams[3]);
                    sm.exportKey(KEYunderLMK, KEKunderLMK);
                } else {
                    System.err.println("Unknown command: " + commandName);
                }
            } catch (SMException e) {
                e.printStackTrace(errPS);
            } catch (java.lang.NumberFormatException e) {
                errPS.println("Invalid KeyLength");
            }
        } else {
            errPS.println("No command specified");
        }
    }
}
Also used : SMException(org.jpos.security.SMException) Logger(org.jpos.util.Logger) Properties(java.util.Properties) SimpleLogListener(org.jpos.util.SimpleLogListener) ConfigurationException(org.jpos.core.ConfigurationException) SimpleConfiguration(org.jpos.core.SimpleConfiguration) SecureDESKey(org.jpos.security.SecureDESKey)

Aggregations

ConfigurationException (org.jpos.core.ConfigurationException)52 Element (org.jdom2.Element)10 SimpleConfiguration (org.jpos.core.SimpleConfiguration)10 Test (org.junit.Test)9 Configuration (org.jpos.core.Configuration)8 Configurable (org.jpos.core.Configurable)5 SubConfiguration (org.jpos.core.SubConfiguration)5 NameRegistrar (org.jpos.util.NameRegistrar)4 IOException (java.io.IOException)3 Date (java.util.Date)3 Properties (java.util.Properties)3 LogSource (org.jpos.util.LogSource)3 InvocationTargetException (java.lang.reflect.InvocationTargetException)2 ParseException (java.text.ParseException)2 SimpleDateFormat (java.text.SimpleDateFormat)2 StringTokenizer (java.util.StringTokenizer)2 Timer (java.util.Timer)2 ISOException (org.jpos.iso.ISOException)2 Logger (org.jpos.util.Logger)2 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1