diff --git a/Case/src/org/sleuthkit/autopsy/casemodule/layer.xml b/Case/src/org/sleuthkit/autopsy/casemodule/layer.xml
index 25182317bd..fd6b4dd453 100644
--- a/Case/src/org/sleuthkit/autopsy/casemodule/layer.xml
+++ b/Case/src/org/sleuthkit/autopsy/casemodule/layer.xml
@@ -56,8 +56,6 @@
-
-
@@ -146,22 +144,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -188,11 +171,6 @@
-
-
-
-
-
diff --git a/Case/src/org/sleuthkit/autopsy/hashdatabase/HashDbIngestService.java b/Case/src/org/sleuthkit/autopsy/hashdatabase/HashDbIngestService.java
deleted file mode 100644
index 69e2d7b916..0000000000
--- a/Case/src/org/sleuthkit/autopsy/hashdatabase/HashDbIngestService.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Autopsy Forensic Browser
- *
- * Copyright 2011 Basis Technology Corp.
- * Contact: carrier sleuthkit org
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-
-package org.sleuthkit.autopsy.hashdatabase;
-
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import org.sleuthkit.autopsy.ingest.IngestManager;
-import org.sleuthkit.autopsy.ingest.IngestServiceFsContent;
-import org.sleuthkit.datamodel.FsContent;
-
-public class HashDbIngestService implements IngestServiceFsContent {
-
- private static HashDbIngestService instance = null;
-
- private static String SERVICE_NAME = "Hash Db";
-
- private static final Logger logger = Logger.getLogger(HashDbIngestService.class.getName());
-
- private HashDbIngestService() {
-
- }
-
- public static synchronized HashDbIngestService getDefault() {
- if (instance == null) {
- instance = new HashDbIngestService();
- }
- return instance;
- }
-
- @Override
- public void process(FsContent fsContent) {
- logger.log(Level.INFO, "Processing fsContent: " + fsContent.getName());
- }
-
- @Override
- public void complete() {
- logger.log(Level.INFO, "complete()");
- }
-
- @Override
- public String getName() {
- return SERVICE_NAME;
- }
-
- @Override
- public void init(IngestManager manager) {
- logger.log(Level.INFO, "init()");
- }
-
- @Override
- public void stop() {
- logger.log(Level.INFO, "stop()");
- }
-
-
-
-}
diff --git a/HashDatabase/build.xml b/HashDatabase/build.xml
new file mode 100644
index 0000000000..2bc7c94855
--- /dev/null
+++ b/HashDatabase/build.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+ Builds, tests, and runs the project org.sleuthkit.autopsy.hashdatabase.
+
+
diff --git a/HashDatabase/manifest.mf b/HashDatabase/manifest.mf
new file mode 100644
index 0000000000..896d3ff7a6
--- /dev/null
+++ b/HashDatabase/manifest.mf
@@ -0,0 +1,6 @@
+Manifest-Version: 1.0
+OpenIDE-Module: org.sleuthkit.autopsy.hashdatabase
+OpenIDE-Module-Layer: org/sleuthkit/autopsy/hashdatabase/layer.xml
+OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/hashdatabase/Bundle.properties
+OpenIDE-Module-Specification-Version: 1.0
+
diff --git a/HashDatabase/nbproject/build-impl.xml b/HashDatabase/nbproject/build-impl.xml
new file mode 100644
index 0000000000..1a1de7ed0f
--- /dev/null
+++ b/HashDatabase/nbproject/build-impl.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ You must set 'suite.dir' to point to your containing module suite
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/HashDatabase/nbproject/genfiles.properties b/HashDatabase/nbproject/genfiles.properties
new file mode 100644
index 0000000000..384c2b7a9c
--- /dev/null
+++ b/HashDatabase/nbproject/genfiles.properties
@@ -0,0 +1,8 @@
+build.xml.data.CRC32=3540e213
+build.xml.script.CRC32=1308cb72
+build.xml.stylesheet.CRC32=a56c6a5b@1.46.2
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=3540e213
+nbproject/build-impl.xml.script.CRC32=a7a0d07a
+nbproject/build-impl.xml.stylesheet.CRC32=238281d1@1.46.2
diff --git a/HashDatabase/nbproject/project.properties b/HashDatabase/nbproject/project.properties
new file mode 100644
index 0000000000..17255bac6b
--- /dev/null
+++ b/HashDatabase/nbproject/project.properties
@@ -0,0 +1,2 @@
+javac.source=1.6
+javac.compilerargs=-Xlint -Xlint:-serial
diff --git a/HashDatabase/nbproject/project.xml b/HashDatabase/nbproject/project.xml
new file mode 100644
index 0000000000..cb76066b9f
--- /dev/null
+++ b/HashDatabase/nbproject/project.xml
@@ -0,0 +1,73 @@
+
+
+ org.netbeans.modules.apisupport.project
+
+
+ org.sleuthkit.autopsy.hashdatabase
+
+
+
+ org.openide.awt
+
+
+
+ 7.31.1
+
+
+
+ org.openide.dialogs
+
+
+
+ 7.20.1
+
+
+
+ org.openide.util
+
+
+
+ 8.15.1
+
+
+
+ org.sleuthkit.autopsy.casemodule
+
+
+
+ 1
+ 1.0
+
+
+
+ org.sleuthkit.autopsy.coreutils
+
+
+
+ 0-1
+ 0.0
+
+
+
+ org.sleuthkit.autopsy.datamodel
+
+
+
+ 1
+ 1.0
+
+
+
+ org.sleuthkit.autopsy.ingest
+
+
+
+ 0-1
+ 1.0
+
+
+
+
+
+
+
diff --git a/HashDatabase/nbproject/suite.properties b/HashDatabase/nbproject/suite.properties
new file mode 100644
index 0000000000..29d7cc9bd6
--- /dev/null
+++ b/HashDatabase/nbproject/suite.properties
@@ -0,0 +1 @@
+suite.dir=${basedir}/..
diff --git a/Case/src/org/sleuthkit/autopsy/hashdatabase/Bundle.properties b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/Bundle.properties
similarity index 74%
rename from Case/src/org/sleuthkit/autopsy/hashdatabase/Bundle.properties
rename to HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/Bundle.properties
index 4e1a794753..ab3c6173d9 100644
--- a/Case/src/org/sleuthkit/autopsy/hashdatabase/Bundle.properties
+++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/Bundle.properties
@@ -1,2 +1,3 @@
+OpenIDE-Module-Name=HashDatabase
HashDatabaseManagementPanel.okayButton.text=Okay
HashDbPanel.fileSelectButton.text=Select...\n
diff --git a/Case/src/org/sleuthkit/autopsy/hashdatabase/HashDb.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDb.java
similarity index 100%
rename from Case/src/org/sleuthkit/autopsy/hashdatabase/HashDb.java
rename to HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDb.java
diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbIngestService.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbIngestService.java
new file mode 100644
index 0000000000..ae1731fbe0
--- /dev/null
+++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbIngestService.java
@@ -0,0 +1,111 @@
+/*
+ * Autopsy Forensic Browser
+ *
+ * Copyright 2011 Basis Technology Corp.
+ * Contact: carrier sleuthkit org
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+
+package org.sleuthkit.autopsy.hashdatabase;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.sleuthkit.autopsy.casemodule.Case;
+import org.sleuthkit.autopsy.ingest.IngestManager;
+import org.sleuthkit.autopsy.ingest.IngestMessage;
+import org.sleuthkit.autopsy.ingest.IngestServiceFsContent;
+import org.sleuthkit.datamodel.FsContent;
+import org.sleuthkit.datamodel.SleuthkitCase;
+import org.sleuthkit.datamodel.TskException;
+
+public class HashDbIngestService implements IngestServiceFsContent {
+
+ private static HashDbIngestService instance = null;
+
+ private static final Logger logger = Logger.getLogger(HashDbIngestService.class.getName());
+
+ private IngestManager manager;
+
+ private SleuthkitCase skCase;
+
+ private HashDbIngestService() {
+
+ }
+
+ public static synchronized HashDbIngestService getDefault() {
+ if (instance == null) {
+ instance = new HashDbIngestService();
+ }
+ return instance;
+ }
+
+
+ private final static String NAME = "Hash Ingest Service";
+ /**
+ * notification from manager that brand new processing should be initiated.
+ * Service loads its configuration and performs initialization
+ *
+ * @param IngestManager handle to the manager to postMessage() to
+ */
+ @Override
+ public void init(IngestManager manager){
+ logger.log(Level.INFO, "init()");
+ this.manager = manager;
+ this.skCase = Case.getCurrentCase().getSleuthkitCase();
+ }
+
+ /**
+ * notification from manager that there is no more content to process and all work is done.
+ * Service performs any clean-up, notifies viewers and may also write results to the black-board
+ */
+ @Override
+ public void complete(){
+ logger.log(Level.INFO, "complete()");
+ }
+
+ /**
+ * notification from manager to stop processing due to some interruption (user, error, exception)
+ */
+ @Override
+ public void stop(){
+ logger.log(Level.INFO, "stop()");
+ }
+
+ /**
+ * get specific name of the service
+ * should be unique across services, a user-friendly name of the service shown in GUI
+ */
+ @Override
+ public String getName(){
+ return NAME;
+ }
+
+ @Override
+ public void process(FsContent fsContent){
+ logger.log(Level.INFO, "Processing fsContent: " + fsContent.getName());
+ try{
+ long status = skCase.analyzeFileMd5(fsContent);
+ if(status == 1){
+ manager.postMessage(IngestMessage.createDataMessage(123, this, "Found known file", null));
+ }else if(status == 2){
+ manager.postMessage(IngestMessage.createDataMessage(123, this, "Found known bad file", null));
+ }
+ } catch (TskException e){
+ logger.log(Level.SEVERE, "Couldn't analyze file - see sleuthkit log for details");
+ }
+ }
+
+}
diff --git a/Case/src/org/sleuthkit/autopsy/hashdatabase/HashDbMgmtAction.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbMgmtAction.java
similarity index 100%
rename from Case/src/org/sleuthkit/autopsy/hashdatabase/HashDbMgmtAction.java
rename to HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbMgmtAction.java
diff --git a/Case/src/org/sleuthkit/autopsy/hashdatabase/HashDbMgmtPanel.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbMgmtPanel.java
similarity index 100%
rename from Case/src/org/sleuthkit/autopsy/hashdatabase/HashDbMgmtPanel.java
rename to HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbMgmtPanel.java
diff --git a/Case/src/org/sleuthkit/autopsy/hashdatabase/HashDbPanel.form b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbPanel.form
similarity index 98%
rename from Case/src/org/sleuthkit/autopsy/hashdatabase/HashDbPanel.form
rename to HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbPanel.form
index 1f12ade034..8456f623db 100644
--- a/Case/src/org/sleuthkit/autopsy/hashdatabase/HashDbPanel.form
+++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbPanel.form
@@ -1,4 +1,4 @@
-
+