/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package hsmexampleconsole; import java.util.Scanner; import objects.Keys; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import utils.ExampleHSM; import utils.Utils; /** * * @author TuoiCM */ public class HSMExampleConsole { // private static final Logger logger = LoggerFactory.getLogger(HSMExampleConsole.class); private static final String KEY_ID_HARDCODE = "d6e28252-3097-4697-bb29-658284682bc3"; private static final String KEY_LABEL_HARDCODE = "d6e28252-3097-4697-bb29-658284682bc3"; private static final String COUNTRY_HARDCODE = "VN"; private static final String MNEMONIC = "HAN"; private static final String SEQUENCE = "00000"; private static final String HASH_HARDCODE = "ply4GS4qKDlx3lwARzhnxbzZmevgwQs8Tq3B7MQFvx8="; private static final String ENCODING_BASE64 = "base64"; // // /** * @param args the command line arguments */ public static void main(String[] args) { try { String is64 = System.getProperty("sun.arch.data.model"); System.out.println("YOUR SYSTEM SUPPORTS " + is64 + " BIT"); processHSM(); } catch (Exception ex) { logger.error(Utils.printStackTrace(ex)); } } // // private static void showMenu() { System.out.println("1. INIT HSM"); System.out.println("2. LIST KEY HSM"); System.out.println("3. GEN KEY HSM"); System.out.println("4. CVC REQUEST HSM"); System.out.println("5. GEN SIGNATURE HSM"); System.out.println("6. EXIT"); } // // private static void processHSM() { try { Scanner sc = new Scanner(System.in); int choice = 0; while (true) { showMenu(); System.out.println("ENTERT OPTION"); choice = sc.nextInt(); switch (choice) { case 1: //Init System.out.println("INIT HSM..."); ExampleHSM.init(); break; case 2: // List Key System.out.println("LIST KEY..."); Keys[] keyses = ExampleHSM.getKeys(); if (null != keyses && keyses.length > 0) { for (Keys keyse : keyses) { logger.debug("KEY ID/KEY LABEL LIST " + keyse.getKeyId() + "/" + keyse.getKeyLabel()); } } else { logger.warn("LIST KEY IS NULL"); } break; case 3: // Gen Key System.out.println("GEN KEY..."); Keys[] keysGen = ExampleHSM.generateKeyPari(null, null, null); if (null != keysGen && keysGen.length > 0) { for (Keys keys : keysGen) { logger.debug("KEY ID/KEY LABEL GENERATE " + keys.getKeyId() + "/" + keys.getKeyLabel()); } } else { logger.warn("KEY GEN IS NULL"); } break; case 4: // CVC Requeset System.out.println("CVC REQUEST..."); String cvcRequest = ExampleHSM.cvcRequest(COUNTRY_HARDCODE, MNEMONIC, SEQUENCE, null, KEY_ID_HARDCODE, KEY_LABEL_HARDCODE); if(Utils.isNullOrEmpty(cvcRequest)) { logger.warn("CVC REQUEST IS NULL"); } else { logger.debug("CVC REQUEST\n" + cvcRequest); } break; case 5: // Gen Signature System.out.println("GEN SIGNATURE..."); String taSignature = ExampleHSM.getTASginature(KEY_ID_HARDCODE, KEY_LABEL_HARDCODE, HASH_HARDCODE, ENCODING_BASE64); if(Utils.isNullOrEmpty(taSignature)) { logger.warn("TA SIGNATURE IS NULL"); } else { logger.debug("TA SIGNATURE\n" + taSignature); } break; case 6: System.out.println("BYE BYE"); ExampleHSM.destroy(); System.exit(0); default: showMenu(); System.out.println("INVALID OPTION. TRY AGAIN"); choice = sc.nextInt(); } } } catch (Exception e) { logger.error("PROCESS HSM FAIL " + Utils.printStackTrace(e)); } } // }