summaryrefslogtreecommitdiffstats
path: root/base/java-tools/src/com/netscape/cmstools/key/KeyRetrieveCLI.java
diff options
context:
space:
mode:
Diffstat (limited to 'base/java-tools/src/com/netscape/cmstools/key/KeyRetrieveCLI.java')
-rw-r--r--base/java-tools/src/com/netscape/cmstools/key/KeyRetrieveCLI.java126
1 files changed, 53 insertions, 73 deletions
diff --git a/base/java-tools/src/com/netscape/cmstools/key/KeyRetrieveCLI.java b/base/java-tools/src/com/netscape/cmstools/key/KeyRetrieveCLI.java
index 5d882f7a6..92389c021 100644
--- a/base/java-tools/src/com/netscape/cmstools/key/KeyRetrieveCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/key/KeyRetrieveCLI.java
@@ -2,11 +2,9 @@ package com.netscape.cmstools.key;
import java.io.File;
import java.io.FileInputStream;
-import java.io.FileNotFoundException;
import java.util.Arrays;
import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
@@ -54,7 +52,7 @@ public class KeyRetrieveCLI extends CLI {
options.addOption(option);
}
- public void execute(String[] args) {
+ public void execute(String[] args) throws Exception {
// Always check for "--help" prior to parsing
if (Arrays.asList(args).contains("--help")) {
// Display usage
@@ -81,95 +79,73 @@ public class KeyRetrieveCLI extends CLI {
System.exit(-1);
}
- if(cmd.getOptions().length==0){
+ if (cmd.getOptions().length == 0) {
System.err.println("Error: Incorrect number of parameters provided.");
printHelp();
System.exit(-1);
}
+
String requestFile = cmd.getOptionValue("input");
Key keyData = null;
if (requestFile != null) {
- try {
- JAXBContext context = JAXBContext.newInstance(KeyRecoveryRequest.class);
- Unmarshaller unmarshaller = context.createUnmarshaller();
- FileInputStream fis = new FileInputStream(requestFile);
- KeyRecoveryRequest req = (KeyRecoveryRequest) unmarshaller.unmarshal(fis);
-
- if (req.getKeyId() == null) {
- System.err.println("Error: Key Id must be specified in the request file.");
- System.exit(-1);
- }
- if (req.getCertificate() != null) {
- keyData = keyCLI.keyClient.retrieveKeyByPKCS12(req.getKeyId(), req.getCertificate(),
- req.getPassphrase());
- } else if (req.getPassphrase() != null) {
- keyData = keyCLI.keyClient.retrieveKeyByPassphrase(req.getKeyId(), req.getPassphrase());
- } else if (req.getSessionWrappedPassphrase() != null) {
- keyData = keyCLI.keyClient.retrieveKeyUsingWrappedPassphrase(req.getKeyId(),
- Utils.base64decode(req.getTransWrappedSessionKey()),
- Utils.base64decode(req.getSessionWrappedPassphrase()),
- Utils.base64decode(req.getNonceData()));
- } else if (req.getTransWrappedSessionKey() != null) {
- keyData = keyCLI.keyClient.retrieveKey(req.getKeyId(),
- Utils.base64decode(req.getTransWrappedSessionKey()));
- } else {
- keyData = keyCLI.keyClient.retrieveKey(req.getKeyId());
- }
- } catch (JAXBException e) {
- System.err.println("Error: Cannot parse the request file.");
- if (verbose)
- e.printStackTrace();
- System.exit(-1);
- } catch (FileNotFoundException e) {
- System.err.println("Error: Cannot locate file at path: " + requestFile);
- if (verbose)
- e.printStackTrace();
- System.exit(-1);
- } catch (Exception e) {
- System.err.println(e.getMessage());
- if (verbose)
- e.printStackTrace();
+ JAXBContext context = JAXBContext.newInstance(KeyRecoveryRequest.class);
+ Unmarshaller unmarshaller = context.createUnmarshaller();
+ FileInputStream fis = new FileInputStream(requestFile);
+ KeyRecoveryRequest req = (KeyRecoveryRequest) unmarshaller.unmarshal(fis);
+
+ if (req.getKeyId() == null) {
+ System.err.println("Error: Key ID must be specified in the request file.");
System.exit(-1);
}
+ if (req.getCertificate() != null) {
+ keyData = keyCLI.keyClient.retrieveKeyByPKCS12(req.getKeyId(), req.getCertificate(),
+ req.getPassphrase());
+
+ } else if (req.getPassphrase() != null) {
+ keyData = keyCLI.keyClient.retrieveKeyByPassphrase(req.getKeyId(), req.getPassphrase());
+
+ } else if (req.getSessionWrappedPassphrase() != null) {
+ keyData = keyCLI.keyClient.retrieveKeyUsingWrappedPassphrase(req.getKeyId(),
+ Utils.base64decode(req.getTransWrappedSessionKey()),
+ Utils.base64decode(req.getSessionWrappedPassphrase()),
+ Utils.base64decode(req.getNonceData()));
+
+ } else if (req.getTransWrappedSessionKey() != null) {
+ keyData = keyCLI.keyClient.retrieveKey(req.getKeyId(),
+ Utils.base64decode(req.getTransWrappedSessionKey()));
+
+ } else {
+ keyData = keyCLI.keyClient.retrieveKey(req.getKeyId());
+ }
+
} else {
// Using command line options.
String keyId = cmd.getOptionValue("keyID");
String passphrase = cmd.getOptionValue("passphrase");
- try {
- if (passphrase != null) {
- keyData = keyCLI.keyClient.retrieveKeyByPassphrase(new KeyId(keyId), passphrase);
- } else {
- keyData = keyCLI.keyClient.retrieveKey(new KeyId(keyId));
- clientEncryption = false;
-
- // No need to return the encrypted data since encryption
- //is done locally.
- keyData.setEncryptedData(null);
- }
- } catch (Exception e) {
- System.err.println(e.getMessage());
- if (verbose)
- e.printStackTrace();
- System.exit(-1);
+
+ if (passphrase != null) {
+ keyData = keyCLI.keyClient.retrieveKeyByPassphrase(new KeyId(keyId), passphrase);
+
+ } else {
+ keyData = keyCLI.keyClient.retrieveKey(new KeyId(keyId));
+ clientEncryption = false;
+
+ // No need to return the encrypted data since encryption
+ // is done locally.
+ keyData.setEncryptedData(null);
}
}
String outputFilePath = cmd.getOptionValue("output");
if (outputFilePath != null) {
- try {
- JAXBContext context = JAXBContext.newInstance(Key.class);
- Marshaller marshaller = context.createMarshaller();
- marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
- marshaller.marshal(keyData, new File(outputFilePath));
- } catch (JAXBException e) {
- System.err.println(e.getMessage());
- if (verbose)
- e.printStackTrace();
- System.exit(-1);
- }
+ JAXBContext context = JAXBContext.newInstance(Key.class);
+ Marshaller marshaller = context.createMarshaller();
+ marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
+ marshaller.marshal(keyData, new File(outputFilePath));
+
} else {
MainCLI.printMessage("Retrieve Key Information");
printKeyData(keyData);
@@ -180,10 +156,14 @@ public class KeyRetrieveCLI extends CLI {
System.out.println(" Key Algorithm: " + key.getAlgorithm());
System.out.println(" Key Size: " + key.getSize());
System.out.println(" Nonce data: " + Utils.base64encode(key.getNonceData()));
- if(clientEncryption)
+
+ if (clientEncryption) {
System.out.println(" Encrypted Data:" + Utils.base64encode(key.getEncryptedData()));
- if (!clientEncryption)
+
+ } else {
System.out.println(" Actual archived data: " + Utils.base64encode(key.getData()));
+ }
+
if (key.getP12Data() != null) {
System.out.println(" Key data in PKCS12 format: " + key.getP12Data());
}