/* (non-Javadoc)
   * @see org.eclipse.sequoyah.tfm.sign.core.extension.security.ISecurityManagement#generateCSR(java.lang.String, org.eclipse.core.runtime.IProgressMonitor)
   */
  public boolean generateCSR(String certFile, IProgressMonitor monitor) throws SignException {

    boolean cmdSuccessful = true;

    initializeKeytool();

    String[] cmdArgs =
        keytool.generateGenerateCSRCmd(
            certFile, aliaskey, ksType, ksLocation, ksPasswrd, getConsoleEncoding());
    Process p = keytool.execute(cmdArgs);

    BufferedReader cmdOutputStream = new BufferedReader(new InputStreamReader(p.getInputStream()));

    String cmdOutput;
    try {
      while ((cmdOutput = cmdOutputStream.readLine()) != null) {

        if (cmdOutput.toLowerCase().indexOf("error") >= 0) { // $NON-NLS-1$
          throw new SignException(
              NLS.bind(
                  Messages.SunSecurityManagement_defaultErrorMessage,
                  new String[] {
                    SignErrors.getErrorMessage(SignErrors.GENERIC_SECURITY_ERROR), cmdOutput
                  }));
        }
      }
    } catch (IOException ee) {
      throw new SignException(SignErrors.getErrorMessage(SignErrors.GENERIC_SECURITY_ERROR), ee);
    }
    return cmdSuccessful;
  }