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;
46 @ServiceProvider(service = GeneralReportModule.class)
57 return "Save Tagged Hashes";
62 return "Adds hashes of tagged files to a hash set.";
77 return new HashesReportModuleSettings();
88 return configPanel.getConfiguration();
100 configPanel.setConfiguration((HashesReportModuleSettings) getDefaultConfiguration());
104 if (settings instanceof HashesReportModuleSettings) {
105 configPanel.setConfiguration((HashesReportModuleSettings) settings);
109 throw new IllegalArgumentException(
"Expected settings argument to be an instance of HashesReportModuleSettings");
113 "AddTaggedHashesToHashDb.error.noHashSetsSelected=No hash set selected for export.",
114 "AddTaggedHashesToHashDb.error.unableToOpenCase=Exception while getting open case.",
115 "AddTaggedHashesToHashDb.error.noTagsSelected=No tags selected for export."
128 progressPanel.
start();
131 HashDb hashSet = configPanel.getSelectedHashDatabase();
132 if (hashSet == null) {
133 logger.log(Level.WARNING,
"No hash set selected for export.");
142 List<TagName> tagNames = configPanel.getSelectedTagNames();
143 if (tagNames.isEmpty()) {
144 logger.log(Level.WARNING,
"No tags selected for export.");
150 ArrayList<String> failedExports =
new ArrayList<>();
151 for (TagName tagName : tagNames) {
159 for (ContentTag tag : tags) {
161 Content content = tag.getContent();
162 if (content instanceof AbstractFile) {
163 if (null != ((AbstractFile) content).getMd5Hash()) {
166 }
catch (TskCoreException ex) {
168 failedExports.add(tag.getContent().getName());
171 progressPanel.
updateStatusLabel(
"Unable to add the " + (tags.size() > 1 ?
"files" :
"file") +
" to the hash set. Hashes have not been calculated. Please configure and run an appropriate ingest module.");
176 }
catch (TskCoreException ex) {
181 if (!failedExports.isEmpty()) {
182 StringBuilder errorMessage =
new StringBuilder(
"Failed to export hashes for the following files: ");
183 for (
int i = 0; i < failedExports.size(); ++i) {
184 errorMessage.append(failedExports.get(i));
185 if (failedExports.size() > 1 && i < failedExports.size() - 1) {
186 errorMessage.append(
",");
188 if (i == failedExports.size() - 1) {
189 errorMessage.append(
".");
206 if (configPanel == null) {
207 configPanel =
new SaveTaggedHashesToHashDbConfigPanel();
SaveTaggedHashesToHashDbConfigPanel configPanel
ReportModuleSettings getDefaultConfiguration()
void setConfiguration(ReportModuleSettings settings)
void complete(ReportStatus reportStatus)
abstract String getHashSetName()
String getRelativeFilePath()
void setIndeterminate(boolean indeterminate)
SaveTaggedHashesToHashDb()
TagsManager getTagsManager()
JPanel getConfigurationPanel()
void generateReport(String reportPath, ReportProgressPanel progressPanel)
synchronized static Logger getLogger(String name)
static Case getCurrentCaseThrows()
void updateStatusLabel(String statusMessage)
ReportModuleSettings getConfiguration()
abstract void addHashes(Content content)