diff --git a/HIRS_AttestationCA/src/main/java/hirs/attestationca/AbstractAttestationCertificateAuthority.java b/HIRS_AttestationCA/src/main/java/hirs/attestationca/AbstractAttestationCertificateAuthority.java index f990bd26..e3051ee0 100644 --- a/HIRS_AttestationCA/src/main/java/hirs/attestationca/AbstractAttestationCertificateAuthority.java +++ b/HIRS_AttestationCA/src/main/java/hirs/attestationca/AbstractAttestationCertificateAuthority.java @@ -736,7 +736,7 @@ public abstract class AbstractAttestationCertificateAuthority String clientName = String.format("%s_%s", dv.getHw().getManufacturer(), dv.getHw().getProductName()); - ReferenceManifest dbBaseRim; + ReferenceManifest dbBaseRim = null; ReferenceManifest support; String tagId = ""; String fileName = ""; @@ -798,7 +798,16 @@ public abstract class AbstractAttestationCertificateAuthority support.setTagId(tagId); this.referenceManifestManager.save(support); } else { - LOG.info("Client provided Support RIM already loaded in database."); + LOG.error("Client provided Support RIM already loaded in database."); + if (dbBaseRim != null) { + support.setPlatformManufacturer(dbBaseRim.getPlatformManufacturer()); + support.setPlatformModel(dbBaseRim.getPlatformModel()); + support.setSwidTagVersion(dbBaseRim.getSwidTagVersion()); + support.setAssociatedRim(dbBaseRim.getId()); + support.setTagId(dbBaseRim.getTagId()); + } + + this.referenceManifestManager.update(support); } } catch (IOException ioEx) { LOG.error(ioEx); diff --git a/HIRS_AttestationCA/src/main/java/hirs/attestationca/service/SupplyChainValidationServiceImpl.java b/HIRS_AttestationCA/src/main/java/hirs/attestationca/service/SupplyChainValidationServiceImpl.java index be430c30..a2a1e889 100644 --- a/HIRS_AttestationCA/src/main/java/hirs/attestationca/service/SupplyChainValidationServiceImpl.java +++ b/HIRS_AttestationCA/src/main/java/hirs/attestationca/service/SupplyChainValidationServiceImpl.java @@ -352,11 +352,11 @@ public class SupplyChainValidationServiceImpl implements SupplyChainValidationSe validationObject = baseReferenceManifest; String failedString = ""; if (baseReferenceManifest == null) { - failedString = "Base Reference Integrity Manifest%n"; + failedString = "Base Reference Integrity Manifest\n"; passed = false; } if (supportReferenceManifest == null) { - failedString += "Support Reference Integrity Manifest%n"; + failedString += "Support Reference Integrity Manifest\n"; passed = false; } if (measurement == null) { 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 bde70841..ded07cee 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 @@ -296,8 +296,11 @@ public class ReferenceManifestDetailsPageController final ReferenceManifestManager referenceManifestManager) throws IOException, CertificateException, NoSuchAlgorithmException { HashMap data = new HashMap<>(); + EventLogMeasurements measurements = null; - if (support.getAssociatedRim() == null) { + if (support.getAssociatedRim() == null + && (support.getPlatformManufacturer() != null + && !support.getPlatformManufacturer().isEmpty())) { ReferenceManifest baseRim = BaseReferenceManifest.select(referenceManifestManager) .byManufacturer(support.getPlatformManufacturer()).getRIM(); if (baseRim != null) { @@ -308,16 +311,16 @@ public class ReferenceManifestDetailsPageController LOGGER.error("Failed to update Support RIM", ex); } } + measurements = EventLogMeasurements.select(referenceManifestManager) + .byManufacturer(support.getPlatformManufacturer()).getRIM(); } + data.put("baseRim", support.getTagId()); data.put("associatedRim", support.getAssociatedRim()); data.put("rimType", support.getRimType()); data.put("tagId", support.getTagId()); TCGEventLog logProcessor = new TCGEventLog(support.getRimBytes()); - EventLogMeasurements measurements = EventLogMeasurements.select(referenceManifestManager) - .byManufacturer(support.getPlatformManufacturer()).getRIM(); - LinkedList tpmPcrEvents = new LinkedList<>(); TCGEventLog measurementsProcess; if (measurements != null) { @@ -330,10 +333,11 @@ public class ReferenceManifestDetailsPageController } tpmPcrEvents.add(tpe); } + data.put("events", tpmPcrEvents); + } else { + data.put("events", logProcessor.getEventList()); } - data.put("events", tpmPcrEvents); - return data; }