use of de.flexiprovider.api.exceptions.InvalidAlgorithmParameterException in project core by jcryptool.
the class AsymmetricBlockCipherEngine method init.
@Override
public KeyObject init(IFlexiProviderOperation operation) {
// $NON-NLS-1$
LogUtil.logInfo("initializing asymmetric block cipher engine");
this.operation = operation;
char[] password = null;
Key key = null;
try {
cipher = Registry.getAsymmetricBlockCipher(operation.getAlgorithmDescriptor().getAlgorithmName());
if (operation.getOperation().equals(OperationType.ENCRYPT)) {
Certificate certificate = KeyStoreManager.getInstance().getCertificate(operation.getKeyStoreAlias());
key = (Key) certificate.getPublicKey();
cipher.initEncrypt(key, operation.getAlgorithmDescriptor().getAlgorithmParameterSpec(), FlexiProviderEnginesPlugin.getSecureRandom());
} else {
// password may be contained in the ActionItem, otherwise prompt
if (operation.getPassword() != null) {
password = operation.getPassword();
} else {
password = promptPassword();
}
if (password == null) {
return null;
}
key = (Key) KeyStoreManager.getInstance().getPrivateKey(operation.getKeyStoreAlias(), password);
cipher.initDecrypt(key, operation.getAlgorithmDescriptor().getAlgorithmParameterSpec());
}
// save in the operation if no exception occurred
operation.setPassword(password);
initialized = true;
} catch (NoSuchAlgorithmException e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, // $NON-NLS-1$
"NoSuchAlgorithmException while initializing an asymmetric block cipher engine", e, true);
return null;
} catch (InvalidKeyException e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, Messages.AsymmetricBlockCipherEngine_1, e, true);
return null;
} catch (InvalidAlgorithmParameterException e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, // $NON-NLS-1$
"InvalidAlgorithmParameterException while initializing an asymmetric block cipher engine", e, true);
return null;
} catch (UnrecoverableEntryException e) {
JCTMessageDialog.showInfoDialog(new Status(IStatus.INFO, FlexiProviderEnginesPlugin.PLUGIN_ID, Messages.ExAccessKeystorePassword, e));
return null;
} catch (Exception ex) {
LogUtil.logError(ex);
return null;
}
return new KeyObject(key, password);
}
use of de.flexiprovider.api.exceptions.InvalidAlgorithmParameterException in project core by jcryptool.
the class AsymmetricHybridCipherEngine method init.
@Override
public KeyObject init(IFlexiProviderOperation operation) {
// $NON-NLS-1$
LogUtil.logInfo("initializing asymmetric hybrid cipher engine");
this.operation = operation;
char[] password = null;
Key key = null;
try {
cipher = Registry.getAsymmetricHybridCipher(operation.getAlgorithmDescriptor().getAlgorithmName());
if (operation.getOperation().equals(OperationType.DECRYPT)) {
// password may be contained in the ActionItem, otherwise prompt
if (operation.getPassword() != null) {
password = operation.getPassword();
} else {
password = promptPassword();
}
if (password == null) {
return null;
}
key = (Key) KeyStoreManager.getInstance().getPrivateKey(operation.getKeyStoreAlias(), password);
cipher.initDecrypt(key, operation.getAlgorithmDescriptor().getAlgorithmParameterSpec());
} else {
Certificate certificate = KeyStoreManager.getInstance().getCertificate(operation.getKeyStoreAlias());
key = (Key) certificate.getPublicKey();
cipher.initEncrypt(key, operation.getAlgorithmDescriptor().getAlgorithmParameterSpec(), FlexiProviderEnginesPlugin.getSecureRandom());
}
// save in the operation if no exception occurred
operation.setPassword(password);
initialized = true;
} catch (NoSuchAlgorithmException e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, "NoSuchAlgorithmException while initializing a cipher engine", e, // $NON-NLS-1$
true);
return null;
} catch (InvalidKeyException e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, Messages.AsymmetricHybridCipherEngine_1, e, true);
return null;
} catch (InvalidAlgorithmParameterException e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, "InvalidAlgorithmParameterException while initializing a cipher engine", e, // $NON-NLS-1$
true);
return null;
} catch (UnrecoverableEntryException e) {
JCTMessageDialog.showInfoDialog(new Status(IStatus.INFO, FlexiProviderEnginesPlugin.PLUGIN_ID, Messages.ExAccessKeystorePassword, e));
return null;
} catch (UnsupportedOperationException e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, "UnsupportedOperationException while initializing a cipher engine", e, // $NON-NLS-1$
true);
return null;
} catch (Exception e) {
LogUtil.logError(e);
return null;
}
return new KeyObject(key, password);
}
use of de.flexiprovider.api.exceptions.InvalidAlgorithmParameterException in project core by jcryptool.
the class BlockCipherEngine method init.
@Override
public KeyObject init(IFlexiProviderOperation operation) {
// $NON-NLS-1$
LogUtil.logInfo("initializing block cipher engine");
this.operation = operation;
char[] password = new char[4];
Key key = null;
if (operation.useCustomKey()) {
try {
SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance(operation.getAlgorithmDescriptor().getAlgorithmName(), // $NON-NLS-1$
"FlexiCore");
SecretKeySpec keySpec = new SecretKeySpec(operation.getKeyBytes(), operation.getAlgorithmDescriptor().getAlgorithmName());
key = (Key) secretKeyFactory.generateSecret(keySpec);
} catch (Exception e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, "Exception while creating key", e, // $NON-NLS-1$
true);
return null;
}
} else {
// password may be contained in the ActionItem, otherwise prompt
if (operation.getPassword() != null) {
password = operation.getPassword();
} else {
password = promptPassword();
}
if (password != null) {
try {
key = (Key) KeyStoreManager.getInstance().getSecretKey(operation.getKeyStoreAlias(), password);
// save in the operation if no exception occurred
operation.setPassword(password);
} catch (UnrecoverableEntryException e) {
JCTMessageDialog.showInfoDialog(new Status(IStatus.INFO, FlexiProviderEnginesPlugin.PLUGIN_ID, Messages.ExAccessKeystorePassword, e));
return null;
} catch (Exception e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, "Exception while accessing a secret key", e, // $NON-NLS-1$
true);
return null;
}
}
}
if (key != null) {
try {
String fullCipherName = // Name of algorithm
operation.getAlgorithmDescriptor().getAlgorithmName() + // $NON-NLS-1$
"/" + // Name of mode
((BlockCipherDescriptor) operation.getAlgorithmDescriptor()).getMode() + // $NON-NLS-1$
"/" + // Name of padding
((BlockCipherDescriptor) operation.getAlgorithmDescriptor()).getPadding();
cipher = Registry.getBlockCipher(fullCipherName);
if (operation.getOperation().equals(OperationType.ENCRYPT)) {
((BlockCipher) cipher).initEncrypt(key, ((BlockCipherDescriptor) operation.getAlgorithmDescriptor()).getModeParameters(), operation.getAlgorithmDescriptor().getAlgorithmParameterSpec(), FlexiProviderEnginesPlugin.getSecureRandom());
} else {
((BlockCipher) cipher).initDecrypt(key, ((BlockCipherDescriptor) operation.getAlgorithmDescriptor()).getModeParameters(), operation.getAlgorithmDescriptor().getAlgorithmParameterSpec());
}
initialized = true;
} catch (NoSuchAlgorithmException e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, "NoSuchAlgorithmException while initializing a block cipher engine", e, // $NON-NLS-1$
true);
return null;
} catch (NoSuchPaddingException e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, "NoSuchPaddingException while initializing a block cipher engine", e, // $NON-NLS-1$
true);
return null;
} catch (InvalidKeyException e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, Messages.BlockCipherEngine_5, e, true);
return null;
} catch (InvalidAlgorithmParameterException e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, "InvalidAlgorithmParameterException while initializing a block cipher engine", e, // $NON-NLS-1$
true);
return null;
}
}
return new KeyObject(key, password);
}
use of de.flexiprovider.api.exceptions.InvalidAlgorithmParameterException in project core by jcryptool.
the class MacEngine method init.
@Override
public KeyObject init(IFlexiProviderOperation operation) {
// $NON-NLS-1$
LogUtil.logInfo("initializing mac engine");
this.operation = operation;
char[] password = null;
Key key = null;
// password may be contained in the ActionItem, otherwise prompt
if (operation.getPassword() != null) {
password = operation.getPassword();
} else if (!operation.useCustomKey()) {
// farndt - prompt only if custom key is not to be used
password = promptPassword();
}
if (password != null && !operation.useCustomKey()) {
try {
key = (Key) KeyStoreManager.getInstance().getSecretKey(operation.getKeyStoreAlias(), password);
// save in the operation if no exception occurred
operation.setPassword(password);
} catch (UnrecoverableEntryException e) {
JCTMessageDialog.showInfoDialog(new Status(IStatus.INFO, FlexiProviderEnginesPlugin.PLUGIN_ID, Messages.ExAccessKeystorePassword, e));
return null;
} catch (Exception e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, "Exception while accessing a secret key", e, // $NON-NLS-1$
true);
return null;
}
} else {
// farndt - use custom key
key = new CustomKey(operation.getKeyBytes());
}
if (key != null) {
try {
mac = Registry.getMAC(operation.getAlgorithmDescriptor().getAlgorithmName());
AlgorithmParameterSpec spec = operation.getAlgorithmDescriptor().getAlgorithmParameterSpec();
if (spec != null) {
mac.init((SecretKey) key, spec);
} else {
mac.init((SecretKey) key);
}
initialized = true;
} catch (NoSuchAlgorithmException e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, "NoSuchAlgorithmException while initializing a mac", e, // $NON-NLS-1$
true);
return null;
} catch (InvalidKeyException e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, Messages.MacEngine_2, e, true);
return null;
} catch (InvalidAlgorithmParameterException e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, "InvalidAlgorithmParameterException while initializing a mac", e, // $NON-NLS-1$
true);
return null;
}
}
return new KeyObject(key, password);
}
use of de.flexiprovider.api.exceptions.InvalidAlgorithmParameterException in project core by jcryptool.
the class SignatureEngine method init.
@Override
public KeyObject init(IFlexiProviderOperation operation) {
// $NON-NLS-1$
LogUtil.logInfo("initializing signature engine");
this.operation = operation;
char[] password = null;
KeyObject usedKey = null;
try {
signature = Registry.getSignature(operation.getAlgorithmDescriptor().getAlgorithmName());
AlgorithmParameterSpec spec = operation.getAlgorithmDescriptor().getAlgorithmParameterSpec();
if (spec != null) {
signature.setParameters(spec);
}
if (operation.getOperation().equals(OperationType.SIGN)) {
if (operation.getPassword() != null) {
password = operation.getPassword();
} else {
password = promptPassword();
}
if (password == null) {
return null;
}
Key privateKey = (Key) KeyStoreManager.getInstance().getPrivateKey(operation.getKeyStoreAlias(), password);
signature.initSign((PrivateKey) privateKey, FlexiProviderEnginesPlugin.getSecureRandom());
usedKey = new KeyObject(privateKey, password);
// save in the operation if no exception occurred
operation.setPassword(password);
} else {
Certificate certificate = KeyStoreManager.getInstance().getCertificate(operation.getKeyStoreAlias());
Key publicKey = (Key) certificate.getPublicKey();
signature.initVerify((PublicKey) publicKey);
usedKey = new KeyObject(publicKey, password);
}
initialized = true;
} catch (NoSuchAlgorithmException e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, "NoSuchAlgorithmException while initializing a signature", e, // $NON-NLS-1$
true);
return null;
} catch (InvalidAlgorithmParameterException e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, "InvalidAlgorithmParameterException while initializing a signature", e, // $NON-NLS-1$
true);
return null;
} catch (InvalidKeyException e) {
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, Messages.SignatureEngine_5, e, true);
return null;
} catch (UnrecoverableEntryException e) {
JCTMessageDialog.showInfoDialog(new Status(IStatus.INFO, FlexiProviderEnginesPlugin.PLUGIN_ID, Messages.ExAccessKeystorePassword, e));
return null;
} catch (Exception e) {
// $NON-NLS-1$
LogUtil.logError(FlexiProviderEnginesPlugin.PLUGIN_ID, "Exception while initializing a signature", e, true);
return null;
}
return usedKey;
}
Aggregations