19 package org.sleuthkit.datamodel;
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;
49 private static final ResourceBundle bundle = ResourceBundle.getBundle(
"org.sleuthkit.datamodel.Bundle");
51 private String context;
52 private String sources;
54 private long artifactID;
62 private Long parentDataSourceID;
78 this.sources = replaceNulls(source);
95 super(attributeType, valueInt);
96 this.sources = replaceNulls(source);
117 this.sources = replaceNulls(source);
136 super(attributeType, valueLong);
137 this.sources = replaceNulls(source);
155 this.sources = replaceNulls(source);
172 super(attributeType, valueDouble);
173 this.sources = replaceNulls(source);
193 this.sources = replaceNulls(source);
210 super(attributeType, valueString);
211 this.sources = replaceNulls(source);
229 this.sources = replaceNulls(source);
246 super(attributeType, valueBytes);
247 this.sources = replaceNulls(source);
267 void setArtifactId(
long artifactID) {
268 this.artifactID = artifactID;
277 if (null != sources && !this.sources.isEmpty()) {
278 List<String> modules = Arrays.asList(sources.split(
","));
281 return Collections.emptyList();
293 this.sources = getCaseDatabase().addSourceToArtifactAttribute(
this, source);
308 if (parentArtifact == null) {
311 return parentArtifact;
329 return areValuesEqual(that) && Objects.deepEquals(thisObject, otherObject);
350 if (parentDataSourceID == null) {
352 parentDataSourceID = parent.getDataSourceObjectID();
354 final Content dataSource = parentDataSourceID != null ? getCaseDatabase().
getContentById(parentDataSourceID) : null;
355 if ((dataSource != null) && (dataSource instanceof
Image)) {
357 Image image = (Image) dataSource;
358 TimeZone tzone = TimeZone.getTimeZone(image.
getTimeZone());
362 LOGGER.log(Level.WARNING,
"Could not get timezone for image", ex);
368 return super.getDisplayString();
392 int valueInt,
long valueLong,
double valueDouble, String valueString, byte[] valueBytes,
395 super(attributeType, valueInt, valueLong, valueDouble, valueString, valueBytes, sleuthkitCase);
396 this.artifactID = artifactID;
397 this.sources = replaceNulls(source);
398 this.context = replaceNulls(context);
407 void setParentDataSourceID(Long parentDataSourceID) {
408 this.parentDataSourceID = parentDataSourceID;
419 String getSourcesCSV() {
426 public static final class Type implements Serializable {
621 static final List<Type> STANDARD_TYPES = Collections.unmodifiableList(Arrays.asList(
649 TSK_DATETIME_ACCESSED,
654 TSK_MALWARE_DETECTED,
660 TSK_EMAIL_CONTENT_PLAIN,
661 TSK_EMAIL_CONTENT_HTML,
662 TSK_EMAIL_CONTENT_RTF,
680 TSK_DATETIME_CREATED,
681 TSK_DATETIME_MODIFIED,
682 TSK_PROCESSOR_ARCHITECTURE,
687 TSK_PHONE_NUMBER_HOME,
688 TSK_PHONE_NUMBER_OFFICE,
689 TSK_PHONE_NUMBER_MOBILE,
690 TSK_PHONE_NUMBER_FROM,
697 TSK_CALENDAR_ENTRY_TYPE,
708 TSK_ASSOCIATED_ARTIFACT,
710 TSK_GEO_LATITUDE_START,
711 TSK_GEO_LATITUDE_END,
712 TSK_GEO_LONGITUDE_START,
713 TSK_GEO_LONGITUDE_END,
723 TSK_CARD_SERVICE_CODE,
724 TSK_CARD_DISCRETIONARY,
726 TSK_KEYWORD_SEARCH_DOCUMENT_ID,
734 TSK_KEYWORD_SEARCH_TYPE,
745 TSK_DATETIME_DELETED,
746 TSK_DATETIME_PASSWORD_RESET,
747 TSK_DATETIME_PASSWORD_FAIL,
749 TSK_PASSWORD_SETTINGS,
750 TSK_ACCOUNT_SETTINGS,
756 TSK_DISTANCE_TRAVELED,
757 TSK_DISTANCE_FROM_HOMEPOINT,
761 TSK_LAST_PRINTED_DATETIME,
769 TSK_CORRELATION_TYPE,
770 TSK_CORRELATION_VALUE,
774 private static final long serialVersionUID = 1L;
775 private final String typeName;
776 private final int typeID;
777 private final String displayName;
789 this.typeID = typeID;
790 this.typeName = typeName;
791 this.displayName = displayName;
792 this.valueType = valueType;
802 this.typeID = type.getTypeID();
803 this.typeName = type.getLabel();
804 this.displayName = type.getDisplayName();
805 this.valueType = type.getValueType();
814 return this.valueType;
823 return this.typeName;
841 return this.displayName;
864 return this.typeName.equals(that.getTypeName())
865 && this.displayName.equals(that.getDisplayName())
866 && this.typeID == that.getTypeID()
867 && this.valueType == that.getValueType();
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);
882 return "(typeID= " + this.typeID
883 +
", displayName=" + this.displayName
884 +
", typeName=" + this.typeName
885 +
", valueType=" + this.valueType +
")";
925 private final long typeId;
926 private final String typeName;
940 this.typeName = typeName;
964 return this.typeName;
983 if (valueType.
getType() == typeId) {
987 throw new IllegalArgumentException(
"No TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE matching type: " + typeId);
1006 if (valueType.
getLabel().equals(typeName)) {
1010 throw new IllegalArgumentException(
"No TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE matching type: " + typeName);
1023 TSK_URL(1,
"TSK_URL",
1024 bundle.getString(
"BlackboardAttribute.tskUrl.text"),
1026 TSK_DATETIME(2,
"TSK_DATETIME",
1027 bundle.getString(
"BlackboardAttribute.tskDatetime.text"),
1029 TSK_NAME(3,
"TSK_NAME",
1030 bundle.getString(
"BlackboardAttribute.tskName.text"),
1032 TSK_PROG_NAME(4,
"TSK_PROG_NAME",
1033 bundle.getString(
"BlackboardAttribute.tskProgName.text"),
1035 TSK_VALUE(6,
"TSK_VALUE",
1036 bundle.getString(
"BlackboardAttribute.tskValue.text"),
1038 TSK_FLAG(7,
"TSK_FLAG",
1039 bundle.getString(
"BlackboardAttribute.tskFlag.text"),
1041 TSK_PATH(8,
"TSK_PATH",
1042 bundle.getString(
"BlackboardAttribute.tskPath.text"),
1044 TSK_KEYWORD(10,
"TSK_KEYWORD",
1045 bundle.getString(
"BlackboardAttribute.tskKeyword.text"),
1047 TSK_KEYWORD_REGEXP(11,
"TSK_KEYWORD_REGEXP",
1048 bundle.getString(
"BlackboardAttribute.tskKeywordRegexp.text"),
1050 TSK_KEYWORD_PREVIEW(12,
"TSK_KEYWORD_PREVIEW",
1051 bundle.getString(
"BlackboardAttribute.tskKeywordPreview.text"),
1057 TSK_KEYWORD_SET(13,
"TSK_KEYWORD_SET",
1058 bundle.getString(
"BlackboardAttribute.tskKeywordSet.text"),
1060 TSK_USER_NAME(14,
"TSK_USER_NAME",
1061 bundle.getString(
"BlackboardAttribute.tskUserName.text"),
1063 TSK_DOMAIN(15,
"TSK_DOMAIN",
1064 bundle.getString(
"BlackboardAttribute.tskDomain.text"),
1066 TSK_PASSWORD(16,
"TSK_PASSWORD",
1067 bundle.getString(
"BlackboardAttribute.tskPassword.text"),
1069 TSK_NAME_PERSON(17,
"TSK_NAME_PERSON",
1070 bundle.getString(
"BlackboardAttribute.tskNamePerson.text"),
1072 TSK_DEVICE_MODEL(18,
"TSK_DEVICE_MODEL",
1073 bundle.getString(
"BlackboardAttribute.tskDeviceModel.text"),
1075 TSK_DEVICE_MAKE(19,
"TSK_DEVICE_MAKE",
1076 bundle.getString(
"BlackboardAttribute.tskDeviceMake.text"),
1078 TSK_DEVICE_ID(20,
"TSK_DEVICE_ID",
1079 bundle.getString(
"BlackboardAttribute.tskDeviceId.text"),
1081 TSK_EMAIL(21,
"TSK_EMAIL",
1082 bundle.getString(
"BlackboardAttribute.tskEmail.text"),
1084 TSK_HASH_MD5(22,
"TSK_HASH_MD5",
1085 bundle.getString(
"BlackboardAttribute.tskHashMd5.text"),
1087 TSK_HASH_SHA1(23,
"TSK_HASH_SHA1",
1088 bundle.getString(
"BlackboardAttribute.tskHashSha1.text"),
1090 TSK_HASH_SHA2_256(24,
"TSK_HASH_SHA2_256",
1091 bundle.getString(
"BlackboardAttribute.tskHashSha225.text"),
1093 TSK_HASH_SHA2_512(25,
"TSK_HASH_SHA2_512",
1094 bundle.getString(
"BlackboardAttribute.tskHashSha2512.text"),
1096 TSK_TEXT(26,
"TSK_TEXT",
1097 bundle.getString(
"BlackboardAttribute.tskText.text"),
1099 TSK_TEXT_FILE(27,
"TSK_TEXT_FILE",
1100 bundle.getString(
"BlackboardAttribute.tskTextFile.text"),
1102 TSK_TEXT_LANGUAGE(28,
"TSK_TEXT_LANGUAGE",
1103 bundle.getString(
"BlackboardAttribute.tskTextLanguage.text"),
1105 TSK_ENTROPY(29,
"TSK_ENTROPY",
1106 bundle.getString(
"BlackboardAttribute.tskEntropy.text"),
1112 TSK_HASHSET_NAME(30,
"TSK_HASHSET_NAME",
1113 bundle.getString(
"BlackboardAttribute.tskHashsetName.text"),
1119 TSK_INTERESTING_FILE(31,
"TSK_INTERESTING_FILE",
1120 bundle.getString(
"BlackboardAttribute.tskInterestingFile.text"),
1122 TSK_REFERRER(32,
"TSK_REFERRER",
1123 bundle.getString(
"BlackboardAttribute.tskReferrer.text"),
1125 TSK_DATETIME_ACCESSED(33,
"TSK_DATETIME_ACCESSED",
1126 bundle.getString(
"BlackboardAttribute.tskDateTimeAccessed.text"),
1128 TSK_IP_ADDRESS(34,
"TSK_IP_ADDRESS",
1129 bundle.getString(
"BlackboardAttribute.tskIpAddress.text"),
1131 TSK_PHONE_NUMBER(35,
"TSK_PHONE_NUMBER",
1132 bundle.getString(
"BlackboardAttribute.tskPhoneNumber.text"),
1134 TSK_PATH_ID(36,
"TSK_PATH_ID",
1135 bundle.getString(
"BlackboardAttribute.tskPathId.text"),
1137 TSK_SET_NAME(37,
"TSK_SET_NAME",
1138 bundle.getString(
"BlackboardAttribute.tskSetName.text"),
1144 TSK_ENCRYPTION_DETECTED(38,
"TSK_ENCRYPTION_DETECTED",
1145 bundle.getString(
"BlackboardAttribute.tskEncryptionDetected.text"),
1147 TSK_MALWARE_DETECTED(39,
"TSK_MALWARE_DETECTED",
1148 bundle.getString(
"BlackboardAttribute.tskMalwareDetected.text"),
1150 TSK_STEG_DETECTED(40,
"TSK_STEG_DETECTED",
1151 bundle.getString(
"BlackboardAttribute.tskStegDetected.text"),
1153 TSK_EMAIL_TO(41,
"TSK_EMAIL_TO",
1154 bundle.getString(
"BlackboardAttribute.tskEmailTo.text"),
1156 TSK_EMAIL_CC(42,
"TSK_EMAIL_CC",
1157 bundle.getString(
"BlackboardAttribute.tskEmailCc.text"),
1159 TSK_EMAIL_BCC(43,
"TSK_EMAIL_BCC",
1160 bundle.getString(
"BlackboardAttribute.tskEmailBcc.text"),
1162 TSK_EMAIL_FROM(44,
"TSK_EMAIL_FROM",
1163 bundle.getString(
"BlackboardAttribute.tskEmailFrom.text"),
1165 TSK_EMAIL_CONTENT_PLAIN(45,
"TSK_EMAIL_CONTENT_PLAIN",
1166 bundle.getString(
"BlackboardAttribute.tskEmailContentPlain.text"),
1168 TSK_EMAIL_CONTENT_HTML(46,
"TSK_EMAIL_CONTENT_HTML",
1169 bundle.getString(
"BlackboardAttribute.tskEmailContentHtml.text"),
1171 TSK_EMAIL_CONTENT_RTF(47,
"TSK_EMAIL_CONTENT_RTF",
1172 bundle.getString(
"BlackboardAttribute.tskEmailContentRtf.text"),
1174 TSK_MSG_ID(48,
"TSK_MSG_ID",
1175 bundle.getString(
"BlackboardAttribute.tskMsgId.text"),
1177 TSK_MSG_REPLY_ID(49,
"TSK_MSG_REPLY_ID",
1178 bundle.getString(
"BlackboardAttribute.tskMsgReplyId.text"),
1180 TSK_DATETIME_RCVD(50,
"TSK_DATETIME_RCVD",
1181 bundle.getString(
"BlackboardAttribute.tskDateTimeRcvd.text"),
1183 TSK_DATETIME_SENT(51,
"TSK_DATETIME_SENT",
1184 bundle.getString(
"BlackboardAttribute.tskDateTimeSent.text"),
1186 TSK_SUBJECT(52,
"TSK_SUBJECT",
1187 bundle.getString(
"BlackboardAttribute.tskSubject.text"),
1189 TSK_TITLE(53,
"TSK_TITLE",
1190 bundle.getString(
"BlackboardAttribute.tskTitle.text"),
1192 TSK_GEO_LATITUDE(54,
"TSK_GEO_LATITUDE",
1193 bundle.getString(
"BlackboardAttribute.tskGeoLatitude.text"),
1195 TSK_GEO_LONGITUDE(55,
"TSK_GEO_LONGITUDE",
1196 bundle.getString(
"BlackboardAttribute.tskGeoLongitude.text"),
1198 TSK_GEO_VELOCITY(56,
"TSK_GEO_VELOCITY",
1199 bundle.getString(
"BlackboardAttribute.tskGeoVelocity.text"),
1201 TSK_GEO_ALTITUDE(57,
"TSK_GEO_ALTITUDE",
1202 bundle.getString(
"BlackboardAttribute.tskGeoAltitude.text"),
1204 TSK_GEO_BEARING(58,
"TSK_GEO_BEARING",
1205 bundle.getString(
"BlackboardAttribute.tskGeoBearing.text"),
1207 TSK_GEO_HPRECISION(59,
"TSK_GEO_HPRECISION",
1208 bundle.getString(
"BlackboardAttribute.tskGeoHPrecision.text"),
1210 TSK_GEO_VPRECISION(60,
"TSK_GEO_VPRECISION",
1211 bundle.getString(
"BlackboardAttribute.tskGeoVPrecision.text"),
1213 TSK_GEO_MAPDATUM(61,
"TSK_GEO_MAPDATUM",
1214 bundle.getString(
"BlackboardAttribute.tskGeoMapDatum.text"),
1221 TSK_FILE_TYPE_SIG(62,
"TSK_FILE_TYPE_SIG",
1222 bundle.getString(
"BlackboardAttribute.tskFileTypeSig.text"),
1224 TSK_FILE_TYPE_EXT(63,
"TSK_FILE_TYPE_EXT",
1225 bundle.getString(
"BlackboardAttribute.tskFileTypeExt.text"),
1232 TSK_TAGGED_ARTIFACT(64,
"TSK_TAGGED_ARTIFACT",
1233 bundle.getString(
"BlackboardAttribute.tskTaggedArtifact.text"),
1240 TSK_TAG_NAME(65,
"TSK_TAG_NAME",
1241 bundle.getString(
"BlackboardAttribute.tskTagName.text"),
1243 TSK_COMMENT(66,
"TSK_COMMENT",
1244 bundle.getString(
"BlackboardAttribute.tskComment.text"),
1246 TSK_URL_DECODED(67,
"TSK_URL_DECODED",
1247 bundle.getString(
"BlackboardAttribute.tskUrlDecoded.text"),
1249 TSK_DATETIME_CREATED(68,
"TSK_DATETIME_CREATED",
1250 bundle.getString(
"BlackboardAttribute.tskDateTimeCreated.text"),
1252 TSK_DATETIME_MODIFIED(69,
"TSK_DATETIME_MODIFIED",
1253 bundle.getString(
"BlackboardAttribute.tskDateTimeModified.text"),
1255 TSK_PROCESSOR_ARCHITECTURE(70,
"TSK_PROCESSOR_ARCHITECTURE",
1256 bundle.getString(
"BlackboardAttribute.tskProcessorArchitecture.text"),
1258 TSK_VERSION(71,
"TSK_VERSION",
1259 bundle.getString(
"BlackboardAttribute.tskVersion.text"),
1261 TSK_USER_ID(72,
"TSK_USER_ID",
1262 bundle.getString(
"BlackboardAttribute.tskUserId.text"),
1264 TSK_DESCRIPTION(73,
"TSK_DESCRIPTION",
1265 bundle.getString(
"BlackboardAttribute.tskDescription.text"),
1267 TSK_MESSAGE_TYPE(74,
"TSK_MESSAGE_TYPE",
1268 bundle.getString(
"BlackboardAttribute.tskMessageType.text"),
1270 TSK_PHONE_NUMBER_HOME(75,
"TSK_PHONE_NUMBER_HOME",
1271 bundle.getString(
"BlackboardAttribute.tskPhoneNumberHome.text"),
1273 TSK_PHONE_NUMBER_OFFICE(76,
"TSK_PHONE_NUMBER_OFFICE",
1274 bundle.getString(
"BlackboardAttribute.tskPhoneNumberOffice.text"),
1276 TSK_PHONE_NUMBER_MOBILE(77,
"TSK_PHONE_NUMBER_MOBILE",
1277 bundle.getString(
"BlackboardAttribute.tskPhoneNumberMobile.text"),
1279 TSK_PHONE_NUMBER_FROM(78,
"TSK_PHONE_NUMBER_FROM",
1280 bundle.getString(
"BlackboardAttribute.tskPhoneNumberFrom.text"),
1282 TSK_PHONE_NUMBER_TO(79,
"TSK_PHONE_NUMBER_TO",
1283 bundle.getString(
"BlackboardAttribute.tskPhoneNumberTo.text"),
1285 TSK_DIRECTION(80,
"TSK_DIRECTION",
1286 bundle.getString(
"BlackboardAttribute.tskDirection.text"),
1288 TSK_EMAIL_HOME(81,
"TSK_EMAIL_HOME",
1289 bundle.getString(
"BlackboardAttribute.tskEmailHome.text"),
1291 TSK_EMAIL_OFFICE(82,
"TSK_EMAIL_OFFICE",
1292 bundle.getString(
"BlackboardAttribute.tskEmailOffice.text"),
1294 TSK_DATETIME_START(83,
"TSK_DATETIME_START",
1295 bundle.getString(
"BlackboardAttribute.tskDateTimeStart.text"),
1297 TSK_DATETIME_END(84,
"TSK_DATETIME_END",
1298 bundle.getString(
"BlackboardAttribute.tskDateTimeEnd.text"),
1300 TSK_CALENDAR_ENTRY_TYPE(85,
"TSK_CALENDAR_ENTRY_TYPE",
1301 bundle.getString(
"BlackboardAttribute.tskCalendarEntryType.text"),
1303 TSK_LOCATION(86,
"TSK_LOCATION",
1304 bundle.getString(
"BlackboardAttribute.tskLocation.text"),
1306 TSK_SHORTCUT(87,
"TSK_SHORTCUT",
1307 bundle.getString(
"BlackboardAttribute.tskShortcut.text"),
1309 TSK_DEVICE_NAME(88,
"TSK_DEVICE_NAME",
1310 bundle.getString(
"BlackboardAttribute.tskDeviceName.text"),
1312 TSK_CATEGORY(89,
"TSK_CATEGORY",
1313 bundle.getString(
"BlackboardAttribute.tskCategory.text"),
1315 TSK_EMAIL_REPLYTO(90,
"TSK_EMAIL_REPLYTO",
1316 bundle.getString(
"BlackboardAttribute.tskEmailReplyTo.text"),
1318 TSK_SERVER_NAME(91,
"TSK_SERVER_NAME",
1319 bundle.getString(
"BlackboardAttribute.tskServerName.text"),
1321 TSK_COUNT(92,
"TSK_COUNT",
1322 bundle.getString(
"BlackboardAttribute.tskCount.text"),
1324 TSK_MIN_COUNT(93,
"TSK_MIN_COUNT",
1325 bundle.getString(
"BlackboardAttribute.tskMinCount.text"),
1327 TSK_PATH_SOURCE(94,
"TSK_PATH_SOURCE",
1328 bundle.getString(
"BlackboardAttribute.tskPathSource.text"),
1330 TSK_PERMISSIONS(95,
"TSK_PERMISSIONS",
1331 bundle.getString(
"BlackboardAttribute.tskPermissions.text"),
1333 TSK_ASSOCIATED_ARTIFACT(96,
"TSK_ASSOCIATED_ARTIFACT",
1334 bundle.getString(
"BlackboardAttribute.tskAssociatedArtifact.text"),
1336 TSK_ISDELETED(97,
"TSK_ISDELETED",
1337 bundle.getString(
"BlackboardAttribute.tskIsDeleted.text"),
1339 TSK_GEO_LATITUDE_START(98,
"TSK_GEO_LATITUDE_START",
1340 bundle.getString(
"BlackboardAttribute.tskGeoLatitudeStart.text"),
1342 TSK_GEO_LATITUDE_END(99,
"TSK_GEO_LATITUDE_END",
1343 bundle.getString(
"BlackboardAttribute.tskGeoLatitudeEnd.text"),
1345 TSK_GEO_LONGITUDE_START(100,
"TSK_GEO_LONGITUDE_START",
1346 bundle.getString(
"BlackboardAttribute.tskGeoLongitudeStart.text"),
1348 TSK_GEO_LONGITUDE_END(101,
"TSK_GEO_LONGITUDE_END",
1349 bundle.getString(
"BlackboardAttribute.tskGeoLongitudeEnd.text"),
1351 TSK_READ_STATUS(102,
"TSK_READ_STATUS",
1352 bundle.getString(
"BlackboardAttribute.tskReadStatus.text"),
1354 TSK_LOCAL_PATH(103,
"TSK_LOCAL_PATH",
1355 bundle.getString(
"BlackboardAttribute.tskLocalPath.text"),
1357 TSK_REMOTE_PATH(104,
"TSK_REMOTE_PATH",
1358 bundle.getString(
"BlackboardAttribute.tskRemotePath.text"),
1360 TSK_TEMP_DIR(105,
"TSK_TEMP_DIR",
1361 bundle.getString(
"BlackboardAttribute.tskTempDir.text"),
1363 TSK_PRODUCT_ID(106,
"TSK_PRODUCT_ID",
1364 bundle.getString(
"BlackboardAttribute.tskProductId.text"),
1366 TSK_OWNER(107,
"TSK_OWNER",
1367 bundle.getString(
"BlackboardAttribute.tskOwner.text"),
1369 TSK_ORGANIZATION(108,
"TSK_ORGANIZATION",
1370 bundle.getString(
"BlackboardAttribute.tskOrganization.text"),
1372 TSK_CARD_NUMBER(109,
"TSK_CARD_NUMBER",
1373 bundle.getString(
"BlackboardAttribute.tskCardNumber.text"),
1375 TSK_CARD_EXPIRATION(110,
"TSK_CARD_EXPIRATION",
1376 bundle.getString(
"BlackboardAttribute.tskCardExpiration.text"),
1378 TSK_CARD_SERVICE_CODE(111,
"TSK_CARD_SERVICE_CODE",
1379 bundle.getString(
"BlackboardAttribute.tskCardServiceCode.text"),
1381 TSK_CARD_DISCRETIONARY(112,
"TSK_CARD_DISCRETIONARY",
1382 bundle.getString(
"BlackboardAttribute.tskCardDiscretionary.text"),
1384 TSK_CARD_LRC(113,
"TSK_CARD_LRC",
1385 bundle.getString(
"BlackboardAttribute.tskCardLRC.text"),
1387 TSK_KEYWORD_SEARCH_DOCUMENT_ID(114,
"TSK_KEYWORD_SEARCH_DOCUMENT_ID",
1388 bundle.getString(
"BlackboardAttribute.tskKeywordSearchDocumentID.text"),
1390 TSK_CARD_SCHEME(115,
"TSK_CARD_SCHEME",
1391 bundle.getString(
"BlackboardAttribute.tskCardScheme.text"),
1393 TSK_CARD_TYPE(116,
"TSK_CARD_TYPE",
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",
1415 bundle.getString(
"BlackboardAttribute.tskKeywordSearchType.text"),
1417 TSK_HEADERS(123,
"TSK_HEADERS",
1418 bundle.getString(
"BlackboardAttribute.tskHeaders.text"),
1420 TSK_ID(124,
"TSK_ID",
1421 bundle.getString(
"BlackboardAttribute.tskId.text"),
1423 TSK_SSID(125,
"TSK_SSID",
1424 bundle.getString(
"BlackboardAttribute.tskSsid.text"),
1426 TSK_BSSID(126,
"TSK_BSSID",
1427 bundle.getString(
"BlackboardAttribute.tskBssid.text"),
1429 TSK_MAC_ADDRESS(127,
"TSK_MAC_ADDRESS",
1430 bundle.getString(
"BlackboardAttribute.tskMacAddress.text"),
1432 TSK_IMEI(128,
"TSK_IMEI",
1433 bundle.getString(
"BlackboardAttribute.tskImei.text"),
1435 TSK_IMSI(129,
"TSK_IMSI",
1436 bundle.getString(
"BlackboardAttribute.tskImsi.text"),
1438 TSK_ICCID(130,
"TSK_ICCID",
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",
1449 bundle.getString(
"BlackboardAttribute.tskTLEventType.text"),
1451 TSK_DATETIME_DELETED(133,
"TSK_DATETIME_DELETED",
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"),
1480 TSK_ATTACHMENTS(141,
"TSK_ATTACHMENTS",
1481 bundle.getString(
"BlackboardAttribute.tskattachments.text"),
1487 TSK_GEO_TRACKPOINTS(142,
"TSK_GEO_TRACKPOINTS",
1488 bundle.getString(
"BlackboardAttribute.tskgeopath.text"),
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"),
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"),
1550 private final int typeID;
1551 private final String typeName;
1552 private final String displayName;
1564 this.typeID = typeID;
1565 this.typeName = typeName;
1566 this.displayName = displayName;
1567 this.valueType = valueType;
1588 return this.typeName;
1597 return this.displayName;
1606 return this.valueType;
1624 if (attrType.getTypeID() == typeID) {
1628 throw new IllegalArgumentException(
"No ATTRIBUTE_TYPE matching type: " + typeID);
1646 if (attrType.getLabel().equals(typeName)) {
1650 throw new IllegalArgumentException(
"No ATTRIBUTE_TYPE matching type: " + typeName);
1672 public BlackboardAttribute(
int attributeTypeID, String moduleName,
int valueInt)
throws IllegalArgumentException {
1696 this(attributeTypeID, moduleName, valueInt);
1697 this.context = replaceNulls(context);
1720 long valueLong)
throws IllegalArgumentException {
1746 this(attributeTypeID, moduleName, valueLong);
1747 this.context = replaceNulls(context);
1768 double valueDouble)
throws IllegalArgumentException {
1791 double valueDouble) {
1792 this(attributeTypeID, moduleName, valueDouble);
1793 this.context = replaceNulls(context);
1813 public BlackboardAttribute(
int attributeTypeID, String moduleName, String valueString)
throws IllegalArgumentException {
1836 String valueString) {
1837 this(attributeTypeID, moduleName, valueString);
1838 this.context = replaceNulls(context);
1858 public BlackboardAttribute(
int attributeTypeID, String moduleName, byte[] valueBytes)
throws IllegalArgumentException {
1881 byte[] valueBytes) {
1882 this(attributeTypeID, moduleName, valueBytes);
1883 this.context = replaceNulls(context);
1898 setArtifactId(artifactID);
1914 setCaseDatabase(sleuthkitCase);
1937 String getContextString() {
1992 return getSourcesCSV();
static final Type TSK_CORRELATION_VALUE
static final Type TSK_BSSID
static final Type TSK_PERMISSIONS
BlackboardAttribute(int attributeTypeID, String moduleName, String context, byte[] valueBytes)
void setCase(SleuthkitCase sleuthkitCase)
Type(int typeID, String typeName, String displayName, TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE valueType)
static final Type TSK_SSID
String getAttributeTypeDisplayName()
static final Type TSK_GEO_VPRECISION
static final Type TSK_USER_ID
static final Type TSK_PATH
static final Type TSK_URL
static final Type TSK_ORGANIZATION
static String epochToTime(long epoch)
static final Type TSK_MSG_ID
BlackboardAttribute.TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE getValueType()
static ATTRIBUTE_TYPE fromID(int typeID)
static final Type TSK_TEXT_LANGUAGE
static final Type TSK_MSG_REPLY_ID
static final Type TSK_PROCESSOR_ARCHITECTURE
static final Type TSK_BRAND_NAME
static final Type TSK_GEO_WAYPOINTS
static final Type TSK_ISDELETED
static final Type TSK_COUNTRY
static final Type TSK_PASSWORD_SETTINGS
static final Type TSK_EMAIL_REPLYTO
void setArtifactID(long artifactID)
static final Type TSK_ACCOUNT_TYPE
static final Type TSK_MAC_ADDRESS
static final Type TSK_OWNER
static final Type TSK_REMOTE_PATH
static final Type TSK_DATETIME_END
static final Type TSK_GEO_HPRECISION
static final Type TSK_PHONE_NUMBER_OFFICE
static final Type TSK_TEMP_DIR
static final Type TSK_FILE_TYPE_EXT
static final Type TSK_HEADERS
String getAttributeTypeName()
static final Type TSK_DATETIME_MODIFIED
BlackboardAttribute(Type attributeType, String source, long valueLong)
BlackboardAttribute(Type attributeType, String source, int valueInt)
static final Type TSK_PHONE_NUMBER_FROM
static final Type TSK_GEO_LONGITUDE_START
static final Type TSK_EMAIL_CONTENT_HTML
static final Type TSK_DEVICE_ID
static final Type TSK_PATH_SOURCE
static final Type TSK_REALM
static final Type TSK_DISTANCE_FROM_HOMEPOINT
static final Type TSK_CARD_SCHEME
Content getContentById(long id)
static final Type TSK_GEO_BEARING
static final Type TSK_DEVICE_MODEL
static final Type TSK_CARD_EXPIRATION
static final Type TSK_LAST_PRINTED_DATETIME
static final Type TSK_READ_STATUS
static final Type TSK_HOST
static final Type TSK_FLAG
static final Type TSK_GEO_VELOCITY
static final Type TSK_ACCOUNT_SETTINGS
static final Type TSK_PASSWORD
static final Type TSK_CARD_TYPE
static final Type TSK_HASH_SHA2_256
BlackboardAttribute(int attributeTypeID, String moduleName, String context, int valueInt)
static final Type TSK_SUBJECT
static final Type TSK_KEYWORD_PREVIEW
static final Type TSK_VERSION
static final Type TSK_DATETIME_PASSWORD_RESET
static final Type TSK_DATETIME_PASSWORD_FAIL
BlackboardArtifact getBlackboardArtifact(long artifactID)
static final Type TSK_REFERRER
static TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE fromLabel(String typeName)
static final Type TSK_DIRECTION
static final Type TSK_CATEGORY
static final Type TSK_DATETIME_ACCESSED
static final Type TSK_TEXT_FILE
static final Type TSK_CARD_NUMBER
static final Type TSK_DISPLAY_NAME
TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE getValueType()
static final Type TSK_NAME_PERSON
static final Type TSK_CALENDAR_ENTRY_TYPE
static final Type TSK_USER_NAME
static final Type TSK_BYTES_RECEIVED
static final Type TSK_THREAD_ID
BlackboardAttribute(int attributeTypeID, String moduleName, int valueInt)
BlackboardAttribute(int attributeTypeID, String moduleName, String valueString)
static final Type TSK_PATH_ID
static final Type TSK_URL_DECODED
static final Type TSK_GEO_LATITUDE
static final Type TSK_IMSI
String getDisplayString()
static final Type TSK_EMAIL_HOME
static final Type TSK_VALUE
static final Type TSK_LOCATION
static final Type TSK_GEO_LONGITUDE_END
static final Type TSK_GEO_MAPDATUM
static final Type TSK_EMAIL_CC
static final Type TSK_TEXT
static final Type TSK_KEYWORD
static final Type TSK_ENTROPY
static final Type TSK_EMAIL_CONTENT_RTF
static final Type TSK_RULE
BlackboardAttribute(int attributeTypeID, String moduleName, double valueDouble)
static final Type TSK_DEVICE_NAME
static final Type TSK_MIN_COUNT
static final Type TSK_CITY
static final Type TSK_DATETIME_CREATED
static final Type TSK_EMAIL
static final Type TSK_KEYWORD_REGEXP
static final Type TSK_EMAIL_TO
static final Type TSK_KEYWORD_SEARCH_DOCUMENT_ID
static final Type TSK_GEO_LONGITUDE
BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, String valueString)
static final Type TSK_HASH_PHOTODNA
static final Type TSK_ICCID
static final Type TSK_CARD_SERVICE_CODE
TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE getValueType()
static final Type TSK_COUNT
static final Type TSK_GROUPS
BlackboardAttribute.Type getAttributeType()
BlackboardAttribute(Type attributeType, String source, byte[] valueBytes)
static final Type TSK_KEYWORD_SEARCH_TYPE
static final Type TSK_GEO_TRACKPOINTS
static final Type TSK_GEO_LATITUDE_START
static final Type TSK_EMAIL_FROM
static TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE fromType(long typeId)
static final Type TSK_SHORTCUT
BlackboardAttribute(int attributeTypeID, String moduleName, String context, double valueDouble)
static final Type TSK_EMAIL_OFFICE
static final Type TSK_NAME
static final Type TSK_EMAIL_BCC
static final Type TSK_DATETIME
static final Type TSK_IS_ADMIN
static final Type TSK_CARD_LRC
static final Type TSK_DATETIME_RCVD
static final Type TSK_DISTANCE_TRAVELED
static final Type TSK_BYTES_SENT
boolean equals(Object that)
static final Type TSK_DOMAIN
boolean equals(Object that)
static final Type TSK_DATETIME_START
static final Type TSK_GEO_ALTITUDE
static final Type TSK_PHONE_NUMBER_HOME
static ATTRIBUTE_TYPE fromLabel(String typeName)
static final Type TSK_GEO_LATITUDE_END
static final Type TSK_ACTIVITY_TYPE
static final Type TSK_SERVER_NAME
BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, long valueLong)
static final Type TSK_PHONE_NUMBER
static final Type TSK_TITLE
BlackboardArtifact getParentArtifact()
BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, int valueInt)
static final Type TSK_PHONE_NUMBER_TO
static final Type TSK_GEO_AREAPOINTS
static final Type TSK_DEVICE_MAKE
static final Type TSK_SET_NAME
static final Type TSK_ASSOCIATED_ARTIFACT
static final Type TSK_DATETIME_SENT
BlackboardAttribute(Type attributeType, String source, double valueDouble)
static final Type TSK_IP_ADDRESS
BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, double valueDouble)
static final Type TSK_HASH_MD5
static final Type TSK_MESSAGE_TYPE
static final Type TSK_OTHER_CASES
BlackboardAttribute(int attributeTypeID, String moduleName, String context, long valueLong)
BlackboardAttribute(int attributeTypeID, String moduleName, String context, String valueString)
static final Type TSK_TL_EVENT_TYPE
static final Type TSK_HASH_SHA1
static final Type TSK_PASSWORD_HINT
static final Type TSK_LOCAL_PATH
static final Type TSK_COMMENT
static final Type TSK_IMEI
static final Type TSK_ATTACHMENTS
BlackboardAttribute(int attributeTypeID, String moduleName, long valueLong)
Type(BlackboardAttribute.ATTRIBUTE_TYPE type)
static final Type TSK_PHONE_NUMBER_MOBILE
static final Type TSK_HASH_SHA2_512
BlackboardAttribute(int attributeTypeID, String moduleName, byte[] valueBytes)
static final Type TSK_PROG_NAME
static final Type TSK_DATETIME_DELETED
static final Type TSK_CARD_DISCRETIONARY
static final Type TSK_HOME_DIR
BlackboardAttribute(ATTRIBUTE_TYPE attributeType, String source, byte[] valueBytes)
void addSource(String source)
static final Type TSK_BANK_NAME
static final Type TSK_MALWARE_DETECTED
static final Type TSK_STEG_DETECTED
static final Type TSK_PRODUCT_ID
static final Type TSK_EMAIL_CONTENT_PLAIN
List< String > getSources()
static final Type TSK_DESCRIPTION
BlackboardAttribute(Type attributeType, String source, String valueString)
static final Type TSK_CORRELATION_TYPE