diff --git a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/AbstractEntity.java b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/AbstractEntity.java index 669fb900..a647b1da 100644 --- a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/AbstractEntity.java +++ b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/AbstractEntity.java @@ -40,7 +40,7 @@ public abstract class AbstractEntity implements Serializable { @Column (name = "create_time") @ColumnDefault(value = "CURRENT_TIMESTAMP") @Generated(GenerationTime.INSERT) - private Date createTime;// = new Date(); + private Date createTime; /** * Default empty constructor is required for Hibernate. It is protected to diff --git a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/manager/ReferenceManifestRepository.java b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/manager/ReferenceManifestRepository.java index 7994255d..136d9b83 100644 --- a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/manager/ReferenceManifestRepository.java +++ b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/manager/ReferenceManifestRepository.java @@ -21,7 +21,7 @@ public interface ReferenceManifestRepository extends JpaRepository getBaseByManufacturerModel(String manufacturer, String model); @Query(value = "SELECT * FROM ReferenceManifest WHERE platformManufacturer = ?1 AND DTYPE = ?2", nativeQuery = true) - ReferenceManifest getByManufacturer(String manufacturer, String dType); + List getByManufacturer(String manufacturer, String dType); @Query(value = "SELECT * FROM ReferenceManifest WHERE platformModel = ?1 AND DTYPE = ?2", nativeQuery = true) ReferenceManifest getByModel(String model, String dType); @Query(value = "SELECT * FROM ReferenceManifest WHERE DTYPE = 'BaseReferenceManifest'", nativeQuery = true) diff --git a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/userdefined/certificate/attributes/ComponentClass.java b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/userdefined/certificate/attributes/ComponentClass.java index 56e0b122..40d9a5cc 100644 --- a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/userdefined/certificate/attributes/ComponentClass.java +++ b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/userdefined/certificate/attributes/ComponentClass.java @@ -32,8 +32,6 @@ public class ComponentClass { private static final Path JSON_PATH = FileSystems.getDefault() .getPath("/opt", "hirs", "default-properties", "component-class.json"); -// private static final Path JSON_PATH = FileSystems.getDefault() -// .getPath("/opt", "hirs", "default-properties", "component-class.json"); private static final String OTHER_STRING = "Other"; private static final String UNKNOWN_STRING = "Unknown"; private static final String NONE_STRING = "None"; diff --git a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/userdefined/rim/BaseReferenceManifest.java b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/userdefined/rim/BaseReferenceManifest.java index 92436ed8..2e9b7be5 100644 --- a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/userdefined/rim/BaseReferenceManifest.java +++ b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/userdefined/rim/BaseReferenceManifest.java @@ -3,7 +3,6 @@ package hirs.attestationca.persist.entity.userdefined.rim; import com.fasterxml.jackson.annotation.JsonIgnore; import hirs.attestationca.persist.entity.userdefined.ReferenceManifest; import hirs.attestationca.persist.service.ReferenceManifestServiceImpl; -import hirs.attestationca.persist.service.selector.ReferenceManifestSelector; import hirs.utils.SwidResource; import hirs.utils.xjc.BaseElement; import hirs.utils.xjc.Directory; @@ -92,105 +91,6 @@ public class BaseReferenceManifest extends ReferenceManifest { private String linkHref = null; private String linkRel = null; - /** - * This class enables the retrieval of BaseReferenceManifest by their attributes. - */ - public static class Selector extends ReferenceManifestSelector { - /** - * Construct a new ReferenceManifestSelector that will use - * the given (@link ReferenceManifestService} - * to retrieve one or may BaseReferenceManifest. - * - * @param referenceManifestManager the reference manifest manager to be used to retrieve - * reference manifests. - */ - public Selector(final ReferenceManifestServiceImpl referenceManifestManager) { - super(referenceManifestManager, BaseReferenceManifest.class); - } - - /** - * Specify the platform manufacturer that rims must have to be considered - * as matching. - * @param manufacturer string for the manufacturer - * @return this instance - */ - public Selector byManufacturer(final String manufacturer) { - setFieldValue(PLATFORM_MANUFACTURER, manufacturer); - return this; - } - - /** - * Specify the platform model that rims must have to be considered - * as matching. - * @param model string for the model - * @return this instance - */ - public Selector byModel(final String model) { - setFieldValue(PLATFORM_MODEL, model); - return this; - } - - /** - * Specify the platform manufacturer/model that rims must have to be considered - * as matching. - * @param manufacturer string for the manufacturer - * @param model string for the model - * @return this instance - */ - public Selector byManufacturerModel(final String manufacturer, final String model) { - setFieldValue(PLATFORM_MANUFACTURER, manufacturer); - setFieldValue(PLATFORM_MODEL, model); - return this; - } - - /** - * Specify the platform manufacturer/model/base flag that rims must have to be considered - * as matching. - * @param manufacturer string for the manufacturer - * @param model string for the model - * @return this instance - */ - public Selector byManufacturerModelBase(final String manufacturer, final String model) { - setFieldValue(PLATFORM_MANUFACTURER, manufacturer); - setFieldValue(PLATFORM_MODEL, model); - setFieldValue("swidPatch", false); - setFieldValue("swidSupplemental", false); - //setFieldValue("", false); //corpus? - return this; - } - - /** - * Specify the device name that rims must have to be considered - * as matching. - * @param deviceName string for the deviceName - * @return this instance - */ - public Selector byDeviceName(final String deviceName) { - setFieldValue("deviceName", deviceName); - return this; - } - - /** - * Specify the RIM hash associated with the base RIM. - * @param base64Hash the hash of the file associated with the rim - * @return this instance - */ - public Selector byBase64Hash(final String base64Hash) { - setFieldValue(BASE_64_HASH_FIELD, base64Hash); - return this; - } - - /** - * Specify the RIM hash associated with the base RIM. - * @param hexDecHash the hash of the file associated with the rim - * @return this instance - */ - public Selector byHexDecHash(final String hexDecHash) { - setFieldValue(HEX_DEC_HASH_FIELD, hexDecHash); - return this; - } - } - /** * Support constructor for the RIM object. * @@ -340,17 +240,6 @@ public class BaseReferenceManifest extends ReferenceManifest { } } - /** - * Get a Selector for use in retrieving ReferenceManifest. - * - * @param rimMan the ReferenceManifestService to be used to retrieve - * persisted RIMs - * @return a Selector instance to use for retrieving RIMs - */ - public static Selector select(final ReferenceManifestServiceImpl rimMan) { - return new Selector(rimMan); - } - /** * This method and code is pulled and adopted from the TCG Tool. Since this * is taking in an file stored in memory through http, this was changed from diff --git a/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/controllers/ReferenceManifestDetailsPageController.java b/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/controllers/ReferenceManifestDetailsPageController.java index 62cdfb1e..fb961f70 100644 --- a/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/controllers/ReferenceManifestDetailsPageController.java +++ b/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/controllers/ReferenceManifestDetailsPageController.java @@ -29,6 +29,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.security.KeyStore; import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateException; @@ -101,8 +102,6 @@ public class ReferenceManifestDetailsPageController extends PageController resources = baseRim.parseResource(); TCGEventLog logProcessor = null; + List subManifests; SupportReferenceManifest support = null; if (baseRim.getAssociatedRim() == null) { - support = (SupportReferenceManifest) referenceManifestRepository + /** + * Need to have parsing implemented + */ +// referenceManifestRepository.findByHash("hexDecHash", "Support"); + subManifests = referenceManifestRepository .getByManufacturer(baseRim.getPlatformManufacturer(), "SupportReferenceManifest"); + String fileString = new String(baseRim.getRimBytes(), StandardCharsets.UTF_8); + + for (ReferenceManifest rim : subManifests) { + if (rim instanceof SupportReferenceManifest) { + support = (SupportReferenceManifest) rim; + if (fileString.contains(rim.getHexDecHash())) { + break; + } + } + } if (support != null) { baseRim.setAssociatedRim(support.getId()); } @@ -300,8 +314,8 @@ public class ReferenceManifestDetailsPageController extends PageController