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) {
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 {
620 static final List<Type> STANDARD_TYPES = Collections.unmodifiableList(Arrays.asList(
648 TSK_DATETIME_ACCESSED,
653 TSK_MALWARE_DETECTED,
659 TSK_EMAIL_CONTENT_PLAIN,
660 TSK_EMAIL_CONTENT_HTML,
661 TSK_EMAIL_CONTENT_RTF,
679 TSK_DATETIME_CREATED,
680 TSK_DATETIME_MODIFIED,
681 TSK_PROCESSOR_ARCHITECTURE,
686 TSK_PHONE_NUMBER_HOME,
687 TSK_PHONE_NUMBER_OFFICE,
688 TSK_PHONE_NUMBER_MOBILE,
689 TSK_PHONE_NUMBER_FROM,
696 TSK_CALENDAR_ENTRY_TYPE,
707 TSK_ASSOCIATED_ARTIFACT,
709 TSK_GEO_LATITUDE_START,
710 TSK_GEO_LATITUDE_END,
711 TSK_GEO_LONGITUDE_START,
712 TSK_GEO_LONGITUDE_END,
722 TSK_CARD_SERVICE_CODE,
723 TSK_CARD_DISCRETIONARY,
725 TSK_KEYWORD_SEARCH_DOCUMENT_ID,
733 TSK_KEYWORD_SEARCH_TYPE,
744 TSK_DATETIME_DELETED,
745 TSK_DATETIME_PASSWORD_RESET,
746 TSK_DATETIME_PASSWORD_FAIL,
748 TSK_PASSWORD_SETTINGS,
749 TSK_ACCOUNT_SETTINGS,
755 TSK_DISTANCE_TRAVELED,
756 TSK_DISTANCE_FROM_HOMEPOINT,
760 TSK_LAST_PRINTED_DATETIME,
768 TSK_CORRELATION_TYPE,
769 TSK_CORRELATION_VALUE,
773 private static final long serialVersionUID = 1L;
774 private final String typeName;
775 private final int typeID;
776 private final String displayName;
788 this.typeID = typeID;
789 this.typeName = typeName;
790 this.displayName = displayName;
791 this.valueType = valueType;
801 this.typeID = type.getTypeID();
802 this.typeName = type.getLabel();
803 this.displayName = type.getDisplayName();
804 this.valueType = type.getValueType();
813 return this.valueType;
822 return this.typeName;
840 return this.displayName;
863 return this.typeName.equals(that.getTypeName())
864 && this.displayName.equals(that.getDisplayName())
865 && this.typeID == that.getTypeID()
866 && this.valueType == that.getValueType();
872 hash = 63 * hash + Objects.hashCode(this.typeID);
873 hash = 63 * hash + Objects.hashCode(this.displayName);
874 hash = 63 * hash + Objects.hashCode(this.typeName);
875 hash = 63 * hash + Objects.hashCode(this.valueType);
881 return "(typeID= " + this.typeID
882 +
", displayName=" + this.displayName
883 +
", typeName=" + this.typeName
884 +
", valueType=" + this.valueType +
")";
924 private final long typeId;
925 private final String typeName;
939 this.typeName = typeName;
963 return this.typeName;
982 if (valueType.
getType() == typeId) {
986 throw new IllegalArgumentException(
"No TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE matching type: " + typeId);
1005 if (valueType.
getLabel().equals(typeName)) {
1009 throw new IllegalArgumentException(
"No TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE matching type: " + typeName);
1022 TSK_URL(1,
"TSK_URL",
1023 bundle.getString(
"BlackboardAttribute.tskUrl.text"),
1025 TSK_DATETIME(2,
"TSK_DATETIME",
1026 bundle.getString(
"BlackboardAttribute.tskDatetime.text"),
1028 TSK_NAME(3,
"TSK_NAME",
1029 bundle.getString(
"BlackboardAttribute.tskName.text"),
1031 TSK_PROG_NAME(4,
"TSK_PROG_NAME",
1032 bundle.getString(
"BlackboardAttribute.tskProgName.text"),
1034 TSK_VALUE(6,
"TSK_VALUE",
1035 bundle.getString(
"BlackboardAttribute.tskValue.text"),
1037 TSK_FLAG(7,
"TSK_FLAG",
1038 bundle.getString(
"BlackboardAttribute.tskFlag.text"),
1040 TSK_PATH(8,
"TSK_PATH",
1041 bundle.getString(
"BlackboardAttribute.tskPath.text"),
1043 TSK_KEYWORD(10,
"TSK_KEYWORD",
1044 bundle.getString(
"BlackboardAttribute.tskKeyword.text"),
1046 TSK_KEYWORD_REGEXP(11,
"TSK_KEYWORD_REGEXP",
1047 bundle.getString(
"BlackboardAttribute.tskKeywordRegexp.text"),
1049 TSK_KEYWORD_PREVIEW(12,
"TSK_KEYWORD_PREVIEW",
1050 bundle.getString(
"BlackboardAttribute.tskKeywordPreview.text"),
1056 TSK_KEYWORD_SET(13,
"TSK_KEYWORD_SET",
1057 bundle.getString(
"BlackboardAttribute.tskKeywordSet.text"),
1059 TSK_USER_NAME(14,
"TSK_USER_NAME",
1060 bundle.getString(
"BlackboardAttribute.tskUserName.text"),
1062 TSK_DOMAIN(15,
"TSK_DOMAIN",
1063 bundle.getString(
"BlackboardAttribute.tskDomain.text"),
1065 TSK_PASSWORD(16,
"TSK_PASSWORD",
1066 bundle.getString(
"BlackboardAttribute.tskPassword.text"),
1068 TSK_NAME_PERSON(17,
"TSK_NAME_PERSON",
1069 bundle.getString(
"BlackboardAttribute.tskNamePerson.text"),
1071 TSK_DEVICE_MODEL(18,
"TSK_DEVICE_MODEL",
1072 bundle.getString(
"BlackboardAttribute.tskDeviceModel.text"),
1074 TSK_DEVICE_MAKE(19,
"TSK_DEVICE_MAKE",
1075 bundle.getString(
"BlackboardAttribute.tskDeviceMake.text"),
1077 TSK_DEVICE_ID(20,
"TSK_DEVICE_ID",
1078 bundle.getString(
"BlackboardAttribute.tskDeviceId.text"),
1080 TSK_EMAIL(21,
"TSK_EMAIL",
1081 bundle.getString(
"BlackboardAttribute.tskEmail.text"),
1083 TSK_HASH_MD5(22,
"TSK_HASH_MD5",
1084 bundle.getString(
"BlackboardAttribute.tskHashMd5.text"),
1086 TSK_HASH_SHA1(23,
"TSK_HASH_SHA1",
1087 bundle.getString(
"BlackboardAttribute.tskHashSha1.text"),
1089 TSK_HASH_SHA2_256(24,
"TSK_HASH_SHA2_256",
1090 bundle.getString(
"BlackboardAttribute.tskHashSha225.text"),
1092 TSK_HASH_SHA2_512(25,
"TSK_HASH_SHA2_512",
1093 bundle.getString(
"BlackboardAttribute.tskHashSha2512.text"),
1095 TSK_TEXT(26,
"TSK_TEXT",
1096 bundle.getString(
"BlackboardAttribute.tskText.text"),
1098 TSK_TEXT_FILE(27,
"TSK_TEXT_FILE",
1099 bundle.getString(
"BlackboardAttribute.tskTextFile.text"),
1101 TSK_TEXT_LANGUAGE(28,
"TSK_TEXT_LANGUAGE",
1102 bundle.getString(
"BlackboardAttribute.tskTextLanguage.text"),
1104 TSK_ENTROPY(29,
"TSK_ENTROPY",
1105 bundle.getString(
"BlackboardAttribute.tskEntropy.text"),
1111 TSK_HASHSET_NAME(30,
"TSK_HASHSET_NAME",
1112 bundle.getString(
"BlackboardAttribute.tskHashsetName.text"),
1118 TSK_INTERESTING_FILE(31,
"TSK_INTERESTING_FILE",
1119 bundle.getString(
"BlackboardAttribute.tskInterestingFile.text"),
1121 TSK_REFERRER(32,
"TSK_REFERRER",
1122 bundle.getString(
"BlackboardAttribute.tskReferrer.text"),
1124 TSK_DATETIME_ACCESSED(33,
"TSK_DATETIME_ACCESSED",
1125 bundle.getString(
"BlackboardAttribute.tskDateTimeAccessed.text"),
1127 TSK_IP_ADDRESS(34,
"TSK_IP_ADDRESS",
1128 bundle.getString(
"BlackboardAttribute.tskIpAddress.text"),
1130 TSK_PHONE_NUMBER(35,
"TSK_PHONE_NUMBER",
1131 bundle.getString(
"BlackboardAttribute.tskPhoneNumber.text"),
1133 TSK_PATH_ID(36,
"TSK_PATH_ID",
1134 bundle.getString(
"BlackboardAttribute.tskPathId.text"),
1136 TSK_SET_NAME(37,
"TSK_SET_NAME",
1137 bundle.getString(
"BlackboardAttribute.tskSetName.text"),
1143 TSK_ENCRYPTION_DETECTED(38,
"TSK_ENCRYPTION_DETECTED",
1144 bundle.getString(
"BlackboardAttribute.tskEncryptionDetected.text"),
1146 TSK_MALWARE_DETECTED(39,
"TSK_MALWARE_DETECTED",
1147 bundle.getString(
"BlackboardAttribute.tskMalwareDetected.text"),
1149 TSK_STEG_DETECTED(40,
"TSK_STEG_DETECTED",
1150 bundle.getString(
"BlackboardAttribute.tskStegDetected.text"),
1152 TSK_EMAIL_TO(41,
"TSK_EMAIL_TO",
1153 bundle.getString(
"BlackboardAttribute.tskEmailTo.text"),
1155 TSK_EMAIL_CC(42,
"TSK_EMAIL_CC",
1156 bundle.getString(
"BlackboardAttribute.tskEmailCc.text"),
1158 TSK_EMAIL_BCC(43,
"TSK_EMAIL_BCC",
1159 bundle.getString(
"BlackboardAttribute.tskEmailBcc.text"),
1161 TSK_EMAIL_FROM(44,
"TSK_EMAIL_FROM",
1162 bundle.getString(
"BlackboardAttribute.tskEmailFrom.text"),
1164 TSK_EMAIL_CONTENT_PLAIN(45,
"TSK_EMAIL_CONTENT_PLAIN",
1165 bundle.getString(
"BlackboardAttribute.tskEmailContentPlain.text"),
1167 TSK_EMAIL_CONTENT_HTML(46,
"TSK_EMAIL_CONTENT_HTML",
1168 bundle.getString(
"BlackboardAttribute.tskEmailContentHtml.text"),
1170 TSK_EMAIL_CONTENT_RTF(47,
"TSK_EMAIL_CONTENT_RTF",
1171 bundle.getString(
"BlackboardAttribute.tskEmailContentRtf.text"),
1173 TSK_MSG_ID(48,
"TSK_MSG_ID",
1174 bundle.getString(
"BlackboardAttribute.tskMsgId.text"),
1176 TSK_MSG_REPLY_ID(49,
"TSK_MSG_REPLY_ID",
1177 bundle.getString(
"BlackboardAttribute.tskMsgReplyId.text"),
1179 TSK_DATETIME_RCVD(50,
"TSK_DATETIME_RCVD",
1180 bundle.getString(
"BlackboardAttribute.tskDateTimeRcvd.text"),
1182 TSK_DATETIME_SENT(51,
"TSK_DATETIME_SENT",
1183 bundle.getString(
"BlackboardAttribute.tskDateTimeSent.text"),
1185 TSK_SUBJECT(52,
"TSK_SUBJECT",
1186 bundle.getString(
"BlackboardAttribute.tskSubject.text"),
1188 TSK_TITLE(53,
"TSK_TITLE",
1189 bundle.getString(
"BlackboardAttribute.tskTitle.text"),
1191 TSK_GEO_LATITUDE(54,
"TSK_GEO_LATITUDE",
1192 bundle.getString(
"BlackboardAttribute.tskGeoLatitude.text"),
1194 TSK_GEO_LONGITUDE(55,
"TSK_GEO_LONGITUDE",
1195 bundle.getString(
"BlackboardAttribute.tskGeoLongitude.text"),
1197 TSK_GEO_VELOCITY(56,
"TSK_GEO_VELOCITY",
1198 bundle.getString(
"BlackboardAttribute.tskGeoVelocity.text"),
1200 TSK_GEO_ALTITUDE(57,
"TSK_GEO_ALTITUDE",
1201 bundle.getString(
"BlackboardAttribute.tskGeoAltitude.text"),
1203 TSK_GEO_BEARING(58,
"TSK_GEO_BEARING",
1204 bundle.getString(
"BlackboardAttribute.tskGeoBearing.text"),
1206 TSK_GEO_HPRECISION(59,
"TSK_GEO_HPRECISION",
1207 bundle.getString(
"BlackboardAttribute.tskGeoHPrecision.text"),
1209 TSK_GEO_VPRECISION(60,
"TSK_GEO_VPRECISION",
1210 bundle.getString(
"BlackboardAttribute.tskGeoVPrecision.text"),
1212 TSK_GEO_MAPDATUM(61,
"TSK_GEO_MAPDATUM",
1213 bundle.getString(
"BlackboardAttribute.tskGeoMapDatum.text"),
1220 TSK_FILE_TYPE_SIG(62,
"TSK_FILE_TYPE_SIG",
1221 bundle.getString(
"BlackboardAttribute.tskFileTypeSig.text"),
1223 TSK_FILE_TYPE_EXT(63,
"TSK_FILE_TYPE_EXT",
1224 bundle.getString(
"BlackboardAttribute.tskFileTypeExt.text"),
1231 TSK_TAGGED_ARTIFACT(64,
"TSK_TAGGED_ARTIFACT",
1232 bundle.getString(
"BlackboardAttribute.tskTaggedArtifact.text"),
1239 TSK_TAG_NAME(65,
"TSK_TAG_NAME",
1240 bundle.getString(
"BlackboardAttribute.tskTagName.text"),
1242 TSK_COMMENT(66,
"TSK_COMMENT",
1243 bundle.getString(
"BlackboardAttribute.tskComment.text"),
1245 TSK_URL_DECODED(67,
"TSK_URL_DECODED",
1246 bundle.getString(
"BlackboardAttribute.tskUrlDecoded.text"),
1248 TSK_DATETIME_CREATED(68,
"TSK_DATETIME_CREATED",
1249 bundle.getString(
"BlackboardAttribute.tskDateTimeCreated.text"),
1251 TSK_DATETIME_MODIFIED(69,
"TSK_DATETIME_MODIFIED",
1252 bundle.getString(
"BlackboardAttribute.tskDateTimeModified.text"),
1254 TSK_PROCESSOR_ARCHITECTURE(70,
"TSK_PROCESSOR_ARCHITECTURE",
1255 bundle.getString(
"BlackboardAttribute.tskProcessorArchitecture.text"),
1257 TSK_VERSION(71,
"TSK_VERSION",
1258 bundle.getString(
"BlackboardAttribute.tskVersion.text"),
1260 TSK_USER_ID(72,
"TSK_USER_ID",
1261 bundle.getString(
"BlackboardAttribute.tskUserId.text"),
1263 TSK_DESCRIPTION(73,
"TSK_DESCRIPTION",
1264 bundle.getString(
"BlackboardAttribute.tskDescription.text"),
1266 TSK_MESSAGE_TYPE(74,
"TSK_MESSAGE_TYPE",
1267 bundle.getString(
"BlackboardAttribute.tskMessageType.text"),
1269 TSK_PHONE_NUMBER_HOME(75,
"TSK_PHONE_NUMBER_HOME",
1270 bundle.getString(
"BlackboardAttribute.tskPhoneNumberHome.text"),
1272 TSK_PHONE_NUMBER_OFFICE(76,
"TSK_PHONE_NUMBER_OFFICE",
1273 bundle.getString(
"BlackboardAttribute.tskPhoneNumberOffice.text"),
1275 TSK_PHONE_NUMBER_MOBILE(77,
"TSK_PHONE_NUMBER_MOBILE",
1276 bundle.getString(
"BlackboardAttribute.tskPhoneNumberMobile.text"),
1278 TSK_PHONE_NUMBER_FROM(78,
"TSK_PHONE_NUMBER_FROM",
1279 bundle.getString(
"BlackboardAttribute.tskPhoneNumberFrom.text"),
1281 TSK_PHONE_NUMBER_TO(79,
"TSK_PHONE_NUMBER_TO",
1282 bundle.getString(
"BlackboardAttribute.tskPhoneNumberTo.text"),
1284 TSK_DIRECTION(80,
"TSK_DIRECTION",
1285 bundle.getString(
"BlackboardAttribute.tskDirection.text"),
1287 TSK_EMAIL_HOME(81,
"TSK_EMAIL_HOME",
1288 bundle.getString(
"BlackboardAttribute.tskEmailHome.text"),
1290 TSK_EMAIL_OFFICE(82,
"TSK_EMAIL_OFFICE",
1291 bundle.getString(
"BlackboardAttribute.tskEmailOffice.text"),
1293 TSK_DATETIME_START(83,
"TSK_DATETIME_START",
1294 bundle.getString(
"BlackboardAttribute.tskDateTimeStart.text"),
1296 TSK_DATETIME_END(84,
"TSK_DATETIME_END",
1297 bundle.getString(
"BlackboardAttribute.tskDateTimeEnd.text"),
1299 TSK_CALENDAR_ENTRY_TYPE(85,
"TSK_CALENDAR_ENTRY_TYPE",
1300 bundle.getString(
"BlackboardAttribute.tskCalendarEntryType.text"),
1302 TSK_LOCATION(86,
"TSK_LOCATION",
1303 bundle.getString(
"BlackboardAttribute.tskLocation.text"),
1305 TSK_SHORTCUT(87,
"TSK_SHORTCUT",
1306 bundle.getString(
"BlackboardAttribute.tskShortcut.text"),
1308 TSK_DEVICE_NAME(88,
"TSK_DEVICE_NAME",
1309 bundle.getString(
"BlackboardAttribute.tskDeviceName.text"),
1311 TSK_CATEGORY(89,
"TSK_CATEGORY",
1312 bundle.getString(
"BlackboardAttribute.tskCategory.text"),
1314 TSK_EMAIL_REPLYTO(90,
"TSK_EMAIL_REPLYTO",
1315 bundle.getString(
"BlackboardAttribute.tskEmailReplyTo.text"),
1317 TSK_SERVER_NAME(91,
"TSK_SERVER_NAME",
1318 bundle.getString(
"BlackboardAttribute.tskServerName.text"),
1320 TSK_COUNT(92,
"TSK_COUNT",
1321 bundle.getString(
"BlackboardAttribute.tskCount.text"),
1323 TSK_MIN_COUNT(93,
"TSK_MIN_COUNT",
1324 bundle.getString(
"BlackboardAttribute.tskMinCount.text"),
1326 TSK_PATH_SOURCE(94,
"TSK_PATH_SOURCE",
1327 bundle.getString(
"BlackboardAttribute.tskPathSource.text"),
1329 TSK_PERMISSIONS(95,
"TSK_PERMISSIONS",
1330 bundle.getString(
"BlackboardAttribute.tskPermissions.text"),
1332 TSK_ASSOCIATED_ARTIFACT(96,
"TSK_ASSOCIATED_ARTIFACT",
1333 bundle.getString(
"BlackboardAttribute.tskAssociatedArtifact.text"),
1335 TSK_ISDELETED(97,
"TSK_ISDELETED",
1336 bundle.getString(
"BlackboardAttribute.tskIsDeleted.text"),
1338 TSK_GEO_LATITUDE_START(98,
"TSK_GEO_LATITUDE_START",
1339 bundle.getString(
"BlackboardAttribute.tskGeoLatitudeStart.text"),
1341 TSK_GEO_LATITUDE_END(99,
"TSK_GEO_LATITUDE_END",
1342 bundle.getString(
"BlackboardAttribute.tskGeoLatitudeEnd.text"),
1344 TSK_GEO_LONGITUDE_START(100,
"TSK_GEO_LONGITUDE_START",
1345 bundle.getString(
"BlackboardAttribute.tskGeoLongitudeStart.text"),
1347 TSK_GEO_LONGITUDE_END(101,
"TSK_GEO_LONGITUDE_END",
1348 bundle.getString(
"BlackboardAttribute.tskGeoLongitudeEnd.text"),
1350 TSK_READ_STATUS(102,
"TSK_READ_STATUS",
1351 bundle.getString(
"BlackboardAttribute.tskReadStatus.text"),
1353 TSK_LOCAL_PATH(103,
"TSK_LOCAL_PATH",
1354 bundle.getString(
"BlackboardAttribute.tskLocalPath.text"),
1356 TSK_REMOTE_PATH(104,
"TSK_REMOTE_PATH",
1357 bundle.getString(
"BlackboardAttribute.tskRemotePath.text"),
1359 TSK_TEMP_DIR(105,
"TSK_TEMP_DIR",
1360 bundle.getString(
"BlackboardAttribute.tskTempDir.text"),
1362 TSK_PRODUCT_ID(106,
"TSK_PRODUCT_ID",
1363 bundle.getString(
"BlackboardAttribute.tskProductId.text"),
1365 TSK_OWNER(107,
"TSK_OWNER",
1366 bundle.getString(
"BlackboardAttribute.tskOwner.text"),
1368 TSK_ORGANIZATION(108,
"TSK_ORGANIZATION",
1369 bundle.getString(
"BlackboardAttribute.tskOrganization.text"),
1371 TSK_CARD_NUMBER(109,
"TSK_CARD_NUMBER",
1372 bundle.getString(
"BlackboardAttribute.tskCardNumber.text"),
1374 TSK_CARD_EXPIRATION(110,
"TSK_CARD_EXPIRATION",
1375 bundle.getString(
"BlackboardAttribute.tskCardExpiration.text"),
1377 TSK_CARD_SERVICE_CODE(111,
"TSK_CARD_SERVICE_CODE",
1378 bundle.getString(
"BlackboardAttribute.tskCardServiceCode.text"),
1380 TSK_CARD_DISCRETIONARY(112,
"TSK_CARD_DISCRETIONARY",
1381 bundle.getString(
"BlackboardAttribute.tskCardDiscretionary.text"),
1383 TSK_CARD_LRC(113,
"TSK_CARD_LRC",
1384 bundle.getString(
"BlackboardAttribute.tskCardLRC.text"),
1386 TSK_KEYWORD_SEARCH_DOCUMENT_ID(114,
"TSK_KEYWORD_SEARCH_DOCUMENT_ID",
1387 bundle.getString(
"BlackboardAttribute.tskKeywordSearchDocumentID.text"),
1389 TSK_CARD_SCHEME(115,
"TSK_CARD_SCHEME",
1390 bundle.getString(
"BlackboardAttribute.tskCardScheme.text"),
1392 TSK_CARD_TYPE(116,
"TSK_CARD_TYPE",
1393 bundle.getString(
"BlackboardAttribute.tskCardType.text"),
1395 TSK_BRAND_NAME(117,
"TSK_BRAND_NAME",
1396 bundle.getString(
"BlackboardAttribute.tskBrandName.text"),
1398 TSK_BANK_NAME(118,
"TSK_BANK_NAME",
1399 bundle.getString(
"BlackboardAttribute.tskBankName.text"),
1401 TSK_COUNTRY(119,
"TSK_COUNTRY",
1402 bundle.getString(
"BlackboardAttribute.tskCountry.text"),
1404 TSK_CITY(120,
"TSK_CITY",
1405 bundle.getString(
"BlackboardAttribute.tskCity.text"),
1407 TSK_ACCOUNT_TYPE(121,
"TSK_ACCOUNT_TYPE",
1408 bundle.getString(
"BlackboardAttribute.tskAccountType.text"),
1413 TSK_KEYWORD_SEARCH_TYPE(122,
"TSK_KEYWORD_SEARCH_TYPE",
1414 bundle.getString(
"BlackboardAttribute.tskKeywordSearchType.text"),
1416 TSK_HEADERS(123,
"TSK_HEADERS",
1417 bundle.getString(
"BlackboardAttribute.tskHeaders.text"),
1419 TSK_ID(124,
"TSK_ID",
1420 bundle.getString(
"BlackboardAttribute.tskId.text"),
1422 TSK_SSID(125,
"TSK_SSID",
1423 bundle.getString(
"BlackboardAttribute.tskSsid.text"),
1425 TSK_BSSID(126,
"TSK_BSSID",
1426 bundle.getString(
"BlackboardAttribute.tskBssid.text"),
1428 TSK_MAC_ADDRESS(127,
"TSK_MAC_ADDRESS",
1429 bundle.getString(
"BlackboardAttribute.tskMacAddress.text"),
1431 TSK_IMEI(128,
"TSK_IMEI",
1432 bundle.getString(
"BlackboardAttribute.tskImei.text"),
1434 TSK_IMSI(129,
"TSK_IMSI",
1435 bundle.getString(
"BlackboardAttribute.tskImsi.text"),
1437 TSK_ICCID(130,
"TSK_ICCID",
1438 bundle.getString(
"BlackboardAttribute.tskIccid.text"),
1440 TSK_THREAD_ID(131,
"TSK_THREAD_ID",
1441 bundle.getString(
"BlackboardAttribute.tskthreadid.text"),
1447 TSK_TL_EVENT_TYPE(132,
"TSK_TL_EVENT_TYPE",
1448 bundle.getString(
"BlackboardAttribute.tskTLEventType.text"),
1450 TSK_DATETIME_DELETED(133,
"TSK_DATETIME_DELETED",
1451 bundle.getString(
"BlackboardAttribute.tskdatetimedeleted.text"),
1453 TSK_DATETIME_PASSWORD_RESET(134,
"TSK_DATETIME_PASSWORD_RESET",
1454 bundle.getString(
"BlackboardAttribute.tskdatetimepwdreset.text"),
1456 TSK_DATETIME_PASSWORD_FAIL(135,
"TSK_DATETIME_PWD_FAIL",
1457 bundle.getString(
"BlackboardAttribute.tskdatetimepwdfail.text"),
1459 TSK_DISPLAY_NAME(136,
"TSK_DISPLAY_NAME",
1460 bundle.getString(
"BlackboardAttribute.tskdisplayname.text"),
1462 TSK_PASSWORD_SETTINGS(137,
"TSK_PASSWORD_SETTINGS",
1463 bundle.getString(
"BlackboardAttribute.tskpasswordsettings.text"),
1465 TSK_ACCOUNT_SETTINGS(138,
"TSK_ACCOUNT_SETTINGS",
1466 bundle.getString(
"BlackboardAttribute.tskaccountsettings.text"),
1468 TSK_PASSWORD_HINT(139,
"TSK_PASSWORD_HINT",
1469 bundle.getString(
"BlackboardAttribute.tskpasswordhint.text"),
1471 TSK_GROUPS(140,
"TSK_GROUPS",
1472 bundle.getString(
"BlackboardAttribute.tskgroups.text"),
1479 TSK_ATTACHMENTS(141,
"TSK_ATTACHMENTS",
1480 bundle.getString(
"BlackboardAttribute.tskattachments.text"),
1486 TSK_GEO_TRACKPOINTS(142,
"TSK_GEO_TRACKPOINTS",
1487 bundle.getString(
"BlackboardAttribute.tskgeopath.text"),
1493 TSK_GEO_WAYPOINTS(143,
"TSK_GEO_WAYPOINTS",
1494 bundle.getString(
"BlackboardAttribute.tskgeowaypoints.text"),
1496 TSK_DISTANCE_TRAVELED(144,
"TSK_DISTANCE_TRAVELED",
1497 bundle.getString(
"BlackboardAttribute.tskdistancetraveled.text"),
1499 TSK_DISTANCE_FROM_HOMEPOINT(145,
"TSK_DISTANCE_FROM_HOMEPOINT",
1500 bundle.getString(
"BlackboardAttribute.tskdistancefromhome.text"),
1502 TSK_HASH_PHOTODNA(146,
"TSK_HASH_PHOTODNA",
1503 bundle.getString(
"BlackboardAttribute.tskhashphotodna.text"),
1505 TSK_BYTES_SENT(147,
"TSK_BYTES_SENT",
1506 bundle.getString(
"BlackboardAttribute.tskbytessent.text"),
1508 TSK_BYTES_RECEIVED(148,
"TSK_BYTES_RECEIVED",
1509 bundle.getString(
"BlackboardAttribute.tskbytesreceived.text"),
1511 TSK_LAST_PRINTED_DATETIME(149,
"TSK_LAST_PRINTED_DATETIME",
1512 bundle.getString(
"BlackboardAttribute.tsklastprinteddatetime.text"),
1514 TSK_RULE(150,
"TSK_RULE",
1515 bundle.getString(
"BlackboardAttribute.tskrule.text"),
1517 TSK_ACTIVITY_TYPE(151,
"TSK_ACTIVITY_TYPE",
1518 bundle.getString(
"BlackboardAttribute.tskActivityType.text"),
1524 TSK_GEO_AREAPOINTS(152,
"TSK_GEO_AREAPOINTS",
1525 bundle.getString(
"BlackboardAttribute.tskgeoareapoints.text"),
1527 TSK_REALM(153,
"TSK_REALM",
1528 bundle.getString(
"BlackboardAttribute.tskRealm.text"),
1530 TSK_HOST(154,
"TSK_HOST",
1531 bundle.getString(
"BlackboardAttribute.tskHost.text"),
1533 TSK_HOME_DIR(155,
"TSK_HOME_DIR",
1534 bundle.getString(
"BlackboardAttribute.tskHomeDir.text"),
1536 TSK_IS_ADMIN(156,
"TSK_IS_ADMIN",
1537 bundle.getString(
"BlackboardAttribute.tskIsAdmin.text"),
1539 TSK_CORRELATION_TYPE(157,
"TSK_CORRELATION_TYPE",
1540 bundle.getString(
"BlackboardAttribute.tskCorrelationType.text"),
1542 TSK_CORRELATION_VALUE(158,
"TSK_CORRELATION_VALUE",
1543 bundle.getString(
"BlackboardAttribute.tskCorrelationValue.text"),
1545 TSK_OTHER_CASES(159,
"TSK_OTHER_CASES",
1546 bundle.getString(
"BlackboardAttribute.tskOtherCases.text"),
1549 private final int typeID;
1550 private final String typeName;
1551 private final String displayName;
1563 this.typeID = typeID;
1564 this.typeName = typeName;
1565 this.displayName = displayName;
1566 this.valueType = valueType;
1587 return this.typeName;
1596 return this.displayName;
1605 return this.valueType;
1623 if (attrType.getTypeID() == typeID) {
1627 throw new IllegalArgumentException(
"No ATTRIBUTE_TYPE matching type: " + typeID);
1645 if (attrType.getLabel().equals(typeName)) {
1649 throw new IllegalArgumentException(
"No ATTRIBUTE_TYPE matching type: " + typeName);
1671 public BlackboardAttribute(
int attributeTypeID, String moduleName,
int valueInt)
throws IllegalArgumentException {
1695 this(attributeTypeID, moduleName, valueInt);
1696 this.context = replaceNulls(context);
1719 long valueLong)
throws IllegalArgumentException {
1745 this(attributeTypeID, moduleName, valueLong);
1746 this.context = replaceNulls(context);
1767 double valueDouble)
throws IllegalArgumentException {
1790 double valueDouble) {
1791 this(attributeTypeID, moduleName, valueDouble);
1792 this.context = replaceNulls(context);
1812 public BlackboardAttribute(
int attributeTypeID, String moduleName, String valueString)
throws IllegalArgumentException {
1835 String valueString) {
1836 this(attributeTypeID, moduleName, valueString);
1837 this.context = replaceNulls(context);
1857 public BlackboardAttribute(
int attributeTypeID, String moduleName, byte[] valueBytes)
throws IllegalArgumentException {
1880 byte[] valueBytes) {
1881 this(attributeTypeID, moduleName, valueBytes);
1882 this.context = replaceNulls(context);
1897 setArtifactId(artifactID);
1913 setCaseDatabase(sleuthkitCase);
1936 String getContextString() {
1991 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)
Long getDataSourceObjectID()
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