use of de.flexiprovider.api.keys.Key in project core by jcryptool.
the class AbstractKeyNodeContentProvider method getCipherElements.
private List<TableEntry> getCipherElements(Object inputElement) {
Key key = (Key) inputElement;
if (key == null)
return null;
List<TableEntry> cipherElements = new ArrayList<TableEntry>();
try {
Cipher cipher = Registry.getCipher(key.getAlgorithm());
if (cipher.getIV() != null)
cipherElements.add(new TableEntry(Messages.AbstractKeyNodeContentProvider_InitVector, cipher.getIV().toString()));
if (cipher.getBlockSize() != 0)
cipherElements.add(new TableEntry(Messages.AbstractKeyNodeContentProvider_BlockSize, Integer.toString(cipher.getBlockSize())));
try {
cipherElements.add(new TableEntry(Messages.AbstractKeyNodeContentProvider_CipherKeySize, Integer.toString(cipher.getKeySize(key))));
} catch (InvalidKeyException ex) {
LogUtil.logError(ex);
}
} catch (NoSuchAlgorithmException e) {
return cipherElements;
}
return cipherElements;
}
use of de.flexiprovider.api.keys.Key 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.keys.Key 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.keys.Key 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.keys.Key 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);
}
Aggregations