19package com.basistech.df.cybertriage.autopsy.ctapi;
21import com.basistech.df.cybertriage.autopsy.ctapi.json.AuthTokenRequest;
22import com.basistech.df.cybertriage.autopsy.ctapi.json.AuthTokenResponse;
23import com.basistech.df.cybertriage.autopsy.ctapi.json.AuthenticatedRequestData;
24import com.basistech.df.cybertriage.autopsy.ctapi.json.CTCloudBean;
25import com.basistech.df.cybertriage.autopsy.ctapi.json.CTCloudBeanResponse;
26import com.basistech.df.cybertriage.autopsy.ctapi.json.DecryptedLicenseResponse;
27import com.basistech.df.cybertriage.autopsy.ctapi.json.FileReputationRequest;
28import com.basistech.df.cybertriage.autopsy.ctapi.json.FileUploadRequest;
29import com.basistech.df.cybertriage.autopsy.ctapi.json.LicenseRequest;
30import com.basistech.df.cybertriage.autopsy.ctapi.json.LicenseResponse;
31import com.basistech.df.cybertriage.autopsy.ctapi.json.MetadataUploadRequest;
32import com.basistech.df.cybertriage.autopsy.ctapi.util.CTHostIDGenerationUtil;
33import java.io.InputStream;
34import java.util.Collections;
35import java.util.HashMap;
38import org.apache.commons.collections.CollectionUtils;
39import org.sleuthkit.autopsy.core.UserPreferences;
40import org.sleuthkit.autopsy.coreutils.Version;
50 private static final String
CTCLOUD_SERVER_HASH_PATH =
"/_ah/api/reputation/v1/query/file/hash/md5?query_types=CORRELATION,MALWARE";
68 private final CTCloudHttpClient
httpClient = CTCloudHttpClient.getInstance();
89 .
setFileUploadSize(fileUploadSize !=
null && fileUploadSize > 0 ? fileUploadSize :
null)
105 return new HashMap<String, String>() {
107 put(
"api_key", authenticatedRequestData.
getApiKey());
108 put(
"token", authenticatedRequestData.
getToken());
109 put(
"host_id", authenticatedRequestData.
getHostId());
115 if (CollectionUtils.isEmpty(md5Hashes)) {
116 return Collections.emptyList();
129 return resp ==
null || resp.
getItems() ==
null
130 ? Collections.emptyList()
AuthTokenResponse getAuthToken(DecryptedLicenseResponse decrypted)
static String getAppVersion()
final CTCloudHttpClient httpClient
static final String CTCLOUD_SERVER_HASH_PATH
List< CTCloudBean > getReputationResults(AuthenticatedRequestData authenticatedRequestData, List< String > md5Hashes)
static final String AUTOPSY_PRODUCT
void uploadMeta(AuthenticatedRequestData authenticatedRequestData, MetadataUploadRequest metaRequest)
static final String AUTH_TOKEN_REQUEST_PATH
static final String LICENSE_REQUEST_PATH
static CTApiDAO getInstance()
static final String CTCLOUD_UPLOAD_FILE_METADATA_PATH
static final CTApiDAO instance
LicenseResponse getLicenseInfo(String licenseString)
void uploadFile(FileUploadRequest fileUploadRequest)
static Map< String, String > getAuthParams(AuthenticatedRequestData authenticatedRequestData)
AuthTokenResponse getAuthToken(DecryptedLicenseResponse decrypted, Long fileUploadSize)
AuthTokenRequest setAutopsyVersion(String autopsyVersion)
AuthTokenRequest setHostId(String hostId)
AuthTokenRequest setBoostLicenseId(String boostLicenseId)
AuthTokenRequest setRequestFileUpload(boolean requestFileUpload)
AuthTokenRequest setFileUploadSize(Long fileUploadSize)
List< CTCloudBean > getItems()
FileReputationRequest setHashes(List< String > hashes)
LicenseRequest setTimeZoneId(String timeZoneId)
LicenseRequest setProduct(String product)
LicenseRequest setBoostLicenseCode(String boostLicenseCode)
LicenseRequest setHostId(String hostId)
static String generateLicenseHostID()
static String getInferredUserTimeZone()
static String getVersion()