Sleuth Kit Java Bindings (JNI)  4.11.0
Java bindings for using The Sleuth Kit
BlackboardAttribute.java
Go to the documentation of this file.
1 /*
2  * Sleuth Kit Data Model
3  *
4  * Copyright 2011-2021 Basis Technology Corp.
5  * Contact: carrier <at> sleuthkit <dot> org
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 package org.sleuthkit.datamodel;
20 
21 import java.io.Serializable;
22 import java.util.Arrays;
23 import java.util.Collections;
24 import java.util.List;
25 import java.util.Objects;
26 import java.util.ResourceBundle;
27 import java.util.TimeZone;
28 import java.util.logging.Level;
29 import java.util.logging.Logger;
30 
45 public class BlackboardAttribute extends AbstractAttribute {
46 
47  private static final Logger LOGGER = Logger.getLogger(BlackboardAttribute.class.getName());
48 
49  private static final ResourceBundle bundle = ResourceBundle.getBundle("org.sleuthkit.datamodel.Bundle");
50 
51  private String context;
52  private String sources;
53 
54  private long artifactID;
55 
56  // Cached parent artifact. This field is populated lazily upon the first
57  // call to getParentArtifact().
58  private BlackboardArtifact parentArtifact;
59 
60  // The parent data source is defined as being
61  // the data source of the parent artifact.
62  private Long parentDataSourceID;
63 
76  public BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, int valueInt) throws IllegalArgumentException {
77  super(new BlackboardAttribute.Type(attributeType), valueInt);
78  this.sources = replaceNulls(source);
79  this.context = "";
80  }
81 
94  public BlackboardAttribute(Type attributeType, String source, int valueInt) throws IllegalArgumentException {
95  super(attributeType, valueInt);
96  this.sources = replaceNulls(source);
97  this.context = "";
98  }
99 
115  public BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, long valueLong) throws IllegalArgumentException {
116  super(new BlackboardAttribute.Type(attributeType), valueLong);
117  this.sources = replaceNulls(source);
118  this.context = "";
119  }
120 
135  public BlackboardAttribute(Type attributeType, String source, long valueLong) throws IllegalArgumentException {
136  super(attributeType, valueLong);
137  this.sources = replaceNulls(source);
138  this.context = "";
139  }
140 
153  public BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, double valueDouble) throws IllegalArgumentException {
154  super(new BlackboardAttribute.Type(attributeType), valueDouble);
155  this.sources = replaceNulls(source);
156  this.context = "";
157  }
158 
171  public BlackboardAttribute(Type attributeType, String source, double valueDouble) throws IllegalArgumentException {
172  super(attributeType, valueDouble);
173  this.sources = replaceNulls(source);
174  this.context = "";
175  }
176 
191  public BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, String valueString) throws IllegalArgumentException {
192  super(new BlackboardAttribute.Type(attributeType), valueString);
193  this.sources = replaceNulls(source);
194  this.context = "";
195  }
196 
209  public BlackboardAttribute(Type attributeType, String source, String valueString) throws IllegalArgumentException {
210  super(attributeType, valueString);
211  this.sources = replaceNulls(source);
212  this.context = "";
213  }
214 
227  public BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, byte[] valueBytes) throws IllegalArgumentException {
228  super(new BlackboardAttribute.Type(attributeType), valueBytes);
229  this.sources = replaceNulls(source);
230  this.context = "";
231  }
232 
245  public BlackboardAttribute(Type attributeType, String source, byte[] valueBytes) throws IllegalArgumentException {
246  super(attributeType, valueBytes);
247  this.sources = replaceNulls(source);
248  this.context = "";
249  }
250 
258  public long getArtifactID() {
259  return artifactID;
260  }
261 
267  void setArtifactId(long artifactID) {
268  this.artifactID = artifactID;
269  }
270 
276  public List<String> getSources() {
277  if (null != sources && !this.sources.isEmpty()) {
278  List<String> modules = Arrays.asList(sources.split(","));
279  return modules;
280  } else {
281  return Collections.emptyList();
282  }
283  }
284 
292  public void addSource(String source) throws TskCoreException {
293  this.sources = getCaseDatabase().addSourceToArtifactAttribute(this, source);
294  }
295 
308  if (parentArtifact == null) {
309  parentArtifact = getCaseDatabase().getBlackboardArtifact(getArtifactID());
310  }
311  return parentArtifact;
312  }
313 
314  @Override
315  public int hashCode() {
316  return Objects.hash(
317  this.getAttributeType(), this.getValueInt(), this.getValueLong(), this.getValueDouble(),
318  this.getValueString(), this.getValueBytes(), this.getSources(), getContext());
319  }
320 
321  @Override
322  public boolean equals(Object that) {
323  if (this == that) {
324  return true;
325  } else if (that instanceof BlackboardAttribute) {
326  BlackboardAttribute other = (BlackboardAttribute) that;
327  Object[] thisObject = new Object[]{this.getSources(), this.getContext()};
328  Object[] otherObject = new Object[]{other.getSources(), other.getContext()};
329  return areValuesEqual(that) && Objects.deepEquals(thisObject, otherObject);
330  } else {
331  return false;
332  }
333  }
334 
335  @Override
336  public String toString() {
337  return "BlackboardAttribute{" + "artifactID=" + getArtifactID() + ", attributeType=" + getAttributeType().toString() + ", moduleName=" + getSources() + ", context=" + context + ", valueInt=" + getValueInt() + ", valueLong=" + getValueLong() + ", valueDouble=" + getValueDouble() + ", valueString=" + getValueString() + ", valueBytes=" + Arrays.toString(getValueBytes()) + ", Case=" + getCaseDatabase() + '}'; //NON-NLS
338  }
339 
345  @Override
346  public String getDisplayString() {
347  switch (getAttributeType().getValueType()) {
348  case DATETIME: {
349  try {
350  if (parentDataSourceID == null) {
352  parentDataSourceID = parent.getDataSourceObjectID();
353  }
354  final Content dataSource = parentDataSourceID != null ? getCaseDatabase().getContentById(parentDataSourceID) : null;
355  if ((dataSource != null) && (dataSource instanceof Image)) {
356  // return the date/time string in the timezone associated with the datasource,
357  Image image = (Image) dataSource;
358  TimeZone tzone = TimeZone.getTimeZone(image.getTimeZone());
359  return TimeUtilities.epochToTime(getValueLong(), tzone);
360  }
361  } catch (TskException ex) {
362  LOGGER.log(Level.WARNING, "Could not get timezone for image", ex); //NON-NLS
363  }
364  // return time string in default timezone
366  }
367  default: {
368  return super.getDisplayString();
369  }
370  }
371  }
372 
391  BlackboardAttribute(long artifactID, BlackboardAttribute.Type attributeType, String source, String context,
392  int valueInt, long valueLong, double valueDouble, String valueString, byte[] valueBytes,
393  SleuthkitCase sleuthkitCase) {
394 
395  super(attributeType, valueInt, valueLong, valueDouble, valueString, valueBytes, sleuthkitCase);
396  this.artifactID = artifactID;
397  this.sources = replaceNulls(source);
398  this.context = replaceNulls(context);
399  }
400 
407  void setParentDataSourceID(Long parentDataSourceID) {
408  this.parentDataSourceID = parentDataSourceID;
409  }
410 
419  String getSourcesCSV() {
420  return sources;
421  }
422 
426  public static final class Type implements Serializable {
427 
428  public static final Type TSK_URL = new Type(1, "TSK_URL", bundle.getString("BlackboardAttribute.tskUrl.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
429  public static final Type TSK_DATETIME = new Type(2, "TSK_DATETIME", bundle.getString("BlackboardAttribute.tskDatetime.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DATETIME);
430  public static final Type TSK_NAME = new Type(3, "TSK_NAME", bundle.getString("BlackboardAttribute.tskName.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
431  public static final Type TSK_PROG_NAME = new Type(4, "TSK_PROG_NAME", bundle.getString("BlackboardAttribute.tskProgName.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
432  public static final Type TSK_VALUE = new Type(6, "TSK_VALUE", bundle.getString("BlackboardAttribute.tskValue.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
433  public static final Type TSK_FLAG = new Type(7, "TSK_FLAG", bundle.getString("BlackboardAttribute.tskFlag.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
434  public static final Type TSK_PATH = new Type(8, "TSK_PATH", bundle.getString("BlackboardAttribute.tskPath.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
435  public static final Type TSK_KEYWORD = new Type(10, "TSK_KEYWORD", bundle.getString("BlackboardAttribute.tskKeyword.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
436  public static final Type TSK_KEYWORD_REGEXP = new Type(11, "TSK_KEYWORD_REGEXP", bundle.getString("BlackboardAttribute.tskKeywordRegexp.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
437  public static final Type TSK_KEYWORD_PREVIEW = new Type(12, "TSK_KEYWORD_PREVIEW", bundle.getString("BlackboardAttribute.tskKeywordPreview.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
438 
439  // TSK_KEYWORD_SET (id: 13) has been deprecated. Please use TSK_SET_NAME instead.
440  public static final Type TSK_USER_NAME = new Type(14, "TSK_USER_NAME", bundle.getString("BlackboardAttribute.tskUserName.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
441  public static final Type TSK_DOMAIN = new Type(15, "TSK_DOMAIN", bundle.getString("BlackboardAttribute.tskDomain.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
442  public static final Type TSK_PASSWORD = new Type(16, "TSK_PASSWORD", bundle.getString("BlackboardAttribute.tskPassword.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
443  public static final Type TSK_NAME_PERSON = new Type(17, "TSK_NAME_PERSON", bundle.getString("BlackboardAttribute.tskNamePerson.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
444  public static final Type TSK_DEVICE_MODEL = new Type(18, "TSK_DEVICE_MODEL", bundle.getString("BlackboardAttribute.tskDeviceModel.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
445  public static final Type TSK_DEVICE_MAKE = new Type(19, "TSK_DEVICE_MAKE", bundle.getString("BlackboardAttribute.tskDeviceMake.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
446  public static final Type TSK_DEVICE_ID = new Type(20, "TSK_DEVICE_ID", bundle.getString("BlackboardAttribute.tskDeviceId.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
447  public static final Type TSK_EMAIL = new Type(21, "TSK_EMAIL", bundle.getString("BlackboardAttribute.tskEmail.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
448  public static final Type TSK_HASH_MD5 = new Type(22, "TSK_HASH_MD5", bundle.getString("BlackboardAttribute.tskHashMd5.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
449  public static final Type TSK_HASH_SHA1 = new Type(23, "TSK_HASH_SHA1", bundle.getString("BlackboardAttribute.tskHashSha1.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
450  public static final Type TSK_HASH_SHA2_256 = new Type(24, "TSK_HASH_SHA2_256", bundle.getString("BlackboardAttribute.tskHashSha225.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
451  public static final Type TSK_HASH_SHA2_512 = new Type(25, "TSK_HASH_SHA2_512", bundle.getString("BlackboardAttribute.tskHashSha2512.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
452  public static final Type TSK_TEXT = new Type(26, "TSK_TEXT", bundle.getString("BlackboardAttribute.tskText.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
453  public static final Type TSK_TEXT_FILE = new Type(27, "TSK_TEXT_FILE", bundle.getString("BlackboardAttribute.tskTextFile.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
454  public static final Type TSK_TEXT_LANGUAGE = new Type(28, "TSK_TEXT_LANGUAGE", bundle.getString("BlackboardAttribute.tskTextLanguage.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
455  public static final Type TSK_ENTROPY = new Type(29, "TSK_ENTROPY", bundle.getString("BlackboardAttribute.tskEntropy.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DOUBLE);
456 
457  // TSK_HASHSET_NAME (id: 30) has been deprecated. Please use TSK_SET_NAME instead.
458  // TSK_INTERESTING_FILE (id: 31) has been deprecated. Please use TSK_INTERESTING_FILE_HIT instead.
459  public static final Type TSK_REFERRER = new Type(32, "TSK_REFERRER", bundle.getString("BlackboardAttribute.tskReferrer.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
460  public static final Type TSK_DATETIME_ACCESSED = new Type(33, "TSK_DATETIME_ACCESSED", bundle.getString("BlackboardAttribute.tskDateTimeAccessed.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DATETIME);
461  public static final Type TSK_IP_ADDRESS = new Type(34, "TSK_IP_ADDRESS", bundle.getString("BlackboardAttribute.tskIpAddress.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
462  public static final Type TSK_PHONE_NUMBER = new Type(35, "TSK_PHONE_NUMBER", bundle.getString("BlackboardAttribute.tskPhoneNumber.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
463  public static final Type TSK_PATH_ID = new Type(36, "TSK_PATH_ID", bundle.getString("BlackboardAttribute.tskPathId.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.LONG);
464  public static final Type TSK_SET_NAME = new Type(37, "TSK_SET_NAME", bundle.getString("BlackboardAttribute.tskSetName.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
465 
466  // TSK_ENCRYPTION_DETECTED (id: 38) has been deprecated. Please use TSK_ENCRYPTION_DETECTED as an artifact.
467  public static final Type TSK_MALWARE_DETECTED = new Type(39, "TSK_MALWARE_DETECTED", bundle.getString("BlackboardAttribute.tskMalwareDetected.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.INTEGER);
468  public static final Type TSK_STEG_DETECTED = new Type(40, "TSK_STEG_DETECTED", bundle.getString("BlackboardAttribute.tskStegDetected.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.INTEGER);
469  public static final Type TSK_EMAIL_TO = new Type(41, "TSK_EMAIL_TO", bundle.getString("BlackboardAttribute.tskEmailTo.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
470  public static final Type TSK_EMAIL_CC = new Type(42, "TSK_EMAIL_CC", bundle.getString("BlackboardAttribute.tskEmailCc.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
471  public static final Type TSK_EMAIL_BCC = new Type(43, "TSK_EMAIL_BCC", bundle.getString("BlackboardAttribute.tskEmailBcc.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
472  public static final Type TSK_EMAIL_FROM = new Type(44, "TSK_EMAIL_FROM", bundle.getString("BlackboardAttribute.tskEmailFrom.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
473  public static final Type TSK_EMAIL_CONTENT_PLAIN = new Type(45, "TSK_EMAIL_CONTENT_PLAIN", bundle.getString("BlackboardAttribute.tskEmailContentPlain.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
474  public static final Type TSK_EMAIL_CONTENT_HTML = new Type(46, "TSK_EMAIL_CONTENT_HTML", bundle.getString("BlackboardAttribute.tskEmailContentHtml.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
475  public static final Type TSK_EMAIL_CONTENT_RTF = new Type(47, "TSK_EMAIL_CONTENT_RTF", bundle.getString("BlackboardAttribute.tskEmailContentRtf.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
476  public static final Type TSK_MSG_ID = new Type(48, "TSK_MSG_ID", bundle.getString("BlackboardAttribute.tskMsgId.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
477  public static final Type TSK_MSG_REPLY_ID = new Type(49, "TSK_MSG_REPLY_ID", bundle.getString("BlackboardAttribute.tskMsgReplyId.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
478  public static final Type TSK_DATETIME_RCVD = new Type(50, "TSK_DATETIME_RCVD", bundle.getString("BlackboardAttribute.tskDateTimeRcvd.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DATETIME);
479  public static final Type TSK_DATETIME_SENT = new Type(51, "TSK_DATETIME_SENT", bundle.getString("BlackboardAttribute.tskDateTimeSent.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DATETIME);
480  public static final Type TSK_SUBJECT = new Type(52, "TSK_SUBJECT", bundle.getString("BlackboardAttribute.tskSubject.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
481  public static final Type TSK_TITLE = new Type(53, "TSK_TITLE", bundle.getString("BlackboardAttribute.tskTitle.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
482  public static final Type TSK_GEO_LATITUDE = new Type(54, "TSK_GEO_LATITUDE", bundle.getString("BlackboardAttribute.tskGeoLatitude.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DOUBLE);
483  public static final Type TSK_GEO_LONGITUDE = new Type(55, "TSK_GEO_LONGITUDE", bundle.getString("BlackboardAttribute.tskGeoLongitude.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DOUBLE);
484  public static final Type TSK_GEO_VELOCITY = new Type(56, "TSK_GEO_VELOCITY", bundle.getString("BlackboardAttribute.tskGeoVelocity.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DOUBLE);
485  public static final Type TSK_GEO_ALTITUDE = new Type(57, "TSK_GEO_ALTITUDE", bundle.getString("BlackboardAttribute.tskGeoAltitude.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DOUBLE);
486  public static final Type TSK_GEO_BEARING = new Type(58, "TSK_GEO_BEARING", bundle.getString("BlackboardAttribute.tskGeoBearing.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
487  public static final Type TSK_GEO_HPRECISION = new Type(59, "TSK_GEO_HPRECISION", bundle.getString("BlackboardAttribute.tskGeoHPrecision.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DOUBLE);
488  public static final Type TSK_GEO_VPRECISION = new Type(60, "TSK_GEO_VPRECISION", bundle.getString("BlackboardAttribute.tskGeoVPrecision.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DOUBLE);
489  public static final Type TSK_GEO_MAPDATUM = new Type(61, "TSK_GEO_MAPDATUM", bundle.getString("BlackboardAttribute.tskGeoMapDatum.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
490 
491  // TSK_FILE_TYPE_SIG (id: 62) has been deprecated. Please use the mime type field of the AbstractFile object instead.
492  public static final Type TSK_FILE_TYPE_EXT = new Type(63, "TSK_FILE_TYPE_EXT", bundle.getString("BlackboardAttribute.tskFileTypeExt.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
493 
494  // TSK_TAGGED_ARTIFACT (id: 64) has been deprected. Please create a tag as an artifact.
495  // TSK_TAG_NAME (id: 65) has been deprecated. Please create a tag as an artifact.
496  public static final Type TSK_COMMENT = new Type(66, "TSK_COMMENT", bundle.getString("BlackboardAttribute.tskComment.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
497  public static final Type TSK_URL_DECODED = new Type(67, "TSK_URL_DECODED", bundle.getString("BlackboardAttribute.tskUrlDecoded.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
498  public static final Type TSK_DATETIME_CREATED = new Type(68, "TSK_DATETIME_CREATED", bundle.getString("BlackboardAttribute.tskDateTimeCreated.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DATETIME);
499  public static final Type TSK_DATETIME_MODIFIED = new Type(69, "TSK_DATETIME_MODIFIED", bundle.getString("BlackboardAttribute.tskDateTimeModified.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DATETIME);
500  public static final Type TSK_PROCESSOR_ARCHITECTURE = new Type(70, "TSK_PROCESSOR_ARCHITECTURE", bundle.getString("BlackboardAttribute.tskProcessorArchitecture.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
501  public static final Type TSK_VERSION = new Type(71, "TSK_VERSION", bundle.getString("BlackboardAttribute.tskVersion.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
502  public static final Type TSK_USER_ID = new Type(72, "TSK_USER_ID", bundle.getString("BlackboardAttribute.tskUserId.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
503  public static final Type TSK_DESCRIPTION = new Type(73, "TSK_DESCRIPTION", bundle.getString("BlackboardAttribute.tskDescription.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
504  public static final Type TSK_MESSAGE_TYPE = new Type(74, "TSK_MESSAGE_TYPE", bundle.getString("BlackboardAttribute.tskMessageType.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING); // SMS or MMS or IM ...
505  public static final Type TSK_PHONE_NUMBER_HOME = new Type(75, "TSK_PHONE_NUMBER_HOME", bundle.getString("BlackboardAttribute.tskPhoneNumberHome.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
506  public static final Type TSK_PHONE_NUMBER_OFFICE = new Type(76, "TSK_PHONE_NUMBER_OFFICE", bundle.getString("BlackboardAttribute.tskPhoneNumberOffice.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
507  public static final Type TSK_PHONE_NUMBER_MOBILE = new Type(77, "TSK_PHONE_NUMBER_MOBILE", bundle.getString("BlackboardAttribute.tskPhoneNumberMobile.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
508  public static final Type TSK_PHONE_NUMBER_FROM = new Type(78, "TSK_PHONE_NUMBER_FROM", bundle.getString("BlackboardAttribute.tskPhoneNumberFrom.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
509  public static final Type TSK_PHONE_NUMBER_TO = new Type(79, "TSK_PHONE_NUMBER_TO", bundle.getString("BlackboardAttribute.tskPhoneNumberTo.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
510  public static final Type TSK_DIRECTION = new Type(80, "TSK_DIRECTION", bundle.getString("BlackboardAttribute.tskDirection.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING); // Msg/Call direction: incoming, outgoing
511  public static final Type TSK_EMAIL_HOME = new Type(81, "TSK_EMAIL_HOME", bundle.getString("BlackboardAttribute.tskEmailHome.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
512  public static final Type TSK_EMAIL_OFFICE = new Type(82, "TSK_EMAIL_OFFICE", bundle.getString("BlackboardAttribute.tskEmailOffice.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
513  public static final Type TSK_DATETIME_START = new Type(83, "TSK_DATETIME_START", bundle.getString("BlackboardAttribute.tskDateTimeStart.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DATETIME); // start time of an event - call log, Calendar entry
514  public static final Type TSK_DATETIME_END = new Type(84, "TSK_DATETIME_END", bundle.getString("BlackboardAttribute.tskDateTimeEnd.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DATETIME); // end time of an event - call log, Calendar entry
515  public static final Type TSK_CALENDAR_ENTRY_TYPE = new Type(85, "TSK_CALENDAR_ENTRY_TYPE", bundle.getString("BlackboardAttribute.tskCalendarEntryType.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING); // meeting, task,
516  public static final Type TSK_LOCATION = new Type(86, "TSK_LOCATION", bundle.getString("BlackboardAttribute.tskLocation.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING); // Location string associated with an event - Conf Room Name, Address ....
517  public static final Type TSK_SHORTCUT = new Type(87, "TSK_SHORTCUT", bundle.getString("BlackboardAttribute.tskShortcut.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING); // Short Cut string - short code or dial string for Speed dial, a URL short cut - e.g. bitly string, Windows Desktop Short cut name etc.
518  public static final Type TSK_DEVICE_NAME = new Type(88, "TSK_DEVICE_NAME", bundle.getString("BlackboardAttribute.tskDeviceName.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING); // device name - a user assigned (usually) device name - such as "Joe's computer", "bob_win8", "BT Headset"
519  public static final Type TSK_CATEGORY = new Type(89, "TSK_CATEGORY", bundle.getString("BlackboardAttribute.tskCategory.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING); // category/type, possible value set varies by the artifact
520  public static final Type TSK_EMAIL_REPLYTO = new Type(90, "TSK_EMAIL_REPLYTO", bundle.getString("BlackboardAttribute.tskEmailReplyTo.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING); // ReplyTo address
521  public static final Type TSK_SERVER_NAME = new Type(91, "TSK_SERVER_NAME", bundle.getString("BlackboardAttribute.tskServerName.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING); // server name, e.g. a mail server name - "smtp.google.com", a DNS server name...
522  public static final Type TSK_COUNT = new Type(92, "TSK_COUNT", bundle.getString("BlackboardAttribute.tskCount.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.INTEGER); // Count related to the artifact
523  public static final Type TSK_MIN_COUNT = new Type(93, "TSK_MIN_COUNT", bundle.getString("BlackboardAttribute.tskMinCount.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.INTEGER); // Minimum number/count
524  public static final Type TSK_PATH_SOURCE = new Type(94, "TSK_PATH_SOURCE", bundle.getString("BlackboardAttribute.tskPathSource.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING); // Path to a source file related to the artifact
525  public static final Type TSK_PERMISSIONS = new Type(95, "TSK_PERMISSIONS", bundle.getString("BlackboardAttribute.tskPermissions.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING); // Permissions
526  public static final Type TSK_ASSOCIATED_ARTIFACT = new Type(96, "TSK_ASSOCIATED_ARTIFACT", bundle.getString("BlackboardAttribute.tskAssociatedArtifact.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.LONG); // Artifact ID of a related artifact
527  public static final Type TSK_ISDELETED = new Type(97, "TSK_ISDELETED", bundle.getString("BlackboardAttribute.tskIsDeleted.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING); // boolean to indicate that the artifact is recovered fom deleted content
528  public static final Type TSK_GEO_LATITUDE_START = new Type(98, "TSK_GEO_LATITUDE_START", bundle.getString("BlackboardAttribute.tskGeoLatitudeStart.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DOUBLE); // Starting location lattitude
529  public static final Type TSK_GEO_LATITUDE_END = new Type(99, "TSK_GEO_LATITUDE_END", bundle.getString("BlackboardAttribute.tskGeoLatitudeEnd.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DOUBLE); // Ending location lattitude
530  public static final Type TSK_GEO_LONGITUDE_START = new Type(100, "TSK_GEO_LONGITUDE_START", bundle.getString("BlackboardAttribute.tskGeoLongitudeStart.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DOUBLE); // Starting location longitude
531  public static final Type TSK_GEO_LONGITUDE_END = new Type(101, "TSK_GEO_LONGITUDE_END", bundle.getString("BlackboardAttribute.tskGeoLongitudeEnd.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DOUBLE); //Ending Location longitude
532  public static final Type TSK_READ_STATUS = new Type(102, "TSK_READ_STATUS", bundle.getString("BlackboardAttribute.tskReadStatus.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.INTEGER); // Message read status: 1 if read, 0 if unread
533  public static final Type TSK_LOCAL_PATH = new Type(103, "TSK_LOCAL_PATH", bundle.getString("BlackboardAttribute.tskLocalPath.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING); // Local path to a network drive
534  public static final Type TSK_REMOTE_PATH = new Type(104, "TSK_REMOTE_PATH", bundle.getString("BlackboardAttribute.tskRemotePath.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING); // Remote path of a network drive
535  public static final Type TSK_TEMP_DIR = new Type(105, "TSK_TEMP_DIR", bundle.getString("BlackboardAttribute.tskTempDir.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING); // Default temporary files directory
536  public static final Type TSK_PRODUCT_ID = new Type(106, "TSK_PRODUCT_ID", bundle.getString("BlackboardAttribute.tskProductId.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING); // Product ID
537  public static final Type TSK_OWNER = new Type(107, "TSK_OWNER", bundle.getString("BlackboardAttribute.tskOwner.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING); // Registered owner of a piece of software
538  public static final Type TSK_ORGANIZATION = new Type(108, "TSK_ORGANIZATION", bundle.getString("BlackboardAttribute.tskOrganization.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING); // Registered Organization for a piece of software
539  public static final Type TSK_CARD_NUMBER = new Type(109, "TSK_CARD_NUMBER", bundle.getString("BlackboardAttribute.tskCardNumber.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
540  public static final Type TSK_CARD_EXPIRATION = new Type(110, "TSK_CARD_EXPIRATION", bundle.getString("BlackboardAttribute.tskCardExpiration.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
541  public static final Type TSK_CARD_SERVICE_CODE = new Type(111, "TSK_CARD_SERVICE_CODE", bundle.getString("BlackboardAttribute.tskCardServiceCode.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
542  public static final Type TSK_CARD_DISCRETIONARY = new Type(112, "TSK_CARD_DISCRETIONARY", bundle.getString("BlackboardAttribute.tskCardDiscretionary.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
543  public static final Type TSK_CARD_LRC = new Type(113, "TSK_CARD_LRC", bundle.getString("BlackboardAttribute.tskCardLRC.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
544  public static final Type TSK_KEYWORD_SEARCH_DOCUMENT_ID = new Type(114, "TSK_KEYWORD_SEARCH_DOCUMENT_ID", bundle.getString("BlackboardAttribute.tskKeywordSearchDocumentID.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
545  public static final Type TSK_CARD_SCHEME = new Type(115, "TSK_CARD_SCHEME", bundle.getString("BlackboardAttribute.tskCardScheme.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
546  public static final Type TSK_CARD_TYPE = new Type(116, "TSK_CARD_TYPE", bundle.getString("BlackboardAttribute.tskCardType.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
547  public static final Type TSK_BRAND_NAME = new Type(117, "TSK_BRAND_NAME", bundle.getString("BlackboardAttribute.tskBrandName.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
548  public static final Type TSK_BANK_NAME = new Type(118, "TSK_BANK_NAME", bundle.getString("BlackboardAttribute.tskBankName.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
549  public static final Type TSK_COUNTRY = new Type(119, "TSK_COUNTRY", bundle.getString("BlackboardAttribute.tskCountry.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
550  public static final Type TSK_CITY = new Type(120, "TSK_CITY", bundle.getString("BlackboardAttribute.tskCity.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
551  public static final Type TSK_ACCOUNT_TYPE = new Type(121, "TSK_ACCOUNT_TYPE", bundle.getString("BlackboardAttribute.tskAccountType.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
552 
556  public static final Type TSK_KEYWORD_SEARCH_TYPE = new Type(122, "TSK_KEYWORD_SEARCH_TYPE", bundle.getString("BlackboardAttribute.tskKeywordSearchType.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.INTEGER);
557  public static final Type TSK_HEADERS = new Type(123, "TSK_HEADERS", bundle.getString("BlackboardAttribute.tskHeaders.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
558  public static final Type TSK_ID = new Type(124, "TSK_ID", bundle.getString("BlackboardAttribute.tskId.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
559  public static final Type TSK_SSID = new Type(125, "TSK_SSID", bundle.getString("BlackboardAttribute.tskSsid.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
560  public static final Type TSK_BSSID = new Type(126, "TSK_BSSID", bundle.getString("BlackboardAttribute.tskBssid.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
561  public static final Type TSK_MAC_ADDRESS = new Type(127, "TSK_MAC_ADDRESS", bundle.getString("BlackboardAttribute.tskMacAddress.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
562  public static final Type TSK_IMEI = new Type(128, "TSK_IMEI", bundle.getString("BlackboardAttribute.tskImei.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
563  public static final Type TSK_IMSI = new Type(129, "TSK_IMSI", bundle.getString("BlackboardAttribute.tskImsi.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
564  public static final Type TSK_ICCID = new Type(130, "TSK_ICCID", bundle.getString("BlackboardAttribute.tskIccid.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
565  public static final Type TSK_THREAD_ID = new Type(131, "TSK_THREAD_ID", bundle.getString("BlackboardAttribute.tskthreadid.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
570  public static final Type TSK_TL_EVENT_TYPE = new Type(132, "TSK_TL_EVENT_TYPE", bundle.getString("BlackboardAttribute.tskTLEventType.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.LONG);
571  public static final Type TSK_DATETIME_DELETED = new Type(133, "TSK_DATETIME_DELETED", bundle.getString("BlackboardAttribute.tskdatetimedeleted.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DATETIME);
572  public static final Type TSK_DATETIME_PASSWORD_RESET = new Type(134, "TSK_DATETIME_PASSWORD_RESET", bundle.getString("BlackboardAttribute.tskdatetimepwdreset.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DATETIME);
573  public static final Type TSK_DATETIME_PASSWORD_FAIL = new Type(135, "TSK_DATETIME_PWD_FAIL", bundle.getString("BlackboardAttribute.tskdatetimepwdfail.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DATETIME);
574  public static final Type TSK_DISPLAY_NAME = new Type(136, "TSK_DISPLAY_NAME", bundle.getString("BlackboardAttribute.tskdisplayname.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
575  public static final Type TSK_PASSWORD_SETTINGS = new Type(137, "TSK_PASSWORD_SETTINGS", bundle.getString("BlackboardAttribute.tskpasswordsettings.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
576  public static final Type TSK_ACCOUNT_SETTINGS = new Type(138, "TSK_ACCOUNT_SETTINGS", bundle.getString("BlackboardAttribute.tskaccountsettings.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
577  public static final Type TSK_PASSWORD_HINT = new Type(139, "TSK_PASSWORD_HINT", bundle.getString("BlackboardAttribute.tskpasswordhint.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
578  public static final Type TSK_GROUPS = new Type(140, "TSK_GROUPS", bundle.getString("BlackboardAttribute.tskgroups.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
579  /*
580  * Use
581  * org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments
582  * to create and process TSK_ATTACHMENTS attributes.
583  */
584  public static final Type TSK_ATTACHMENTS = new Type(141, "TSK_ATTACHMENTS", bundle.getString("BlackboardAttribute.tskattachments.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.JSON);
585  /*
586  * Use org.sleuthkit.datamodel.blackboardutils.attributes.GeoTrackPoints
587  * to create and process TSK_GEO_TRACKPOINTS attributes.
588  */
589  public static final Type TSK_GEO_TRACKPOINTS = new Type(142, "TSK_GEO_TRACKPOINTS", bundle.getString("BlackboardAttribute.tskgeopath.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.JSON);
590  /*
591  * Use org.sleuthkit.datamodel.blackboardutils.attributes.GeoWaypoints
592  * to create and process TSK_GEO_WAYPOINTS attributes.
593  */
594  public static final Type TSK_GEO_WAYPOINTS = new Type(143, "TSK_GEO_WAYPOINTS", bundle.getString("BlackboardAttribute.tskgeowaypoints.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.JSON);
595  public static final Type TSK_DISTANCE_TRAVELED = new Type(144, "TSK_DISTANCE_TRAVELED", bundle.getString("BlackboardAttribute.tskdistancetraveled.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DOUBLE);
596  public static final Type TSK_DISTANCE_FROM_HOMEPOINT = new Type(145, "TSK_DISTANCE_FROM_HOMEPOINT", bundle.getString("BlackboardAttribute.tskdistancefromhome.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DOUBLE);
597  public static final Type TSK_HASH_PHOTODNA = new Type(146, "TSK_HASH_PHOTODNA", bundle.getString("BlackboardAttribute.tskhashphotodna.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
598  public static final Type TSK_BYTES_SENT = new Type(147, "TSK_BYTES_SENT", bundle.getString("BlackboardAttribute.tskbytessent.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.LONG);
599  public static final Type TSK_BYTES_RECEIVED = new Type(148, "TSK_BYTES_RECEIVED", bundle.getString("BlackboardAttribute.tskbytesreceived.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.LONG);
600  public static final Type TSK_LAST_PRINTED_DATETIME = new Type(149, "TSK_LAST_PRINTED_DATETIME", bundle.getString("BlackboardAttribute.tsklastprinteddatetime.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DATETIME);
601  public static final Type TSK_RULE = new Type(150, "TSK_RULE", bundle.getString("BlackboardAttribute.tskrule.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
602  public static final Type TSK_ACTIVITY_TYPE = new Type(151, "TSK_ACTIVITY_TYPE", bundle.getString("BlackboardAttribute.tskActivityType.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
603  /*
604  * Use org.sleuthkit.datamodel.blackboardutils.attributes.GeoAreaPoints
605  * to create and process TSK_GEO_AREAPOINTS attributes.
606  */
607  public static final Type TSK_GEO_AREAPOINTS = new Type(152, "TSK_GEO_AREAPOINTS", bundle.getString("BlackboardAttribute.tskgeoareapoints.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.JSON);
608  public static final Type TSK_REALM = new Type(153, "TSK_REALM", bundle.getString("BlackboardAttribute.tskRealm.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
609  public static final Type TSK_HOST = new Type(154, "TSK_HOST", bundle.getString("BlackboardAttribute.tskHost.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
610  public static final Type TSK_HOME_DIR = new Type(155, "TSK_HOME_DIR", bundle.getString("BlackboardAttribute.tskHomeDir.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
611  public static final Type TSK_IS_ADMIN = new Type(156, "TSK_IS_ADMIN", bundle.getString("BlackboardAttribute.tskIsAdmin.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.INTEGER);
612  public static final Type TSK_CORRELATION_TYPE = new Type(157, "TSK_CORRELATION_TYPE", bundle.getString("BlackboardAttribute.tskCorrelationType.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
613  public static final Type TSK_CORRELATION_VALUE = new Type(158, "TSK_CORRELATION_VALUE", bundle.getString("BlackboardAttribute.tskCorrelationValue.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
614  public static final Type TSK_OTHER_CASES = new Type(159, "TSK_OTHER_CASES", bundle.getString("BlackboardAttribute.tskOtherCases.text"), TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING);
615 
616  // NOTE: When adding a new standard BlackboardAttribute.Type, add the instance and then add to the STANDARD_TYPES list.
621  static final List<Type> STANDARD_TYPES = Collections.unmodifiableList(Arrays.asList(
622  TSK_URL,
623  TSK_DATETIME,
624  TSK_NAME,
625  TSK_PROG_NAME,
626  TSK_VALUE,
627  TSK_FLAG,
628  TSK_PATH,
629  TSK_KEYWORD,
630  TSK_KEYWORD_REGEXP,
631  TSK_KEYWORD_PREVIEW,
632  TSK_USER_NAME,
633  TSK_DOMAIN,
634  TSK_PASSWORD,
635  TSK_NAME_PERSON,
636  TSK_DEVICE_MODEL,
637  TSK_DEVICE_MAKE,
638  TSK_DEVICE_ID,
639  TSK_EMAIL,
640  TSK_HASH_MD5,
641  TSK_HASH_SHA1,
642  TSK_HASH_SHA2_256,
643  TSK_HASH_SHA2_512,
644  TSK_TEXT,
645  TSK_TEXT_FILE,
646  TSK_TEXT_LANGUAGE,
647  TSK_ENTROPY,
648  TSK_REFERRER,
649  TSK_DATETIME_ACCESSED,
650  TSK_IP_ADDRESS,
651  TSK_PHONE_NUMBER,
652  TSK_PATH_ID,
653  TSK_SET_NAME,
654  TSK_MALWARE_DETECTED,
655  TSK_STEG_DETECTED,
656  TSK_EMAIL_TO,
657  TSK_EMAIL_CC,
658  TSK_EMAIL_BCC,
659  TSK_EMAIL_FROM,
660  TSK_EMAIL_CONTENT_PLAIN,
661  TSK_EMAIL_CONTENT_HTML,
662  TSK_EMAIL_CONTENT_RTF,
663  TSK_MSG_ID,
664  TSK_MSG_REPLY_ID,
665  TSK_DATETIME_RCVD,
666  TSK_DATETIME_SENT,
667  TSK_SUBJECT,
668  TSK_TITLE,
669  TSK_GEO_LATITUDE,
670  TSK_GEO_LONGITUDE,
671  TSK_GEO_VELOCITY,
672  TSK_GEO_ALTITUDE,
673  TSK_GEO_BEARING,
674  TSK_GEO_HPRECISION,
675  TSK_GEO_VPRECISION,
676  TSK_GEO_MAPDATUM,
677  TSK_FILE_TYPE_EXT,
678  TSK_COMMENT,
679  TSK_URL_DECODED,
680  TSK_DATETIME_CREATED,
681  TSK_DATETIME_MODIFIED,
682  TSK_PROCESSOR_ARCHITECTURE,
683  TSK_VERSION,
684  TSK_USER_ID,
685  TSK_DESCRIPTION,
686  TSK_MESSAGE_TYPE,
687  TSK_PHONE_NUMBER_HOME,
688  TSK_PHONE_NUMBER_OFFICE,
689  TSK_PHONE_NUMBER_MOBILE,
690  TSK_PHONE_NUMBER_FROM,
691  TSK_PHONE_NUMBER_TO,
692  TSK_DIRECTION,
693  TSK_EMAIL_HOME,
694  TSK_EMAIL_OFFICE,
695  TSK_DATETIME_START,
696  TSK_DATETIME_END,
697  TSK_CALENDAR_ENTRY_TYPE,
698  TSK_LOCATION,
699  TSK_SHORTCUT,
700  TSK_DEVICE_NAME,
701  TSK_CATEGORY,
702  TSK_EMAIL_REPLYTO,
703  TSK_SERVER_NAME,
704  TSK_COUNT,
705  TSK_MIN_COUNT,
706  TSK_PATH_SOURCE,
707  TSK_PERMISSIONS,
708  TSK_ASSOCIATED_ARTIFACT,
709  TSK_ISDELETED,
710  TSK_GEO_LATITUDE_START,
711  TSK_GEO_LATITUDE_END,
712  TSK_GEO_LONGITUDE_START,
713  TSK_GEO_LONGITUDE_END,
714  TSK_READ_STATUS,
715  TSK_LOCAL_PATH,
716  TSK_REMOTE_PATH,
717  TSK_TEMP_DIR,
718  TSK_PRODUCT_ID,
719  TSK_OWNER,
720  TSK_ORGANIZATION,
721  TSK_CARD_NUMBER,
722  TSK_CARD_EXPIRATION,
723  TSK_CARD_SERVICE_CODE,
724  TSK_CARD_DISCRETIONARY,
725  TSK_CARD_LRC,
726  TSK_KEYWORD_SEARCH_DOCUMENT_ID,
727  TSK_CARD_SCHEME,
728  TSK_CARD_TYPE,
729  TSK_BRAND_NAME,
730  TSK_BANK_NAME,
731  TSK_COUNTRY,
732  TSK_CITY,
733  TSK_ACCOUNT_TYPE,
734  TSK_KEYWORD_SEARCH_TYPE,
735  TSK_HEADERS,
736  TSK_ID,
737  TSK_SSID,
738  TSK_BSSID,
739  TSK_MAC_ADDRESS,
740  TSK_IMEI,
741  TSK_IMSI,
742  TSK_ICCID,
743  TSK_THREAD_ID,
744  TSK_TL_EVENT_TYPE,
745  TSK_DATETIME_DELETED,
746  TSK_DATETIME_PASSWORD_RESET,
747  TSK_DATETIME_PASSWORD_FAIL,
748  TSK_DISPLAY_NAME,
749  TSK_PASSWORD_SETTINGS,
750  TSK_ACCOUNT_SETTINGS,
751  TSK_PASSWORD_HINT,
752  TSK_GROUPS,
753  TSK_ATTACHMENTS,
754  TSK_GEO_TRACKPOINTS,
755  TSK_GEO_WAYPOINTS,
756  TSK_DISTANCE_TRAVELED,
757  TSK_DISTANCE_FROM_HOMEPOINT,
758  TSK_HASH_PHOTODNA,
759  TSK_BYTES_SENT,
760  TSK_BYTES_RECEIVED,
761  TSK_LAST_PRINTED_DATETIME,
762  TSK_RULE,
763  TSK_ACTIVITY_TYPE,
764  TSK_GEO_AREAPOINTS,
765  TSK_REALM,
766  TSK_HOST,
767  TSK_HOME_DIR,
768  TSK_IS_ADMIN,
769  TSK_CORRELATION_TYPE,
770  TSK_CORRELATION_VALUE,
771  TSK_OTHER_CASES
772  ));
773 
774  private static final long serialVersionUID = 1L;
775  private final String typeName;
776  private final int typeID;
777  private final String displayName;
778  private final TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE valueType;
779 
788  public Type(int typeID, String typeName, String displayName, TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE valueType) {
789  this.typeID = typeID;
790  this.typeName = typeName;
791  this.displayName = displayName;
792  this.valueType = valueType;
793  }
794 
802  this.typeID = type.getTypeID();
803  this.typeName = type.getLabel();
804  this.displayName = type.getDisplayName();
805  this.valueType = type.getValueType();
806  }
807 
814  return this.valueType;
815  }
816 
822  public String getTypeName() {
823  return this.typeName;
824  }
825 
831  public int getTypeID() {
832  return this.typeID;
833  }
834 
840  public String getDisplayName() {
841  return this.displayName;
842  }
843 
844  @Override
845  public boolean equals(Object that) {
846  if (this == that) {
847  return true;
848  } else if (!(that instanceof BlackboardAttribute.Type)) {
849  return false;
850  } else {
851  return ((BlackboardAttribute.Type) that).sameType(this);
852  }
853  }
854 
863  private boolean sameType(BlackboardAttribute.Type that) {
864  return this.typeName.equals(that.getTypeName())
865  && this.displayName.equals(that.getDisplayName())
866  && this.typeID == that.getTypeID()
867  && this.valueType == that.getValueType();
868  }
869 
870  @Override
871  public int hashCode() {
872  int hash = 7;
873  hash = 63 * hash + Objects.hashCode(this.typeID);
874  hash = 63 * hash + Objects.hashCode(this.displayName);
875  hash = 63 * hash + Objects.hashCode(this.typeName);
876  hash = 63 * hash + Objects.hashCode(this.valueType);
877  return hash;
878  }
879 
880  @Override
881  public String toString() {
882  return "(typeID= " + this.typeID
883  + ", displayName=" + this.displayName
884  + ", typeName=" + this.typeName
885  + ", valueType=" + this.valueType + ")";
886  }
887  }
888 
894 
898  STRING(0, "String"), //NON-NLS
902  INTEGER(1, "Integer"), //NON-NLS
906  LONG(2, "Long"), //NON-NLS
910  DOUBLE(3, "Double"), //NON-NLS
914  BYTE(4, "Byte"), //NON-NLS
919  DATETIME(5, "DateTime"),
923  JSON(6, "Json");
924 
925  private final long typeId;
926  private final String typeName;
927 
928  /*
929  * TODO (AUT-2070): Add a localized displayName field and a
930  * getDisplayName method for API consistency.
931  */
938  private TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE(long type, String typeName) {
939  this.typeId = type;
940  this.typeName = typeName;
941  }
942 
951  public long getType() {
952  return typeId;
953  }
954 
963  public String getLabel() {
964  return this.typeName;
965  }
966 
981  static public TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE fromType(long typeId) {
983  if (valueType.getType() == typeId) {
984  return valueType;
985  }
986  }
987  throw new IllegalArgumentException("No TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE matching type: " + typeId);
988  }
989 
1004  static public TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE fromLabel(String typeName) {
1006  if (valueType.getLabel().equals(typeName)) {
1007  return valueType;
1008  }
1009  }
1010  throw new IllegalArgumentException("No TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE matching type: " + typeName);
1011  }
1012 
1013  }
1014 
1021  public enum ATTRIBUTE_TYPE {
1022 
1023  TSK_URL(1, "TSK_URL", //NON-NLS
1024  bundle.getString("BlackboardAttribute.tskUrl.text"),
1026  TSK_DATETIME(2, "TSK_DATETIME", //NON-NLS
1027  bundle.getString("BlackboardAttribute.tskDatetime.text"),
1029  TSK_NAME(3, "TSK_NAME", //NON-NLS
1030  bundle.getString("BlackboardAttribute.tskName.text"),
1032  TSK_PROG_NAME(4, "TSK_PROG_NAME", //NON-NLS
1033  bundle.getString("BlackboardAttribute.tskProgName.text"),
1035  TSK_VALUE(6, "TSK_VALUE", //NON-NLS
1036  bundle.getString("BlackboardAttribute.tskValue.text"),
1038  TSK_FLAG(7, "TSK_FLAG", //NON-NLS
1039  bundle.getString("BlackboardAttribute.tskFlag.text"),
1041  TSK_PATH(8, "TSK_PATH", //NON-NLS
1042  bundle.getString("BlackboardAttribute.tskPath.text"),
1044  TSK_KEYWORD(10, "TSK_KEYWORD", //NON-NLS
1045  bundle.getString("BlackboardAttribute.tskKeyword.text"),
1047  TSK_KEYWORD_REGEXP(11, "TSK_KEYWORD_REGEXP", //NON-NLS
1048  bundle.getString("BlackboardAttribute.tskKeywordRegexp.text"),
1050  TSK_KEYWORD_PREVIEW(12, "TSK_KEYWORD_PREVIEW", //NON-NLS
1051  bundle.getString("BlackboardAttribute.tskKeywordPreview.text"),
1056  @Deprecated
1057  TSK_KEYWORD_SET(13, "TSK_KEYWORD_SET", //NON-NLS
1058  bundle.getString("BlackboardAttribute.tskKeywordSet.text"),
1060  TSK_USER_NAME(14, "TSK_USER_NAME", //NON-NLS
1061  bundle.getString("BlackboardAttribute.tskUserName.text"),
1063  TSK_DOMAIN(15, "TSK_DOMAIN", //NON-NLS
1064  bundle.getString("BlackboardAttribute.tskDomain.text"),
1066  TSK_PASSWORD(16, "TSK_PASSWORD", //NON-NLS
1067  bundle.getString("BlackboardAttribute.tskPassword.text"),
1069  TSK_NAME_PERSON(17, "TSK_NAME_PERSON", //NON-NLS
1070  bundle.getString("BlackboardAttribute.tskNamePerson.text"),
1072  TSK_DEVICE_MODEL(18, "TSK_DEVICE_MODEL", //NON-NLS
1073  bundle.getString("BlackboardAttribute.tskDeviceModel.text"),
1075  TSK_DEVICE_MAKE(19, "TSK_DEVICE_MAKE", //NON-NLS
1076  bundle.getString("BlackboardAttribute.tskDeviceMake.text"),
1078  TSK_DEVICE_ID(20, "TSK_DEVICE_ID", //NON-NLS
1079  bundle.getString("BlackboardAttribute.tskDeviceId.text"),
1081  TSK_EMAIL(21, "TSK_EMAIL", //NON-NLS
1082  bundle.getString("BlackboardAttribute.tskEmail.text"),
1084  TSK_HASH_MD5(22, "TSK_HASH_MD5", //NON-NLS
1085  bundle.getString("BlackboardAttribute.tskHashMd5.text"),
1087  TSK_HASH_SHA1(23, "TSK_HASH_SHA1", //NON-NLS
1088  bundle.getString("BlackboardAttribute.tskHashSha1.text"),
1090  TSK_HASH_SHA2_256(24, "TSK_HASH_SHA2_256", //NON-NLS
1091  bundle.getString("BlackboardAttribute.tskHashSha225.text"),
1093  TSK_HASH_SHA2_512(25, "TSK_HASH_SHA2_512", //NON-NLS
1094  bundle.getString("BlackboardAttribute.tskHashSha2512.text"),
1096  TSK_TEXT(26, "TSK_TEXT", //NON-NLS
1097  bundle.getString("BlackboardAttribute.tskText.text"),
1099  TSK_TEXT_FILE(27, "TSK_TEXT_FILE", //NON-NLS
1100  bundle.getString("BlackboardAttribute.tskTextFile.text"),
1102  TSK_TEXT_LANGUAGE(28, "TSK_TEXT_LANGUAGE", //NON-NLS
1103  bundle.getString("BlackboardAttribute.tskTextLanguage.text"),
1105  TSK_ENTROPY(29, "TSK_ENTROPY", //NON-NLS
1106  bundle.getString("BlackboardAttribute.tskEntropy.text"),
1111  @Deprecated
1112  TSK_HASHSET_NAME(30, "TSK_HASHSET_NAME", //NON-NLS
1113  bundle.getString("BlackboardAttribute.tskHashsetName.text"),
1118  @Deprecated
1119  TSK_INTERESTING_FILE(31, "TSK_INTERESTING_FILE", //NON-NLS
1120  bundle.getString("BlackboardAttribute.tskInterestingFile.text"),
1122  TSK_REFERRER(32, "TSK_REFERRER", //NON-NLS
1123  bundle.getString("BlackboardAttribute.tskReferrer.text"),
1125  TSK_DATETIME_ACCESSED(33, "TSK_DATETIME_ACCESSED", //NON-NLS
1126  bundle.getString("BlackboardAttribute.tskDateTimeAccessed.text"),
1128  TSK_IP_ADDRESS(34, "TSK_IP_ADDRESS", //NON-NLS
1129  bundle.getString("BlackboardAttribute.tskIpAddress.text"),
1131  TSK_PHONE_NUMBER(35, "TSK_PHONE_NUMBER", //NON-NLS
1132  bundle.getString("BlackboardAttribute.tskPhoneNumber.text"),
1134  TSK_PATH_ID(36, "TSK_PATH_ID", //NON-NLS
1135  bundle.getString("BlackboardAttribute.tskPathId.text"),
1137  TSK_SET_NAME(37, "TSK_SET_NAME", //NON-NLS
1138  bundle.getString("BlackboardAttribute.tskSetName.text"),
1143  @Deprecated
1144  TSK_ENCRYPTION_DETECTED(38, "TSK_ENCRYPTION_DETECTED", //NON-NLS
1145  bundle.getString("BlackboardAttribute.tskEncryptionDetected.text"),
1147  TSK_MALWARE_DETECTED(39, "TSK_MALWARE_DETECTED", //NON-NLS
1148  bundle.getString("BlackboardAttribute.tskMalwareDetected.text"),
1150  TSK_STEG_DETECTED(40, "TSK_STEG_DETECTED", //NON-NLS
1151  bundle.getString("BlackboardAttribute.tskStegDetected.text"),
1153  TSK_EMAIL_TO(41, "TSK_EMAIL_TO", //NON-NLS
1154  bundle.getString("BlackboardAttribute.tskEmailTo.text"),
1156  TSK_EMAIL_CC(42, "TSK_EMAIL_CC", //NON-NLS
1157  bundle.getString("BlackboardAttribute.tskEmailCc.text"),
1159  TSK_EMAIL_BCC(43, "TSK_EMAIL_BCC", //NON-NLS
1160  bundle.getString("BlackboardAttribute.tskEmailBcc.text"),
1162  TSK_EMAIL_FROM(44, "TSK_EMAIL_FROM", //NON-NLS
1163  bundle.getString("BlackboardAttribute.tskEmailFrom.text"),
1165  TSK_EMAIL_CONTENT_PLAIN(45, "TSK_EMAIL_CONTENT_PLAIN", //NON-NLS
1166  bundle.getString("BlackboardAttribute.tskEmailContentPlain.text"),
1168  TSK_EMAIL_CONTENT_HTML(46, "TSK_EMAIL_CONTENT_HTML", //NON-NLS
1169  bundle.getString("BlackboardAttribute.tskEmailContentHtml.text"),
1171  TSK_EMAIL_CONTENT_RTF(47, "TSK_EMAIL_CONTENT_RTF", //NON-NLS
1172  bundle.getString("BlackboardAttribute.tskEmailContentRtf.text"),
1174  TSK_MSG_ID(48, "TSK_MSG_ID", //NON-NLS
1175  bundle.getString("BlackboardAttribute.tskMsgId.text"),
1177  TSK_MSG_REPLY_ID(49, "TSK_MSG_REPLY_ID", //NON-NLS
1178  bundle.getString("BlackboardAttribute.tskMsgReplyId.text"),
1180  TSK_DATETIME_RCVD(50, "TSK_DATETIME_RCVD", //NON-NLS
1181  bundle.getString("BlackboardAttribute.tskDateTimeRcvd.text"),
1183  TSK_DATETIME_SENT(51, "TSK_DATETIME_SENT", //NON-NLS
1184  bundle.getString("BlackboardAttribute.tskDateTimeSent.text"),
1186  TSK_SUBJECT(52, "TSK_SUBJECT", //NON-NLS
1187  bundle.getString("BlackboardAttribute.tskSubject.text"),
1189  TSK_TITLE(53, "TSK_TITLE", //NON-NLS
1190  bundle.getString("BlackboardAttribute.tskTitle.text"),
1192  TSK_GEO_LATITUDE(54, "TSK_GEO_LATITUDE", //NON-NLS
1193  bundle.getString("BlackboardAttribute.tskGeoLatitude.text"),
1195  TSK_GEO_LONGITUDE(55, "TSK_GEO_LONGITUDE", //NON-NLS
1196  bundle.getString("BlackboardAttribute.tskGeoLongitude.text"),
1198  TSK_GEO_VELOCITY(56, "TSK_GEO_VELOCITY", //NON-NLS
1199  bundle.getString("BlackboardAttribute.tskGeoVelocity.text"),
1201  TSK_GEO_ALTITUDE(57, "TSK_GEO_ALTITUDE", //NON-NLS
1202  bundle.getString("BlackboardAttribute.tskGeoAltitude.text"),
1204  TSK_GEO_BEARING(58, "TSK_GEO_BEARING", //NON-NLS
1205  bundle.getString("BlackboardAttribute.tskGeoBearing.text"),
1207  TSK_GEO_HPRECISION(59, "TSK_GEO_HPRECISION", //NON-NLS
1208  bundle.getString("BlackboardAttribute.tskGeoHPrecision.text"),
1210  TSK_GEO_VPRECISION(60, "TSK_GEO_VPRECISION", //NON-NLS
1211  bundle.getString("BlackboardAttribute.tskGeoVPrecision.text"),
1213  TSK_GEO_MAPDATUM(61, "TSK_GEO_MAPDATUM", //NON-NLS
1214  bundle.getString("BlackboardAttribute.tskGeoMapDatum.text"),
1220  @Deprecated
1221  TSK_FILE_TYPE_SIG(62, "TSK_FILE_TYPE_SIG", //NON-NLS
1222  bundle.getString("BlackboardAttribute.tskFileTypeSig.text"),
1224  TSK_FILE_TYPE_EXT(63, "TSK_FILE_TYPE_EXT", //NON-NLS
1225  bundle.getString("BlackboardAttribute.tskFileTypeExt.text"),
1231  @Deprecated
1232  TSK_TAGGED_ARTIFACT(64, "TSK_TAGGED_ARTIFACT", //NON-NLS
1233  bundle.getString("BlackboardAttribute.tskTaggedArtifact.text"),
1239  @Deprecated
1240  TSK_TAG_NAME(65, "TSK_TAG_NAME", //NON-NLS
1241  bundle.getString("BlackboardAttribute.tskTagName.text"),
1243  TSK_COMMENT(66, "TSK_COMMENT", //NON-NLS
1244  bundle.getString("BlackboardAttribute.tskComment.text"),
1246  TSK_URL_DECODED(67, "TSK_URL_DECODED", //NON-NLS
1247  bundle.getString("BlackboardAttribute.tskUrlDecoded.text"),
1249  TSK_DATETIME_CREATED(68, "TSK_DATETIME_CREATED", //NON-NLS
1250  bundle.getString("BlackboardAttribute.tskDateTimeCreated.text"),
1252  TSK_DATETIME_MODIFIED(69, "TSK_DATETIME_MODIFIED", //NON-NLS
1253  bundle.getString("BlackboardAttribute.tskDateTimeModified.text"),
1255  TSK_PROCESSOR_ARCHITECTURE(70, "TSK_PROCESSOR_ARCHITECTURE", //NON-NLS
1256  bundle.getString("BlackboardAttribute.tskProcessorArchitecture.text"),
1258  TSK_VERSION(71, "TSK_VERSION", //NON-NLS
1259  bundle.getString("BlackboardAttribute.tskVersion.text"),
1261  TSK_USER_ID(72, "TSK_USER_ID", //NON-NLS
1262  bundle.getString("BlackboardAttribute.tskUserId.text"),
1264  TSK_DESCRIPTION(73, "TSK_DESCRIPTION", //NON-NLS
1265  bundle.getString("BlackboardAttribute.tskDescription.text"),
1267  TSK_MESSAGE_TYPE(74, "TSK_MESSAGE_TYPE", //NON-NLS
1268  bundle.getString("BlackboardAttribute.tskMessageType.text"),
1269  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING), // SMS or MMS or IM ...
1270  TSK_PHONE_NUMBER_HOME(75, "TSK_PHONE_NUMBER_HOME", //NON-NLS
1271  bundle.getString("BlackboardAttribute.tskPhoneNumberHome.text"),
1273  TSK_PHONE_NUMBER_OFFICE(76, "TSK_PHONE_NUMBER_OFFICE", //NON-NLS
1274  bundle.getString("BlackboardAttribute.tskPhoneNumberOffice.text"),
1276  TSK_PHONE_NUMBER_MOBILE(77, "TSK_PHONE_NUMBER_MOBILE", //NON-NLS
1277  bundle.getString("BlackboardAttribute.tskPhoneNumberMobile.text"),
1279  TSK_PHONE_NUMBER_FROM(78, "TSK_PHONE_NUMBER_FROM", //NON-NLS
1280  bundle.getString("BlackboardAttribute.tskPhoneNumberFrom.text"),
1282  TSK_PHONE_NUMBER_TO(79, "TSK_PHONE_NUMBER_TO", //NON-NLS
1283  bundle.getString("BlackboardAttribute.tskPhoneNumberTo.text"),
1285  TSK_DIRECTION(80, "TSK_DIRECTION", //NON-NLS
1286  bundle.getString("BlackboardAttribute.tskDirection.text"),
1287  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING), // Msg/Call direction: incoming, outgoing
1288  TSK_EMAIL_HOME(81, "TSK_EMAIL_HOME", //NON-NLS
1289  bundle.getString("BlackboardAttribute.tskEmailHome.text"),
1291  TSK_EMAIL_OFFICE(82, "TSK_EMAIL_OFFICE", //NON-NLS
1292  bundle.getString("BlackboardAttribute.tskEmailOffice.text"),
1294  TSK_DATETIME_START(83, "TSK_DATETIME_START", //NON-NLS
1295  bundle.getString("BlackboardAttribute.tskDateTimeStart.text"),
1296  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DATETIME), // start time of an event - call log, Calendar entry
1297  TSK_DATETIME_END(84, "TSK_DATETIME_END", //NON-NLS
1298  bundle.getString("BlackboardAttribute.tskDateTimeEnd.text"),
1299  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DATETIME), // end time of an event - call log, Calendar entry
1300  TSK_CALENDAR_ENTRY_TYPE(85, "TSK_CALENDAR_ENTRY_TYPE", //NON-NLS
1301  bundle.getString("BlackboardAttribute.tskCalendarEntryType.text"),
1302  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING), // meeting, task,
1303  TSK_LOCATION(86, "TSK_LOCATION", //NON-NLS
1304  bundle.getString("BlackboardAttribute.tskLocation.text"),
1305  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING), // Location string associated with an event - Conf Room Name, Address ....
1306  TSK_SHORTCUT(87, "TSK_SHORTCUT", //NON-NLS
1307  bundle.getString("BlackboardAttribute.tskShortcut.text"),
1308  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING), // Short Cut string - short code or dial string for Speed dial, a URL short cut - e.g. bitly string, Windows Desktop Short cut name etc.
1309  TSK_DEVICE_NAME(88, "TSK_DEVICE_NAME", //NON-NLS
1310  bundle.getString("BlackboardAttribute.tskDeviceName.text"),
1311  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING), // device name - a user assigned (usually) device name - such as "Joe's computer", "bob_win8", "BT Headset"
1312  TSK_CATEGORY(89, "TSK_CATEGORY", //NON-NLS
1313  bundle.getString("BlackboardAttribute.tskCategory.text"),
1314  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING), // category/type, possible value set varies by the artifact
1315  TSK_EMAIL_REPLYTO(90, "TSK_EMAIL_REPLYTO", //NON-NLS
1316  bundle.getString("BlackboardAttribute.tskEmailReplyTo.text"),
1317  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING), // ReplyTo address
1318  TSK_SERVER_NAME(91, "TSK_SERVER_NAME", //NON-NLS
1319  bundle.getString("BlackboardAttribute.tskServerName.text"),
1320  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING), // server name, e.g. a mail server name - "smtp.google.com", a DNS server name...
1321  TSK_COUNT(92, "TSK_COUNT", //NON-NLS
1322  bundle.getString("BlackboardAttribute.tskCount.text"),
1323  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.INTEGER), // Count related to the artifact
1324  TSK_MIN_COUNT(93, "TSK_MIN_COUNT", //NON-NLS
1325  bundle.getString("BlackboardAttribute.tskMinCount.text"),
1326  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.INTEGER), // Minimum number/count
1327  TSK_PATH_SOURCE(94, "TSK_PATH_SOURCE", //NON-NLS
1328  bundle.getString("BlackboardAttribute.tskPathSource.text"),
1329  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING), // Path to a source file related to the artifact
1330  TSK_PERMISSIONS(95, "TSK_PERMISSIONS", //NON-NLS
1331  bundle.getString("BlackboardAttribute.tskPermissions.text"),
1333  TSK_ASSOCIATED_ARTIFACT(96, "TSK_ASSOCIATED_ARTIFACT", //NON-NLS
1334  bundle.getString("BlackboardAttribute.tskAssociatedArtifact.text"),
1335  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.LONG), // Artifact ID of a related artifact
1336  TSK_ISDELETED(97, "TSK_ISDELETED", //NON-NLS
1337  bundle.getString("BlackboardAttribute.tskIsDeleted.text"),
1338  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING), // boolean to indicate that the artifact is recovered fom deleted content
1339  TSK_GEO_LATITUDE_START(98, "TSK_GEO_LATITUDE_START", //NON-NLS
1340  bundle.getString("BlackboardAttribute.tskGeoLatitudeStart.text"),
1341  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DOUBLE), // Starting location lattitude
1342  TSK_GEO_LATITUDE_END(99, "TSK_GEO_LATITUDE_END", //NON-NLS
1343  bundle.getString("BlackboardAttribute.tskGeoLatitudeEnd.text"),
1344  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DOUBLE), // Ending location lattitude
1345  TSK_GEO_LONGITUDE_START(100, "TSK_GEO_LONGITUDE_START", //NON-NLS
1346  bundle.getString("BlackboardAttribute.tskGeoLongitudeStart.text"),
1347  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DOUBLE), // Starting location longitude
1348  TSK_GEO_LONGITUDE_END(101, "TSK_GEO_LONGITUDE_END", //NON-NLS
1349  bundle.getString("BlackboardAttribute.tskGeoLongitudeEnd.text"),
1350  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DOUBLE), //Ending Location longitude
1351  TSK_READ_STATUS(102, "TSK_READ_STATUS", //NON-NLS
1352  bundle.getString("BlackboardAttribute.tskReadStatus.text"),
1353  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.INTEGER), // Message read status: 1 if read, 0 if unread
1354  TSK_LOCAL_PATH(103, "TSK_LOCAL_PATH", //NON-NLS
1355  bundle.getString("BlackboardAttribute.tskLocalPath.text"),
1356  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING), // Local path to a network drive
1357  TSK_REMOTE_PATH(104, "TSK_REMOTE_PATH", //NON-NLS
1358  bundle.getString("BlackboardAttribute.tskRemotePath.text"),
1359  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING), // Remote path of a network drive
1360  TSK_TEMP_DIR(105, "TSK_TEMP_DIR", //NON-NLS
1361  bundle.getString("BlackboardAttribute.tskTempDir.text"),
1362  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING), // Default temporary files directory
1363  TSK_PRODUCT_ID(106, "TSK_PRODUCT_ID", //NON-NLS
1364  bundle.getString("BlackboardAttribute.tskProductId.text"),
1366  TSK_OWNER(107, "TSK_OWNER", //NON-NLS
1367  bundle.getString("BlackboardAttribute.tskOwner.text"),
1368  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING), // Registered owner of a piece of software
1369  TSK_ORGANIZATION(108, "TSK_ORGANIZATION", //NON-NLS
1370  bundle.getString("BlackboardAttribute.tskOrganization.text"),
1371  TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING), // Registered Organization for a piece of software
1372  TSK_CARD_NUMBER(109, "TSK_CARD_NUMBER", //NON-NLS
1373  bundle.getString("BlackboardAttribute.tskCardNumber.text"),
1375  TSK_CARD_EXPIRATION(110, "TSK_CARD_EXPIRATION", //for card as 4 digits MMYY //NON-NLS
1376  bundle.getString("BlackboardAttribute.tskCardExpiration.text"),
1378  TSK_CARD_SERVICE_CODE(111, "TSK_CARD_SERVICE_CODE", // 3 digits //NON-NLS
1379  bundle.getString("BlackboardAttribute.tskCardServiceCode.text"),
1381  TSK_CARD_DISCRETIONARY(112, "TSK_CARD_DISCRETIONARY", //data used at the discretion of the issuer //NON-NLS
1382  bundle.getString("BlackboardAttribute.tskCardDiscretionary.text"),
1384  TSK_CARD_LRC(113, "TSK_CARD_LRC", //NON-NLS //Longitudunal Redundancy Check character //NON-NLS
1385  bundle.getString("BlackboardAttribute.tskCardLRC.text"),
1387  TSK_KEYWORD_SEARCH_DOCUMENT_ID(114, "TSK_KEYWORD_SEARCH_DOCUMENT_ID", //NON-NLS
1388  bundle.getString("BlackboardAttribute.tskKeywordSearchDocumentID.text"),
1390  TSK_CARD_SCHEME(115, "TSK_CARD_SCHEME", //amex, visa, mastercard, discover, etc //NON-NLS
1391  bundle.getString("BlackboardAttribute.tskCardScheme.text"),
1393  TSK_CARD_TYPE(116, "TSK_CARD_TYPE", // debit vs credit //NON-NLS
1394  bundle.getString("BlackboardAttribute.tskCardType.text"),
1396  TSK_BRAND_NAME(117, "TSK_BRAND_NAME",
1397  bundle.getString("BlackboardAttribute.tskBrandName.text"),
1399  TSK_BANK_NAME(118, "TSK_BANK_NAME",
1400  bundle.getString("BlackboardAttribute.tskBankName.text"),
1402  TSK_COUNTRY(119, "TSK_COUNTRY",
1403  bundle.getString("BlackboardAttribute.tskCountry.text"),
1405  TSK_CITY(120, "TSK_CITY",
1406  bundle.getString("BlackboardAttribute.tskCity.text"),
1408  TSK_ACCOUNT_TYPE(121, "TSK_ACCOUNT_TYPE",
1409  bundle.getString("BlackboardAttribute.tskAccountType.text"),
1414  TSK_KEYWORD_SEARCH_TYPE(122, "TSK_KEYWORD_SEARCH_TYPE", //NON-NLS
1415  bundle.getString("BlackboardAttribute.tskKeywordSearchType.text"),
1417  TSK_HEADERS(123, "TSK_HEADERS", //NON-NLS
1418  bundle.getString("BlackboardAttribute.tskHeaders.text"),
1420  TSK_ID(124, "TSK_ID", //NON-NLS
1421  bundle.getString("BlackboardAttribute.tskId.text"),
1423  TSK_SSID(125, "TSK_SSID", //NON-NLS
1424  bundle.getString("BlackboardAttribute.tskSsid.text"),
1426  TSK_BSSID(126, "TSK_BSSID", //NON-NLS
1427  bundle.getString("BlackboardAttribute.tskBssid.text"),
1429  TSK_MAC_ADDRESS(127, "TSK_MAC_ADDRESS", //NON-NLS
1430  bundle.getString("BlackboardAttribute.tskMacAddress.text"),
1432  TSK_IMEI(128, "TSK_IMEI", //NON-NLS
1433  bundle.getString("BlackboardAttribute.tskImei.text"),
1435  TSK_IMSI(129, "TSK_IMSI", //NON-NLS
1436  bundle.getString("BlackboardAttribute.tskImsi.text"),
1438  TSK_ICCID(130, "TSK_ICCID", //NON-NLS
1439  bundle.getString("BlackboardAttribute.tskIccid.text"),
1441  TSK_THREAD_ID(131, "TSK_THREAD_ID",
1442  bundle.getString("BlackboardAttribute.tskthreadid.text"),
1448  TSK_TL_EVENT_TYPE(132, "TSK_TL_EVENT_TYPE", //NON-NLS
1449  bundle.getString("BlackboardAttribute.tskTLEventType.text"),
1451  TSK_DATETIME_DELETED(133, "TSK_DATETIME_DELETED", //NON-NLS
1452  bundle.getString("BlackboardAttribute.tskdatetimedeleted.text"),
1454  TSK_DATETIME_PASSWORD_RESET(134, "TSK_DATETIME_PASSWORD_RESET",
1455  bundle.getString("BlackboardAttribute.tskdatetimepwdreset.text"),
1457  TSK_DATETIME_PASSWORD_FAIL(135, "TSK_DATETIME_PWD_FAIL",
1458  bundle.getString("BlackboardAttribute.tskdatetimepwdfail.text"),
1460  TSK_DISPLAY_NAME(136, "TSK_DISPLAY_NAME",
1461  bundle.getString("BlackboardAttribute.tskdisplayname.text"),
1463  TSK_PASSWORD_SETTINGS(137, "TSK_PASSWORD_SETTINGS",
1464  bundle.getString("BlackboardAttribute.tskpasswordsettings.text"),
1466  TSK_ACCOUNT_SETTINGS(138, "TSK_ACCOUNT_SETTINGS",
1467  bundle.getString("BlackboardAttribute.tskaccountsettings.text"),
1469  TSK_PASSWORD_HINT(139, "TSK_PASSWORD_HINT",
1470  bundle.getString("BlackboardAttribute.tskpasswordhint.text"),
1472  TSK_GROUPS(140, "TSK_GROUPS",
1473  bundle.getString("BlackboardAttribute.tskgroups.text"),
1475  /*
1476  * Use
1477  * org.sleuthkit.datamodel.blackboardutils.attributes.MessageAttachments
1478  * to create and process TSK_ATTACHMENTS attributes.
1479  */
1480  TSK_ATTACHMENTS(141, "TSK_ATTACHMENTS",
1481  bundle.getString("BlackboardAttribute.tskattachments.text"),
1483  /*
1484  * Use org.sleuthkit.datamodel.blackboardutils.attributes.GeoTrackPoints
1485  * to create and process TSK_GEO_TRACKPOINTS attributes.
1486  */
1487  TSK_GEO_TRACKPOINTS(142, "TSK_GEO_TRACKPOINTS",
1488  bundle.getString("BlackboardAttribute.tskgeopath.text"),
1490  /*
1491  * Use org.sleuthkit.datamodel.blackboardutils.attributes.GeoWaypoints
1492  * to create and process TSK_GEO_WAYPOINTS attributes.
1493  */
1494  TSK_GEO_WAYPOINTS(143, "TSK_GEO_WAYPOINTS",
1495  bundle.getString("BlackboardAttribute.tskgeowaypoints.text"),
1497  TSK_DISTANCE_TRAVELED(144, "TSK_DISTANCE_TRAVELED",
1498  bundle.getString("BlackboardAttribute.tskdistancetraveled.text"),
1500  TSK_DISTANCE_FROM_HOMEPOINT(145, "TSK_DISTANCE_FROM_HOMEPOINT",
1501  bundle.getString("BlackboardAttribute.tskdistancefromhome.text"),
1503  TSK_HASH_PHOTODNA(146, "TSK_HASH_PHOTODNA",
1504  bundle.getString("BlackboardAttribute.tskhashphotodna.text"),
1506  TSK_BYTES_SENT(147, "TSK_BYTES_SENT",
1507  bundle.getString("BlackboardAttribute.tskbytessent.text"),
1509  TSK_BYTES_RECEIVED(148, "TSK_BYTES_RECEIVED",
1510  bundle.getString("BlackboardAttribute.tskbytesreceived.text"),
1512  TSK_LAST_PRINTED_DATETIME(149, "TSK_LAST_PRINTED_DATETIME",
1513  bundle.getString("BlackboardAttribute.tsklastprinteddatetime.text"),
1515  TSK_RULE(150, "TSK_RULE",
1516  bundle.getString("BlackboardAttribute.tskrule.text"),
1518  TSK_ACTIVITY_TYPE(151, "TSK_ACTIVITY_TYPE",
1519  bundle.getString("BlackboardAttribute.tskActivityType.text"),
1521  /*
1522  * Use org.sleuthkit.datamodel.blackboardutils.attributes.GeoAreaPoints
1523  * to create and process TSK_GEO_AREAPOINTS attributes.
1524  */
1525  TSK_GEO_AREAPOINTS(152, "TSK_GEO_AREAPOINTS",
1526  bundle.getString("BlackboardAttribute.tskgeoareapoints.text"),
1528  TSK_REALM(153, "TSK_REALM",
1529  bundle.getString("BlackboardAttribute.tskRealm.text"),
1531  TSK_HOST(154, "TSK_HOST",
1532  bundle.getString("BlackboardAttribute.tskHost.text"),
1534  TSK_HOME_DIR(155, "TSK_HOME_DIR",
1535  bundle.getString("BlackboardAttribute.tskHomeDir.text"),
1537  TSK_IS_ADMIN(156, "TSK_IS_ADMIN",
1538  bundle.getString("BlackboardAttribute.tskIsAdmin.text"),
1540  TSK_CORRELATION_TYPE(157, "TSK_CORRELATION_TYPE",
1541  bundle.getString("BlackboardAttribute.tskCorrelationType.text"),
1543  TSK_CORRELATION_VALUE(158, "TSK_CORRELATION_VALUE",
1544  bundle.getString("BlackboardAttribute.tskCorrelationValue.text"),
1546  TSK_OTHER_CASES(159, "TSK_OTHER_CASES",
1547  bundle.getString("BlackboardAttribute.tskOtherCases.text"),
1549 
1550  private final int typeID;
1551  private final String typeName;
1552  private final String displayName;
1553  private final TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE valueType;
1554 
1563  private ATTRIBUTE_TYPE(int typeID, String typeName, String displayName, TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE valueType) {
1564  this.typeID = typeID;
1565  this.typeName = typeName;
1566  this.displayName = displayName;
1567  this.valueType = valueType;
1568  }
1569 
1575  public int getTypeID() {
1576  return this.typeID;
1577  }
1578 
1587  public String getLabel() {
1588  return this.typeName;
1589  }
1590 
1596  public String getDisplayName() {
1597  return this.displayName;
1598  }
1599 
1606  return this.valueType;
1607  }
1608 
1622  static public ATTRIBUTE_TYPE fromID(int typeID) {
1623  for (ATTRIBUTE_TYPE attrType : ATTRIBUTE_TYPE.values()) {
1624  if (attrType.getTypeID() == typeID) {
1625  return attrType;
1626  }
1627  }
1628  throw new IllegalArgumentException("No ATTRIBUTE_TYPE matching type: " + typeID);
1629  }
1630 
1644  static public ATTRIBUTE_TYPE fromLabel(String typeName) {
1645  for (ATTRIBUTE_TYPE attrType : ATTRIBUTE_TYPE.values()) {
1646  if (attrType.getLabel().equals(typeName)) {
1647  return attrType;
1648  }
1649  }
1650  throw new IllegalArgumentException("No ATTRIBUTE_TYPE matching type: " + typeName);
1651  }
1652 
1653  }
1654 
1671  @Deprecated
1672  public BlackboardAttribute(int attributeTypeID, String moduleName, int valueInt) throws IllegalArgumentException {
1673  this(ATTRIBUTE_TYPE.fromID(attributeTypeID), moduleName, valueInt);
1674  }
1675 
1693  @Deprecated
1694  public BlackboardAttribute(int attributeTypeID, String moduleName, String context,
1695  int valueInt) {
1696  this(attributeTypeID, moduleName, valueInt);
1697  this.context = replaceNulls(context);
1698  }
1699 
1718  @Deprecated
1719  public BlackboardAttribute(int attributeTypeID, String moduleName,
1720  long valueLong) throws IllegalArgumentException {
1721  this(ATTRIBUTE_TYPE.fromID(attributeTypeID), moduleName, valueLong);
1722  }
1723 
1743  @Deprecated
1744  public BlackboardAttribute(int attributeTypeID, String moduleName, String context,
1745  long valueLong) {
1746  this(attributeTypeID, moduleName, valueLong);
1747  this.context = replaceNulls(context);
1748  }
1749 
1766  @Deprecated
1767  public BlackboardAttribute(int attributeTypeID, String moduleName,
1768  double valueDouble) throws IllegalArgumentException {
1769  this(ATTRIBUTE_TYPE.fromID(attributeTypeID), moduleName, valueDouble);
1770  }
1771 
1789  @Deprecated
1790  public BlackboardAttribute(int attributeTypeID, String moduleName, String context,
1791  double valueDouble) {
1792  this(attributeTypeID, moduleName, valueDouble);
1793  this.context = replaceNulls(context);
1794  }
1795 
1812  @Deprecated
1813  public BlackboardAttribute(int attributeTypeID, String moduleName, String valueString) throws IllegalArgumentException {
1814  this(ATTRIBUTE_TYPE.fromID(attributeTypeID), moduleName, valueString);
1815  }
1816 
1834  @Deprecated
1835  public BlackboardAttribute(int attributeTypeID, String moduleName, String context,
1836  String valueString) {
1837  this(attributeTypeID, moduleName, valueString);
1838  this.context = replaceNulls(context);
1839  }
1840 
1857  @Deprecated
1858  public BlackboardAttribute(int attributeTypeID, String moduleName, byte[] valueBytes) throws IllegalArgumentException {
1859  this(ATTRIBUTE_TYPE.fromID(attributeTypeID), moduleName, valueBytes);
1860  }
1861 
1879  @Deprecated
1880  public BlackboardAttribute(int attributeTypeID, String moduleName, String context,
1881  byte[] valueBytes) {
1882  this(attributeTypeID, moduleName, valueBytes);
1883  this.context = replaceNulls(context);
1884  }
1885 
1896  @Deprecated
1897  protected void setArtifactID(long artifactID) {
1898  setArtifactId(artifactID);
1899  }
1900 
1912  @Deprecated
1913  protected void setCase(SleuthkitCase sleuthkitCase) {
1914  setCaseDatabase(sleuthkitCase);
1915  }
1916 
1924  @Deprecated
1925  public String getContext() {
1926  return context;
1927  }
1928 
1936  @Deprecated
1937  String getContextString() {
1938  return context;
1939  }
1940 
1948  @Deprecated
1949  public int getAttributeTypeID() {
1950  return getAttributeType().getTypeID();
1951  }
1952 
1962  @Deprecated
1963  public String getAttributeTypeName() throws TskCoreException {
1964  return getAttributeType().getTypeName();
1965  }
1966 
1977  @Deprecated
1979  return getAttributeType().getDisplayName();
1980  }
1981 
1990  @Deprecated
1991  public String getModuleName() {
1992  return getSourcesCSV();
1993  }
1994 
1995 }
BlackboardAttribute(int attributeTypeID, String moduleName, String context, byte[] valueBytes)
Type(int typeID, String typeName, String displayName, TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE valueType)
static String epochToTime(long epoch)
BlackboardAttribute.TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE getValueType()
BlackboardAttribute(Type attributeType, String source, long valueLong)
BlackboardAttribute(Type attributeType, String source, int valueInt)
BlackboardAttribute(int attributeTypeID, String moduleName, String context, int valueInt)
BlackboardArtifact getBlackboardArtifact(long artifactID)
static TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE fromLabel(String typeName)
TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE getValueType()
BlackboardAttribute(int attributeTypeID, String moduleName, int valueInt)
BlackboardAttribute(int attributeTypeID, String moduleName, String valueString)
BlackboardAttribute(int attributeTypeID, String moduleName, double valueDouble)
BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, String valueString)
BlackboardAttribute(Type attributeType, String source, byte[] valueBytes)
BlackboardAttribute(int attributeTypeID, String moduleName, String context, double valueDouble)
BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, long valueLong)
BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, int valueInt)
BlackboardAttribute(Type attributeType, String source, double valueDouble)
BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, double valueDouble)
BlackboardAttribute(int attributeTypeID, String moduleName, String context, long valueLong)
BlackboardAttribute(int attributeTypeID, String moduleName, String context, String valueString)
BlackboardAttribute(int attributeTypeID, String moduleName, long valueLong)
Type(BlackboardAttribute.ATTRIBUTE_TYPE type)
BlackboardAttribute(int attributeTypeID, String moduleName, byte[] valueBytes)
BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, byte[] valueBytes)
BlackboardAttribute(Type attributeType, String source, String valueString)

Copyright © 2011-2021 Brian Carrier. (carrier -at- sleuthkit -dot- org)
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.