diff --git a/Core/src/com/basistech/df/cybertriage/autopsy/ctapi/CTApiDAO.java b/Core/src/com/basistech/df/cybertriage/autopsy/ctapi/CTApiDAO.java index b8883df4b2ca3e9f13e142b3c89e8fb052426b5a..c358feec61a460b49c71addeeb741237198a26f6 100644 --- a/Core/src/com/basistech/df/cybertriage/autopsy/ctapi/CTApiDAO.java +++ b/Core/src/com/basistech/df/cybertriage/autopsy/ctapi/CTApiDAO.java @@ -96,7 +96,7 @@ public void uploadFile(String url, String fileName, InputStream fileIs) throws C } public void uploadMeta(AuthenticatedRequestData authenticatedRequestData, MetadataUploadRequest metaRequest) throws CTCloudException { - httpClient.doPost(AUTH_TOKEN_REQUEST_PATH, getAuthParams(authenticatedRequestData), metaRequest, null); + httpClient.doPost(CTCLOUD_UPLOAD_FILE_METADATA_PATH, getAuthParams(authenticatedRequestData), metaRequest, null); } private static Map<String, String> getAuthParams(AuthenticatedRequestData authenticatedRequestData) { diff --git a/Core/src/com/basistech/df/cybertriage/autopsy/ctapi/json/MetadataUploadRequest.java b/Core/src/com/basistech/df/cybertriage/autopsy/ctapi/json/MetadataUploadRequest.java index 57d59c3faa29e58b226f6bdc29a63e613eb6f94b..7d7e1e7f6473e7f405368fa1f6671d72806f71a9 100644 --- a/Core/src/com/basistech/df/cybertriage/autopsy/ctapi/json/MetadataUploadRequest.java +++ b/Core/src/com/basistech/df/cybertriage/autopsy/ctapi/json/MetadataUploadRequest.java @@ -38,10 +38,10 @@ public class MetadataUploadRequest { private String filePath; @JsonProperty("fileSize") - private long fileSizeBytes; + private Long fileSizeBytes; @JsonProperty("createdDate") - private long createdDate; + private Long createdDate; public String getFileUploadUrl() { return fileUploadUrl; @@ -88,20 +88,20 @@ public MetadataUploadRequest setFilePath(String filePath) { return this; } - public long getFileSizeBytes() { + public Long getFileSizeBytes() { return fileSizeBytes; } - public MetadataUploadRequest setFileSizeBytes(long fileSizeBytes) { + public MetadataUploadRequest setFileSizeBytes(Long fileSizeBytes) { this.fileSizeBytes = fileSizeBytes; return this; } - public long getCreatedDate() { + public Long getCreatedDate() { return createdDate; } - public MetadataUploadRequest setCreatedDate(long createdDate) { + public MetadataUploadRequest setCreatedDate(Long createdDate) { this.createdDate = createdDate; return this; } diff --git a/Core/src/com/basistech/df/cybertriage/autopsy/malwarescan/MalwareScanIngestModule.java b/Core/src/com/basistech/df/cybertriage/autopsy/malwarescan/MalwareScanIngestModule.java index dc54656a15914cda458236758e0f722bb9d5818f..56bfde735610b41a63fdc73e3b9d579a2ec39dfd 100644 --- a/Core/src/com/basistech/df/cybertriage/autopsy/malwarescan/MalwareScanIngestModule.java +++ b/Core/src/com/basistech/df/cybertriage/autopsy/malwarescan/MalwareScanIngestModule.java @@ -462,7 +462,7 @@ private void handleNonFoundResults(IngestJobState ingestJobState, Map<String, Li } if (performFileUpload) { - uploadFile(ingestJobState, correspondingObjIds.get(0)); + uploadFile(ingestJobState, sanitizedMd5, correspondingObjIds.get(0)); } ingestJobState.getUnidentifiedHashes().put(sanitizedMd5, correspondingObjIds); @@ -539,7 +539,7 @@ private static boolean isUploadable(AbstractFile af) { * @throws CTCloudException * @throws TskCoreException */ - private boolean uploadFile(IngestJobState ingestJobState, long objId) throws CTCloudException, TskCoreException { + private boolean uploadFile(IngestJobState ingestJobState, String md5, long objId) throws CTCloudException, TskCoreException { if (!ingestJobState.isUploadUnknownFiles() || ingestJobState.getIngestJobContext().fileIngestIsCancelled()) { return false; } @@ -567,11 +567,12 @@ private boolean uploadFile(IngestJobState ingestJobState, long objId) throws CTC // upload metadata MetadataUploadRequest metaRequest = new MetadataUploadRequest() - .setCreatedDate(af.getCrtime()) + .setCreatedDate(af.getCrtime() == 0 ? null : af.getCrtime()) .setFilePath(af.getUniquePath()) .setFileSizeBytes(af.getSize()) .setFileUploadUrl(authTokenResponse.getFileUploadUrl()) - .setMd5(af.getMd5Hash()) + .setMd5(md5) + // these may be missing, but that's fine .setSha1(af.getSha1Hash()) .setSha256(af.getSha256Hash());