19 package org.sleuthkit.autopsy.report.modules.taggedhashes;
21 import java.util.ArrayList;
22 import java.util.List;
23 import java.util.logging.Level;
25 import javax.swing.JPanel;
26 import org.openide.util.NbBundle.Messages;
27 import org.openide.util.lookup.ServiceProvider;
47 @ServiceProvider(service = GeneralReportModule.class)
58 return "Save Tagged Hashes";
63 return "Adds hashes of tagged files to a hash set.";
78 return new HashesReportModuleSettings();
89 return configPanel.getConfiguration();
101 configPanel.setConfiguration((HashesReportModuleSettings) getDefaultConfiguration());
105 if (settings instanceof HashesReportModuleSettings) {
106 configPanel.setConfiguration((HashesReportModuleSettings) settings);
110 throw new IllegalArgumentException(
"Expected settings argument to be an instance of HashesReportModuleSettings");
114 "AddTaggedHashesToHashDb.error.noHashSetsSelected=No hash set selected for export.",
115 "AddTaggedHashesToHashDb.error.unableToOpenCase=Exception while getting open case.",
116 "AddTaggedHashesToHashDb.error.noTagsSelected=No tags selected for export."
129 progressPanel.
start();
132 HashDb hashSet = configPanel.getSelectedHashDatabase();
133 if (hashSet == null) {
134 logger.log(Level.WARNING,
"No hash set selected for export.");
143 List<TagName> tagNames = configPanel.getSelectedTagNames();
144 if (tagNames.isEmpty()) {
145 logger.log(Level.WARNING,
"No tags selected for export.");
151 ArrayList<String> failedExports =
new ArrayList<>();
152 int notAddedCount = 0;
154 for (TagName tagName : tagNames) {
160 List<ContentTag> tags =
new ArrayList<>();
164 }
catch (TskCoreException ex) {
168 for (ContentTag tag : tags) {
170 Content content = tag.getContent();
171 if (content instanceof AbstractFile) {
172 if (null != ((AbstractFile) content).getMd5Hash()) {
177 }
catch (TskCoreException ex) {
179 failedExports.add(content.getName());
189 if (!failedExports.isEmpty()) {
190 StringBuilder errorMessage =
new StringBuilder(
"Failed to export hashes for the following file" + (failedExports.size() > 1 ?
" and " + (failedExports.size() - 1) +
" others: " :
": "));
191 errorMessage.append(failedExports.get(0));
205 if (configPanel == null) {
206 configPanel =
new SaveTaggedHashesToHashDbConfigPanel();
SaveTaggedHashesToHashDbConfigPanel configPanel
ReportModuleSettings getDefaultConfiguration()
void setConfiguration(ReportModuleSettings settings)
void complete(ReportStatus reportStatus)
abstract String getHashSetName()
void generateReport(GeneralReportSettings settings, ReportProgressPanel progressPanel)
String getRelativeFilePath()
void setIndeterminate(boolean indeterminate)
SaveTaggedHashesToHashDb()
TagsManager getTagsManager()
JPanel getConfigurationPanel()
synchronized static Logger getLogger(String name)
static Case getCurrentCaseThrows()
void updateStatusLabel(String statusMessage)
ReportModuleSettings getConfiguration()
abstract void addHashes(Content content)