19 package org.sleuthkit.autopsy.modules.filetypeid;
21 import java.util.Arrays;
22 import java.util.logging.Level;
34 private final String mimeType;
35 private final Signature signature;
36 private final String interestingFilesSetName;
37 private final boolean alert;
50 FileType(String mimeType,
final Signature signature, String filesSetName,
boolean alert) {
51 this.mimeType = mimeType;
52 this.signature =
new Signature(signature.getSignatureBytes(), signature.getOffset(), signature.getType());
53 this.interestingFilesSetName = filesSetName;
62 String getMimeType() {
71 Signature getSignature() {
72 return new Signature(signature.getSignatureBytes(), signature.getOffset(), signature.getType());
82 return signature.containedIn(file);
91 boolean alertOnMatch() {
101 String getFilesSetName() {
102 return interestingFilesSetName;
111 static class Signature {
123 private final byte[] signatureBytes;
124 private final long offset;
125 private final Type type;
136 Signature(
final byte[] signatureBytes,
long offset, Type type) {
137 this.signatureBytes = Arrays.copyOf(signatureBytes, signatureBytes.length);
138 this.offset = offset;
147 byte[] getSignatureBytes() {
148 return Arrays.copyOf(signatureBytes, signatureBytes.length);
178 byte[] buffer =
new byte[signatureBytes.length];
179 int bytesRead = file.
read(buffer, offset, signatureBytes.length);
180 return ((bytesRead == signatureBytes.length) && (Arrays.equals(buffer, signatureBytes)));
187 Signature.logger.log(Level.WARNING,
"Error reading from file with objId = " + file.
getId(), ex);
final int read(byte[] buf, long offset, long len)
static Logger getLogger(String name)