/* Command.java -- a keytool command.
Copyright (C) 2004 Free Software Foundation, Inc.
This file is part of GNU Crypto.
GNU Crypto is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
GNU Crypto is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to the
Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA */
package gnu.crypto.tool.keytool;
import gnu.crypto.auth.callback.ConsoleCallbackHandler;
import java.io.IOException;
import java.security.KeyStore;
import java.security.Provider;
import java.util.Date;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.TextOutputCallback;
import javax.security.auth.callback.UnsupportedCallbackException;
class Command
{
// Fields.
// -------------------------------------------------------------------------
static final String DEFAULT_ALIAS = "mykey";
boolean armor;
boolean noKeystore;
int validity;
int verbose;
String alias;
String caAlias;
String file;
String outFile;
String storeType;
String certType;
String storeFile;
String secretStore;
CallbackHandler handler;
Date date;
String providerName;
Provider provider;
// Constructors.
// -------------------------------------------------------------------------
Command (Command previous)
{
armor = previous.armor;
noKeystore = previous.noKeystore;
validity = previous.validity;
verbose = previous.verbose;
alias = previous.alias;
caAlias = previous.caAlias;
file = previous.file;
outFile = previous.outFile;
storeType = previous.storeType;
certType = previous.certType;
storeFile = previous.storeFile;
secretStore = previous.secretStore;
date = previous.date;
handler = previous.handler;
providerName = previous.providerName;
provider = previous.provider;
}
Command()
{
validity = 365;
verbose = 0;
alias = DEFAULT_ALIAS;
storeType = KeyStore.getDefaultType();
certType = "X.509";
storeFile = (System.getProperty ("user.home") +
System.getProperty ("file.separator") +
".keystore");
date = new Date();
handler = new ConsoleCallbackHandler (System.err);
}
// Instance methods.
// -------------------------------------------------------------------------
public void run() throws Exception
{
throw new RuntimeException ("not implemented");
}
protected void println (String mesg)
throws UnsupportedCallbackException, IOException
{
handler.handle (new Callback[] {
new TextOutputCallback (TextOutputCallback.INFORMATION,
mesg + System.getProperty ("line.separator"))
});
}
protected void print (String mesg)
throws UnsupportedCallbackException, IOException
{
handler.handle (new TextOutputCallback[] {
new TextOutputCallback (TextOutputCallback.INFORMATION, mesg)
});
}
}