package org.eparapher.rcp.actions; import java.io.File; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.ui.IWorkbenchWindow; import org.eparapher.core.encryption.CMSEncryption; import org.eparapher.core.encryption.CMSEncryptionParameters; import org.eparapher.core.encryption.DefaultEncryptionParameters; import org.eparapher.core.encryption.GenericCypher; import org.eparapher.core.tools.DefaulteParapherParameters; import org.eparapher.rcp.tools.GUIIcons; import org.eparapher.rcp.tools.RCPGUI; public class CMSDecryptionAction extends GenericDecryptionAction { public static final String[] CMS_EXTENTION = { ".p7m", ".ent" }; public CMSDecryptionAction() { super(null, true, "CMS decryption"); } public CMSDecryptionAction(TreeViewer mviewer, boolean museWizard) { super(mviewer, museWizard, "CMS decryption"); } public CMSDecryptionAction(IWorkbenchWindow mwindow) { super(mwindow, "CMS decryption"); } public CMSDecryptionAction(String[] files, boolean museWizard) { super(null, museWizard, "CMS decryption"); filesForAction = files; } @Override void decryptFile(IProgressMonitor monitor, File file, GenericCypher cipher, DefaultEncryptionParameters encparams) { monitor.subTask("Decrypting "+file.getName()); cipher.decrypt(file.getAbsolutePath(), encparams); monitor.worked(1); } @Override GenericCypher getCypher() { return new CMSEncryption(); } @Override void postdecryption(IProgressMonitor monitor, GenericCypher cipher, DefaultEncryptionParameters encparams) { } @Override void predecryption(IProgressMonitor monitor, GenericCypher cipher, DefaultEncryptionParameters encparams) { } @Override void buildAction() { this.setId("DecryptAction"); this.setText("CMS decryption"); this.setToolTipText("Decrypt your private files"); this.setImageDescriptor(GUIIcons.DECRYPTION_ICON); this.setAccelerator(SWT.CTRL | 'R'); } @Override DefaulteParapherParameters getParameters() { CMSEncryptionParameters cmsencparams = new CMSEncryptionParameters(); cmsencparams.setCMSEncryptionParamsFromPreferences(); if (viewer !=null) cmsencparams.setFileSelection(getFileSelectionFromView()); if (filesForAction != null) cmsencparams.setFileSelection(getFileSelectionFromParameters()); return cmsencparams; } @Override boolean isFileWithCorrectFormat(File file2verify) { String filename = file2verify.getName(); for (int i = 0; i < CMS_EXTENTION.length; i++) { if (filename.toLowerCase().endsWith(CMS_EXTENTION[i])) return true; } return false; } }