diff options
| author | Niranjan Mallapadi <mrniranjan@redhat.com> | 2014-02-11 20:43:13 +0530 |
|---|---|---|
| committer | Niranjan Mallapadi <mrniranjan@redhat.com> | 2014-02-13 15:37:58 +0530 |
| commit | f2f53cf730d62a1b87b93fc70d77d61a28eec201 (patch) | |
| tree | 4f62fa46653ec8d3dcb3e2fb407d3441d86a92de | |
| parent | edce284ef869ecae8b585f7d4ff08f72f3a45804 (diff) | |
generateCRMFRequest.java to generate CRMF Request without archival
| -rw-r--r-- | tests/dogtag/shared/generateCRMFRequest.java | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/tests/dogtag/shared/generateCRMFRequest.java b/tests/dogtag/shared/generateCRMFRequest.java new file mode 100644 index 000000000..3660a34e5 --- /dev/null +++ b/tests/dogtag/shared/generateCRMFRequest.java @@ -0,0 +1,139 @@ +import java.util.*; +import java.net.*; +import java.io.*; +import org.mozilla.jss.ssl.*; +import com.netscape.pkisilent.argparser.*; +import com.netscape.pkisilent.common.*; + +public class generateCRMFRequest +{ + + private static String request_type = null; + private static String request_subject = null; + private static String request_keysize = null; + private static String request_keytype = null; + private static String client_certdb_dir = null; + private static String client_certdb_pwd = null; + private static String output_file = null; + + private static String debug = null; + + private String cert_request = null; + public generateCRMFRequest() + { + // Do nothing + } + + public boolean Generate_CRMF() + { + System.out.println("Generating Cert Request with KeySize: " + request_keysize); + System.out.println("Generating Cert Request with KeyType: " + request_keytype); + + ComCrypto cCrypt = new ComCrypto(client_certdb_dir,client_certdb_pwd,request_subject,request_keysize,request_keytype); + cCrypt.setDebug(true); + cCrypt.setGenerateRequest(true); + cCrypt.setTransportCert(null); + cCrypt.setDualKey(false); + cCrypt.loginDB(); + + String crmf_request = cCrypt.generateCRMFrequest(); + + if(crmf_request == null) + { + System.out.println("Request could not be generated "); + return false; + } + + cert_request = crmf_request; + return true; + + } + + public boolean generate() + { + + // 1. Check Request Type and Generate Request + + System.out.println("Generating CRMF Request."); + Generate_CRMF(); + + + // 2. Submit it + + if(cert_request == null) + { + System.out.println("ERROR: failed to generate request"); + return false; + } + PrintStream ps = null; + try { + ps = new PrintStream(new FileOutputStream(output_file)); + ps.println(cert_request); + ps.flush(); + ps.close(); + } catch (Exception E){ + System.err.println ("Error in writing to file"); + } + System.out.println("CRMF Request=" + cert_request); + + return true; + + } + + + + public static void main(String args[]) + { + generateCRMFRequest prof = new generateCRMFRequest(); + // parse args + StringHolder x_request_keysize = new StringHolder(); + StringHolder x_request_keytype = new StringHolder(); + StringHolder x_request_subject = new StringHolder(); + StringHolder x_client_certdb_dir = new StringHolder(); + StringHolder x_client_certdb_pwd = new StringHolder(); + StringHolder x_req_out_file = new StringHolder(); + StringHolder x_debug = new StringHolder(); + + // parse the args + ArgParser parser = new ArgParser("generateCRMFRequest"); + + parser.addOption ("-client_certdb_dir %s #CertDB dir", x_client_certdb_dir); + parser.addOption ("-client_certdb_pwd %s #CertDB password", x_client_certdb_pwd); + parser.addOption ("-debug %s #enables display of debugging info", x_debug); + parser.addOption ("-request_subject %s #Request Subject", x_request_subject); + parser.addOption ("-request_keysize %s #Key size for the cert req", x_request_keysize); + parser.addOption ("-request_keytype %s #Key Type for the cert req", x_request_keytype); + parser.addOption ("-output_file %s #Ouput file for cert req", x_req_out_file); + + // and then match the arguments + String [] unmatched = null; + unmatched = parser.matchAllArgs (args,0,parser.EXIT_ON_UNMATCHED); + + if(unmatched!=null) + { + System.out.println("ERROR: Argument Mismatch"); + System.exit(-1); + } + + // set variables + client_certdb_dir = x_client_certdb_dir.value; + client_certdb_pwd = x_client_certdb_pwd.value; + request_subject = x_request_subject.value; + request_keysize = x_request_keysize.value; + request_keytype = x_request_keytype.value; + output_file = x_req_out_file.value; + debug = x_debug.value; + + boolean st = prof.generate(); + + if (!st) + { + System.out.println("ERROR: unable to generate the crmf request"); + System.exit(-1); + } + System.out.println("SUCCESS"); + System.exit(0); + + } + +}; |
