From fdacd4df6e6d78b2baf84c4a04b10eed336f4844 Mon Sep 17 00:00:00 2001 From: ThatSilentCoder <184309164+ThatSilentCoder@users.noreply.github.com> Date: Thu, 27 Mar 2025 17:34:06 -0400 Subject: [PATCH] v3_issue_896: should fix issues with pc found on certain devices --- .../entity/userdefined/info/ComponentInfo.java | 9 +++++++-- .../persist/provision/AbstractProcessor.java | 16 ++++++++++++---- .../helper/CredentialManagementHelper.java | 6 +++++- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/userdefined/info/ComponentInfo.java b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/userdefined/info/ComponentInfo.java index 51129be9..fd540c75 100644 --- a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/userdefined/info/ComponentInfo.java +++ b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/userdefined/info/ComponentInfo.java @@ -92,6 +92,13 @@ public class ComponentInfo extends ArchivableEntity { final String componentSerial, final String componentRevision) { + if (deviceName == null) { + log.error("Component Info's device name cannot be null."); + this.deviceName = ""; + } else { + this.deviceName = deviceName; + } + if (componentManufacturer == null) { log.error("Component Info's manufacturer cannot be null."); this.componentManufacturer = ""; @@ -106,8 +113,6 @@ public class ComponentInfo extends ArchivableEntity { this.componentModel = componentModel.trim(); } - this.deviceName = deviceName; - if (componentSerial != null) { this.componentSerial = componentSerial.trim(); } else { diff --git a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/provision/AbstractProcessor.java b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/provision/AbstractProcessor.java index 9b56ba37..0f0622b2 100644 --- a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/provision/AbstractProcessor.java +++ b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/provision/AbstractProcessor.java @@ -195,11 +195,19 @@ public class AbstractProcessor { List platformCredentials = new LinkedList<>(); if (identityClaim.getPlatformCredentialCount() > 0) { - for (ByteString platformCredential : identityClaim.getPlatformCredentialList()) { + + List platformCredentialList = identityClaim.getPlatformCredentialList(); + + for (ByteString platformCredential : platformCredentialList) { if (!platformCredential.isEmpty()) { - platformCredentials.add(CredentialManagementHelper.storePlatformCredential( - certificateRepository, platformCredential.toByteArray(), - identityClaim.getDv().getNw().getHostname())); + PlatformCredential storedPlatformCredential = + CredentialManagementHelper.storePlatformCredential( + certificateRepository, platformCredential.toByteArray(), + identityClaim.getDv().getNw().getHostname()); + + if (storedPlatformCredential != null) { + platformCredentials.add(storedPlatformCredential); + } } } } else if (endorsementCredential != null) { diff --git a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/provision/helper/CredentialManagementHelper.java b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/provision/helper/CredentialManagementHelper.java index 77f6a1f5..44fab009 100644 --- a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/provision/helper/CredentialManagementHelper.java +++ b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/provision/helper/CredentialManagementHelper.java @@ -90,14 +90,17 @@ public final class CredentialManagementHelper { final byte[] platformBytes, final String deviceName) { if (certificateRepository == null) { + log.error("The provided certificate repository is null."); throw new IllegalArgumentException("null certificate manager"); } if (platformBytes == null) { + log.error("The provided platform credential byte array is null."); throw new IllegalArgumentException("null platform credential bytes"); } if (platformBytes.length == 0) { + log.error("The provided platform credential byte array is null."); throw new IllegalArgumentException( "zero-length byte array given for platform credential" ); @@ -110,6 +113,7 @@ public final class CredentialManagementHelper { PlatformCredential.parseWithPossibleHeader(platformBytes); if (platformCredential == null) { + log.error("The platform credential that was parsed was null"); return null; } @@ -147,7 +151,7 @@ public final class CredentialManagementHelper { return existingCredential; } catch (DBManagerException dbEx) { - log.error("Error retrieving or saving platform credential", dbEx); + log.error("Error retrieving or saving platform credential to the database", dbEx); } catch (Exception e) { log.error("Error parsing platform credential", e); }