From 55f80fe0e6d75a3720ce1fc9995a95d87148b04e Mon Sep 17 00:00:00 2001 From: chubtub <43381989+chubtub@users.noreply.github.com> Date: Wed, 18 Oct 2023 09:46:42 -0400 Subject: [PATCH] Migrate CertificateTest class to HIRS_Utils and update unit test dependencies following migration --- .../SupplyChainValidationTest.java | 49 ++++++++- .../certificate/PlatformCredentialTest.java | 3 +- .../java/hirs/utils}/CertificateTest.java | 93 ++++++------------ .../ek_cert_with_padded_bytes.cer | Bin 0 -> 1100 bytes .../certificates/fakeIntelIntermediateCA.cer | 19 ++++ .../resources/certificates/fakeRootCA.cer | 18 ++++ .../certificates/fakeSGIIntermediateCA.cer | 19 ++++ .../certificates/fakestmtpmekint02.pem | 22 +++++ .../platform_credentials/Intel_pc3.cer | Bin 0 -> 772 bytes .../platform_credentials/Intel_pc4.pem | Bin 0 -> 914 bytes .../platform_credentials/Intel_pc5.pem | Bin 0 -> 914 bytes .../TPM_INTC_Platform_Cert_RSA.txt | Bin 0 -> 2144 bytes .../intel_chain/root/intermediate2.cer | Bin 0 -> 1645 bytes 13 files changed, 156 insertions(+), 67 deletions(-) rename {HIRS_AttestationCA/src/test/java/hirs/attestationca/persist/entity/userdefined => HIRS_Utils/src/test/java/hirs/utils}/CertificateTest.java (90%) create mode 100644 HIRS_Utils/src/test/resources/certificates/ek_cert_with_padded_bytes.cer create mode 100644 HIRS_Utils/src/test/resources/certificates/fakeIntelIntermediateCA.cer create mode 100644 HIRS_Utils/src/test/resources/certificates/fakeRootCA.cer create mode 100644 HIRS_Utils/src/test/resources/certificates/fakeSGIIntermediateCA.cer create mode 100644 HIRS_Utils/src/test/resources/certificates/fakestmtpmekint02.pem create mode 100755 HIRS_Utils/src/test/resources/validation/platform_credentials/Intel_pc3.cer create mode 100644 HIRS_Utils/src/test/resources/validation/platform_credentials/Intel_pc4.pem create mode 100644 HIRS_Utils/src/test/resources/validation/platform_credentials/Intel_pc5.pem create mode 100644 HIRS_Utils/src/test/resources/validation/platform_credentials/TPM_INTC_Platform_Cert_RSA.txt create mode 100644 HIRS_Utils/src/test/resources/validation/platform_credentials/intel_chain/root/intermediate2.cer diff --git a/HIRS_AttestationCA/src/test/java/hirs/attestationca/persist/entity/userdefined/SupplyChainValidationTest.java b/HIRS_AttestationCA/src/test/java/hirs/attestationca/persist/entity/userdefined/SupplyChainValidationTest.java index 95c35a64..1c5dbdfa 100644 --- a/HIRS_AttestationCA/src/test/java/hirs/attestationca/persist/entity/userdefined/SupplyChainValidationTest.java +++ b/HIRS_AttestationCA/src/test/java/hirs/attestationca/persist/entity/userdefined/SupplyChainValidationTest.java @@ -3,11 +3,16 @@ package hirs.attestationca.persist.entity.userdefined; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; -import hirs.attestationca.persist.entity.ArchivableEntity; +import hirs.utils.ArchivableEntity; +import hirs.utils.CertificateAuthorityCredential; import hirs.attestationca.persist.enums.AppraisalStatus; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import java.io.IOException; +import java.net.URISyntaxException; +import java.nio.file.Paths; +import java.util.ArrayList; import java.util.List; /** @@ -17,6 +22,40 @@ import java.util.List; class SupplyChainValidationTest { private static final String MESSAGE = "Some message."; + /** + * Location of a test (fake) root CA certificate. + */ + public static final String FAKE_ROOT_CA_FILE = "/certificates/fakeRootCA.cer"; + + /** + * Location of a test (fake) Intel intermediate CA certificate. + */ + public static final String FAKE_INTEL_INT_CA_FILE = + "/certificates/fakeIntelIntermediateCA.cer"; + + /** + * Location of a test (fake) SGI intermediate CA certificate. + */ + public static final String FAKE_SGI_INT_CA_FILE = "/certificates/fakeSGIIntermediateCA.cer"; + private static final List allTestCertificates = + new ArrayList(3); + + @BeforeAll + private static void setAllTestCertificates() throws URISyntaxException, IOException { + allTestCertificates.add( + new CertificateAuthorityCredential( + Paths.get(SupplyChainValidationTest.class.getResource( + FAKE_SGI_INT_CA_FILE).toURI()))); + allTestCertificates.add( + new CertificateAuthorityCredential( + Paths.get(SupplyChainValidationTest.class.getResource( + FAKE_INTEL_INT_CA_FILE).toURI()))); + allTestCertificates.add( + new CertificateAuthorityCredential( + Paths.get(SupplyChainValidationTest.class.getResource( + FAKE_ROOT_CA_FILE).toURI()))); + } + /** * Test that this class' getter methods work properly. * @@ -31,7 +70,7 @@ class SupplyChainValidationTest { ); assertEquals( validation.getCertificatesUsed(), - CertificateTest.getAllTestCertificates() + allTestCertificates ); assertEquals(validation.getMessage(), MESSAGE); } @@ -47,7 +86,7 @@ class SupplyChainValidationTest { new SupplyChainValidation( null, AppraisalStatus.Status.PASS, - CertificateTest.getAllTestCertificates(), + allTestCertificates, MESSAGE )); } @@ -78,7 +117,7 @@ class SupplyChainValidationTest { new SupplyChainValidation( SupplyChainValidation.ValidationType.ENDORSEMENT_CREDENTIAL, AppraisalStatus.Status.PASS, - CertificateTest.getAllTestCertificates(), + allTestCertificates, MESSAGE ); } @@ -95,7 +134,7 @@ class SupplyChainValidationTest { return getTestSupplyChainValidation( SupplyChainValidation.ValidationType.ENDORSEMENT_CREDENTIAL, AppraisalStatus.Status.PASS, - CertificateTest.getAllTestCertificates() + allTestCertificates ); } diff --git a/HIRS_AttestationCA/src/test/java/hirs/attestationca/persist/entity/userdefined/certificate/PlatformCredentialTest.java b/HIRS_AttestationCA/src/test/java/hirs/attestationca/persist/entity/userdefined/certificate/PlatformCredentialTest.java index 43b06ae4..0c5c32c3 100644 --- a/HIRS_AttestationCA/src/test/java/hirs/attestationca/persist/entity/userdefined/certificate/PlatformCredentialTest.java +++ b/HIRS_AttestationCA/src/test/java/hirs/attestationca/persist/entity/userdefined/certificate/PlatformCredentialTest.java @@ -1,6 +1,7 @@ package hirs.attestationca.persist.entity.userdefined.certificate; -import hirs.attestationca.persist.entity.userdefined.Certificate; +import hirs.utils.Certificate; +import hirs.utils.CertificateAuthorityCredential; import hirs.attestationca.persist.entity.userdefined.certificate.attributes.ComponentIdentifier; import hirs.attestationca.persist.entity.userdefined.certificate.attributes.PlatformConfiguration; import hirs.attestationca.persist.entity.userdefined.certificate.attributes.PlatformProperty; diff --git a/HIRS_AttestationCA/src/test/java/hirs/attestationca/persist/entity/userdefined/CertificateTest.java b/HIRS_Utils/src/test/java/hirs/utils/CertificateTest.java similarity index 90% rename from HIRS_AttestationCA/src/test/java/hirs/attestationca/persist/entity/userdefined/CertificateTest.java rename to HIRS_Utils/src/test/java/hirs/utils/CertificateTest.java index b9a0d916..71187416 100644 --- a/HIRS_AttestationCA/src/test/java/hirs/attestationca/persist/entity/userdefined/CertificateTest.java +++ b/HIRS_Utils/src/test/java/hirs/utils/CertificateTest.java @@ -1,6 +1,4 @@ -package hirs.attestationca.persist.entity.userdefined; - -import hirs.attestationca.persist.entity.ArchivableEntity; +package hirs.utils; import java.io.FileInputStream; import java.io.IOException; @@ -29,6 +27,30 @@ import static org.junit.jupiter.api.Assertions.assertThrows; * This class tests functionality of the {@link Certificate} class. */ public class CertificateTest { + /** + * Location of another, slightly different platform attribute cert. + */ + public static final String TEST_PLATFORM_CERT_3 = + "/validation/platform_credentials/Intel_pc3.cer"; + + /** + * Platform cert with comma separated baseboard and chassis serial number. + */ + public static final String TEST_PLATFORM_CERT_4 = + "/validation/platform_credentials/Intel_pc4.pem"; + + /** + * Another platform cert with comma separated baseboard and chassis serial number. + */ + public static final String TEST_PLATFORM_CERT_5 = + "/validation/platform_credentials/Intel_pc5.pem"; + + /** + * Location of another, slightly different platform attribute cert. + */ + public static final String TEST_PLATFORM_CERT_6 = + "/validation/platform_credentials/TPM_INTC_Platform_Cert_RSA.txt"; + /** * Location of a test (fake) root CA certificate. */ @@ -51,59 +73,8 @@ public class CertificateTest { */ public static final String FAKE_SGI_INT_CA_FILE = "/certificates/fakeSGIIntermediateCA.cer"; - /** - * Location of another test self-signed certificate. - */ - public static final String ANOTHER_SELF_SIGNED_FILE = - "/certificates/fakeSelfSigned.cer"; - - /** - * Location of the NUC EC. - */ - public static final String STM_NUC1_EC = "/certificates/nuc-1/tpmcert.pem"; - - /** - * Location of the ST Micro Intermediate 02 CA certificate. - */ - public static final String STM_INT_02_CA = "/certificates/stMicroCaCerts/stmtpmekint02.crt"; - - /** - * Location of the ST Micro Root CA certificate. - */ - public static final String STM_ROOT_CA = "/certificates/stMicroCaCerts/stmtpmekroot.crt"; - - /** - * Location of the GlobalSign Root CA certificate. - */ - public static final String GS_ROOT_CA = "/certificates/stMicroCaCerts/gstpmroot.crt"; - - /** - * Hex-encoded subject key identifier for the FAKE_ROOT_CA_FILE. - */ - public static final String FAKE_ROOT_CA_SUBJECT_KEY_IDENTIFIER_HEX = - "58ec313a1699f94c1c8c4e2c6412402b258f0177"; - - /** - * Location of a test STM endorsement credential. - */ - public static final String TEST_EC = "/certificates/ab21ccf2-tpmcert.pem"; - - /** - * Location of a test client cert. - */ - public static final String ISSUED_CLIENT_CERT = - "/tpm/sample_identity_cert.cer"; - private static final String INT_CA_CERT02 = "/certificates/fakestmtpmekint02.pem"; - private static final String RDN_COMMA_SEPARATED = - "CN=STM TPM EK Intermediate CA 02, O=STMicroelectronics NV, C=CH"; - private static final String RDN_MULTIVALUE = - "CN=Nuvoton TPM Root CA 2010+O=Nuvoton Technology Corporation+C=TW"; - - private static final String RDN_COMMA_SEPARATED_ORGANIZATION = "STMicroelectronics NV"; - private static final String RDN_MULTIVALUE_ORGANIZATION = "Nuvoton Technology Corporation"; - private static final String EK_CERT_WITH_PADDED_BYTES = "/certificates/ek_cert_with_padded_bytes.cer"; @@ -197,11 +168,11 @@ public class CertificateTest { assertNotEquals(getTestCertificate( PlatformCredential.class, - PlatformCredentialTest.TEST_PLATFORM_CERT_3).getCertificateType(), + TEST_PLATFORM_CERT_3).getCertificateType(), Certificate.CertificateType.X509_CERTIFICATE); assertEquals(getTestCertificate( PlatformCredential.class, - PlatformCredentialTest.TEST_PLATFORM_CERT_3).getCertificateType(), + TEST_PLATFORM_CERT_3).getCertificateType(), Certificate.CertificateType.ATTRIBUTE_CERTIFICATE); } @@ -215,7 +186,7 @@ public class CertificateTest { @Test public void testImportPem() throws IOException { Certificate platformCredential = getTestCertificate( - PlatformCredential.class, PlatformCredentialTest.TEST_PLATFORM_CERT_4 + PlatformCredential.class, TEST_PLATFORM_CERT_4 ); assertEquals(platformCredential.getCertificateType(), @@ -226,7 +197,7 @@ public class CertificateTest { ); platformCredential = getTestCertificate( - PlatformCredential.class, PlatformCredentialTest.TEST_PLATFORM_CERT_5 + PlatformCredential.class, TEST_PLATFORM_CERT_5 ); assertEquals(platformCredential.getCertificateType(), @@ -286,12 +257,12 @@ public class CertificateTest { public void testX509AttributeCertificateParsing() throws IOException, URISyntaxException { Certificate platformCert = getTestCertificate( PlatformCredential.class, - PlatformCredentialTest.TEST_PLATFORM_CERT_3 + TEST_PLATFORM_CERT_3 ); X509AttributeCertificateHolder attrCertHolder = new X509AttributeCertificateHolder( Files.readAllBytes(Paths.get(this.getClass().getResource( - PlatformCredentialTest.TEST_PLATFORM_CERT_3 + TEST_PLATFORM_CERT_3 ).toURI())) ); @@ -321,7 +292,7 @@ public class CertificateTest { public void testX509AttributeCertificateParsingExtended() throws IOException, URISyntaxException { Certificate platformCert = getTestCertificate( - PlatformCredential.class, PlatformCredentialTest.TEST_PLATFORM_CERT_6); + PlatformCredential.class, TEST_PLATFORM_CERT_6); assertEquals(platformCert.getAuthorityInfoAccess(), "https://trustedservices.intel.com/" diff --git a/HIRS_Utils/src/test/resources/certificates/ek_cert_with_padded_bytes.cer b/HIRS_Utils/src/test/resources/certificates/ek_cert_with_padded_bytes.cer new file mode 100644 index 0000000000000000000000000000000000000000..65426766e4ce2c318559e09cac9d8cf38ef4b59a GIT binary patch literal 1100 zcmXqLV(u_#Vk%g`%*4pV#L4h-*Xz`qS6wC<@Un4gwRyCC=VfGMWo0l3H4HY8XJZa! zVHTF~D=o_}$=3Gh`2%Fi!RaCTHMGB7kSPz5RA5|)E2NKMYj%g@PAuT*f(FDl3{ zN-W9D&okfzDPt363JEum6X!KFGcYwWGBPl-G&PPA=QRd$4K1Kt0|tX8#&`oSgj?7R zY!`3?O<>jLV`h?KWmqU-Acm0TK$2M`VjzT&;bdVAaSm`~U~XdM2N}x6)WpchFyn{t zE|Cw#9k1tkIV4y6>dP8dds%GD@C>;Xu*&A6g&mXl-K0Dj;a3$cw0v7i7jQU{ruhLs%bTo(*B7{n2z7s_qSB+Q}`Oc8}}r)e&{w`Tr1dfyqcT4 z?^~4q6<@Q((+|%*Y@2C)o~bD9_mtI}cAwOoYbrO@?e3*2pQo31bcRpYcjqsT;cHr( zqxkYV;|z`ES7&BzjBmYcK6T%5zuUZ5O0`d{eO1mic>M-)UR->i(OY z=Zeo?ZNH|?#LURRxVYG$(7*>6C$fT!jQ?4j3>=o&8Q2(F8Hlj4rZ=)OF$!~MrdXM{ znwppx8yFY}Kt!2@+5G~XL(D2FU?R-I>_Bw}rWS?7cg2F8JKUyd8?Q%FR$v~60?`d>HOK!{|jm#@I!}ynZUTF=W?U zp*OqKDwg_RuARthlD@V-;(Pl4|6lg|wBFyI=y*f*Jk!@w$BJvE;$zpyWUp1=3ZLyV7kJ&vv;)|uZhdXrmZkxd+Bg?G(*jd{?%9XD8*z-H1#(Uf0p48Q*KOHqp&eyJMdX=1TO+O=a_p;he%hpZ( b)Wl@K?scGx=i>j>MR&6Uw)+1R9O3`~^{Qw) literal 0 HcmV?d00001 diff --git a/HIRS_Utils/src/test/resources/certificates/fakeIntelIntermediateCA.cer b/HIRS_Utils/src/test/resources/certificates/fakeIntelIntermediateCA.cer new file mode 100644 index 00000000..cf8ed36b --- /dev/null +++ b/HIRS_Utils/src/test/resources/certificates/fakeIntelIntermediateCA.cer @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDGDCCAgKgAwIBAgIBAjALBgkqhkiG9w0BAQswFzEVMBMGA1UEAwwMRmFrZSBS +b290IENBMB4XDTE3MDEyNDE1MjU0MVoXDTI3MDEyNDE1MjU0MVowJzElMCMGA1UE +AwwcRmFrZSBJbnRlbCBJbnRlcm1lZGlhdGUgQ0EgMTCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAKOwrvGN7liqE0Fv0Z5jSRuYdz5WHbxNgb9HNvllM9AK +a61TKVL2yWjaDMeO3r/QmL6MbiVNLfSYzJtotbujpelZSucgFqq/6skr5K8ik1Lk +se7DrZGsheC6g9ei5UyAJlIQtCmm26xIraQWtQbSrMvMoRo25vm2LNA9fY46hx/a +zk9yPI9OLXOWuK/OnT7gmV/ESU1fLWXedVCxYZfu9KyMD2PxHG5eZc8e/Or/cVt1 +5wuP16ZbzCV8NsJFKPBvfKsngznb4WuGOPTbMJaslB5wJZPp+GyBe3L0g4vr2+GE +WldoObtit9vdHj1HDcsxk2IHaQZ7zkJZ2vyGdDYn10ECAwEAAaNjMGEwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFCEFgTDtdHY0MnCE +8CeV32cOi9dzMB8GA1UdIwQYMBaAFFjsMToWmflMHIxOLGQSQCsljwF3MAsGCSqG +SIb3DQEBCwOCAQEAb9OPfUQSOZG5JLNJTMJtBUXWPAAhR7xXvWtG17B3c8UrU4kN +bfqAQnVkya+7vUPpaxVP5KJjzud8hBg5xqgaf7MO5mq/P+3RmtudB/AunTiBApSL +f0nXEMl3UbGdfseWnrEC0QMetsBDgPyhUAJ+P+KwEWWndpaeZRV1pfvPc2OMqG3J +or8hmfEVk2k9Di3GThsA5PnKehYE+FGHtT2+YO5Tpn75PdhN8r2N6MU7kXVPN9yi +5RT5HKpee8ZmkzYdOhWe7+7W23j3Klh3yyVHW1Yk426PRuRym9RrPOZO8dSJY0n5 +abPM8+BCy4GpK/wdUuZhKBo1BX/Mq7fMfR07kQ== +-----END CERTIFICATE----- diff --git a/HIRS_Utils/src/test/resources/certificates/fakeRootCA.cer b/HIRS_Utils/src/test/resources/certificates/fakeRootCA.cer new file mode 100644 index 00000000..7fca7bac --- /dev/null +++ b/HIRS_Utils/src/test/resources/certificates/fakeRootCA.cer @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIC5zCCAdGgAwIBAgIBATALBgkqhkiG9w0BAQswFzEVMBMGA1UEAwwMRmFrZSBS +b290IENBMB4XDTE3MDEyNDE1MjU0MVoXDTQ3MDEyNDE1MjU0MVowFzEVMBMGA1UE +AwwMRmFrZSBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA +geIXUAtrlc+FY8FC/bAGC6Vg1lbok+kILT/ZmG/4vdigZ2hzFR3dVjmgWd4hp3uP +dY7E/JUEouBq24qDpPUWrHIxSCqGp9Rn+whGq6Yy7d1d0FGyskIJJ2aFr1QC+/jA +4CptLbQGhqmyALrmXFai3scUmNciuTbEb3Ap9829IdsD4F9hT557zRSocaelVCUw +6sNLU78fJfG7K3dKmKemvtprqlDlfM3nya5P6IzkRKiPpXN6Q1sL7FDkKQ3HuyBM +WqPU+AWhqhCR9hRenuTpwTxEPVPA8FRV78wkV3VLzXCG7lHPZ8xCDKAZzdbwymjU +wfm9Wr5KperE83suIcIHxQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud +DwEB/wQEAwIBBjAdBgNVHQ4EFgQUWOwxOhaZ+UwcjE4sZBJAKyWPAXcwCwYJKoZI +hvcNAQELA4IBAQA2qgdehg53y1ehnq9KKdV5JllGgPon1GigMrMJ8VMGo+zs7h2q +CYlqCyuCI5hYWzZTRzwX6OAfZkIVEgY0O2lYJgTzsC+kz4EFArzq5eLqw2/hsn8c +KveCz+6mIL9AoyAMx9NZB1IytkDWIOtIElxOoAojluEDp3L1gzr9PVHJkI9KMeVV +eaH6Hg+Wg6I0jS1546oJnheEmcrwYaLJ0pHZR9NGpkICxDNMpNTLW9yy8e/kK+iB +xzT6vc3p791ktO1UD5kfK0QW8oRyMX0eHdRlDK2so+VWA5pEka+ZPc9dPB5JSudm +HBfbguS1HVpYAfJslzj31UpSnxr7ZA4OWiLf +-----END CERTIFICATE----- diff --git a/HIRS_Utils/src/test/resources/certificates/fakeSGIIntermediateCA.cer b/HIRS_Utils/src/test/resources/certificates/fakeSGIIntermediateCA.cer new file mode 100644 index 00000000..959cb8e7 --- /dev/null +++ b/HIRS_Utils/src/test/resources/certificates/fakeSGIIntermediateCA.cer @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDFjCCAgCgAwIBAgIBAzALBgkqhkiG9w0BAQswFzEVMBMGA1UEAwwMRmFrZSBS +b290IENBMB4XDTE3MDEyNDE1MjU0MVoXDTI3MDEyNDE1MjU0MVowJTEjMCEGA1UE +AwwaRmFrZSBTR0kgSW50ZXJtZWRpYXRlIENBIDEwggEiMA0GCSqGSIb3DQEBAQUA +A4IBDwAwggEKAoIBAQC7tS739kM5cCJBVXGJtTgiV30AKtnDXeF5uw40DYfiXf1H +H5QAHNdiLqiZpsYJPiTnS7drsdvlzT1zjkfu11cI0jdUjMqDfSP+2MfAvrcjpdSN +R2YlcIJSNTeJyydvkxl6l0keXKdaoUkrMoJ+O0BWbSy7jXbicmndh4aoscq0Qp6s +99n4bPwrKqV/GkuTRjaUqGoEx/h9gM05kUcO5kw9xwO21ogY1H+j3NNstmTAjko+ +PNEhVEp5Ax6XpqTZOqbFpiWQdA7oXJsXar0tXi0DWBWcVz0EXqoOSxhH4cpnBmSZ +ioioIOCzcxitdcWIQS+phm/B+vhK4+YUKHCF2ds1AgMBAAGjYzBhMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQynzPkAJcEtxU2u0uy +YG2QqJ+U/zAfBgNVHSMEGDAWgBRY7DE6Fpn5TByMTixkEkArJY8BdzALBgkqhkiG +9w0BAQsDggEBAGs9uq0DKACdcgoNyJcHzyb11EhMe8+l/D+j8JjsRp3w6rXpw60U +ptZVMh7/SpRte7NjUBJ7wk76IIhntu6rcf/ik4ptyOgSUxDzGDffQzPRHRmXmjj0 +eir+cVQP34O7gByj/n92S9GP4/0RYGt7X7PGGiNArSroeS83fUQMVHhN8PbFzcrk +y9NHNR/In90Le/tPsFwGdTYzirgnjmcaVZFgCQfKuU3xr9vjANc2i5+QzzApjZ1i +K3o3z1eLOz6x25C03J8MF6GRiSV9AjrP8P0vQc25zpsjKH/rvdwmLIC6IjprF3Wk +nqakIzC7ABXdKhS8pOLkbmcoPlyt1rP9RgA= +-----END CERTIFICATE----- diff --git a/HIRS_Utils/src/test/resources/certificates/fakestmtpmekint02.pem b/HIRS_Utils/src/test/resources/certificates/fakestmtpmekint02.pem new file mode 100644 index 00000000..eefe3b6f --- /dev/null +++ b/HIRS_Utils/src/test/resources/certificates/fakestmtpmekint02.pem @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDjzCCAnmgAwIBAgIBBTALBgkqhkiG9w0BAQswFzEVMBMGA1UEAwwMRmFrZSBS +b290IENBMB4XDTExMDEyMTAwMDAwMFoXDTI5MTIzMTAwMDAwMFowVTELMAkGA1UE +BhMCQ0gxHjAcBgNVBAoTFVNUTWljcm9lbGVjdHJvbmljcyBOVjEmMCQGA1UEAxMd +U1RNIFRQTSBFSyBJbnRlcm1lZGlhdGUgQ0EgMDIwggEiMA0GCSqGSIb3DQEBAQUA +A4IBDwAwggEKAoIBAQCTt4oZ/7h4Fdx65T2ab/PtfsYPXHC396VVyaE+Z/Dxx4sT +emUQZn/zYPOfzg2c8Z6LQuuFg/BhzC8kNAp2tzCRfjBiWeUeSZLiUQeArYEz8HE1 +WSLArrqdGg1pz82Kh8L32og9hQ9GmsQp0yiI1lPTs7Uw9iOtcVtiyhGOFXXvltwu +1mYEuU6apG4Sc8tjSY+qEjAypJXyN1/I1X+254DHAkd19zXCKN+PSA7da9Rn8Afq +Fq4aIGVZzBSSgKEmD/GkKyw1Ze0kDgIE189iAw+m6NY4Gv/Cm+9nQ4fA9qq5Kloe +x8HWrN46qm2/boqujtnSSWPOhY3341z6N4xpRY07AgMBAAGjgaswgagwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAgQwRQYDVR0gAQH/BDswOTA3BgRVHSAA +MC8wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cuc3QuY29tL1RQTS9yZXBvc2l0b3J5 +LzAdBgNVHQ4EFgQUVx+Aa0fM55v6NZR87Yi40QBa4J4wHwYDVR0jBBgwFoAUWOwx +OhaZ+UwcjE4sZBJAKyWPAXcwCwYJKoZIhvcNAQELA4IBAQB8IaDIWicxm7m2qyDv +v4L253D3qRcx+sdM2GM0IpvK3u9z3BQraAhF6PPLlgFGP6slZdDY6ryrP8PEkvsH +tHoapB1MWe+eMrxw7dXQLnpzm/P++8AWMtY8roziiO7x3AYTbRb9lB2HjOWc2aGZ +1xW+su+aTnr9U4uYO1+HrDDKYgkypIcousRwUMW6c6szAZY2UtWS2e4346V3LVLz +sv22n4rqWWRzJ2tl+jIqLepChqOdgscDL+aO2iowmzTSWV/WLJRaTs0AsOYJkdlG +8wWRzygRbfGdIL7A/hKK42o0b7v3R/NI0nemwAzVN/QOYjTbkOCIUBg/6mT8CkYx +pmiq +-----END CERTIFICATE----- diff --git a/HIRS_Utils/src/test/resources/validation/platform_credentials/Intel_pc3.cer b/HIRS_Utils/src/test/resources/validation/platform_credentials/Intel_pc3.cer new file mode 100755 index 0000000000000000000000000000000000000000..42d19bbd3b618513a5d968ecc7b81dbb4a8384c8 GIT binary patch literal 772 zcmXqLVrDRCVtm2G$Y@}&K+iyIiHL!ap@0D&8*?ZNGY@-kh;L?cQ9hH1_YA$>r#mNh z-zYg0Ii*$j)!CyL&n#%1V9?mRq_NAOvE7i{fD@#LO_(V(7{=k?VRCjf1eyqvVdvov zPRuJwRB+BoEJ`$#GLQg?a`6ay=9Q%8C^+XA733EsmSpDV87dmcgXFk*BtnW3^NI@+ zi&FDS6oN|&3UVqHoHG(L^9;odL_kWId3ejq%k?rrM(8Ey=Nj;`acZ@Bw0-AgWMpM! zU=rccE|&aTlKd#`P|u1P0R_+6%Dp@dlqC3#3=GW;jE#(qjEqf;jiW#U#s-E)#z16h zX=)i|U}zx8#+u&9$|ML14g*eL2r)4-0ZAT4L!jMYDPfRDnHU+G7?~Lv84Ma18u$Vo zC9A;5_@Bkuz|p{-jSJ+MAHIyNOe{bX_1QSI*?{h1XJRr?=1~lB4scWmDJm^4Nlj4* z$Vn_o%P-1RaLr4}FDg#W1$x;a0A!pX$T&9xmnBXH4&bN(+s(qm3Jy3!Q3GL!Ygl=> zTwIMU3{68Ky*&`ZY&={ZMrM|l7P=+|Mrh%~+yr#DxQTx8YHfyg_In(st{$K6!(hhX z=e7FTDzyw{7F+HaL5rVm+q2E+o0%0;EO*Z0ra&DQ4H2UYn+vWrHn@bX{mgCh%By>6 zm>{oZ`2}g#%}RAnJl{R4HX6TkK9{%PWcNe9M8^BGe-$P!Ntx(sa9T^B`?X!p_MHM6 zVhY(lx5ek&+;*IM>eth&FR4~=*E^=9@+Vq#zk0H2+TH!vxE7!NbAdhh<##TQ60 t^_Z-f9Fud;CU!1|`{nbm>uv?!HT=E3jQ!lhDJM5ue|__{?E6cW768LZ@-YAa literal 0 HcmV?d00001 diff --git a/HIRS_Utils/src/test/resources/validation/platform_credentials/Intel_pc4.pem b/HIRS_Utils/src/test/resources/validation/platform_credentials/Intel_pc4.pem new file mode 100644 index 0000000000000000000000000000000000000000..9ea77f12c977877d6ba8cafe4de96fd59203dea6 GIT binary patch literal 914 zcmXqLV(v3&V*1X+$Y@}&K+iyIiHL!ap@0D&8*?ZNGY@-kh;L?cQ9hFhJ40h@`hU|( zu?d&1uuO^ln$4Gcd_m&`gT~$^ja>$f?S|Y2oFF}H!c3vTFb)R~le42C&_s|7I}dko zVqQt2f^$w{QKF%gfdojDi$~BiuOu}`!8yOEAipTFBr`wHP|-jhB*)Do5mJ)FR?K>|cBP%Nd zlL*t~1Ha8xg86M;O4^)U{;$AM^6WMPB?*2b14DBI6C*<)X=-E{1rjheFf=j-B2!CK z%P0dw14%a4^hQ=DK~QiQZ~{Y!iIE9N@-P|#?FLH;gFMQ_$k4>d%*e=K(8Rdjpm8nG zS+WX@jQ?307a26pH)x#0#szZG4_`)BCKh0L8R)ZdXtM!b$IirLpvfH zT#}li5Rj8tl9peTtKgcKl3!GunhW%}K@?mAqnKYtNl8JmmA-xnL`QLIQCVhkYB3@R z^po>}p^;aj9}?`WpPX7$QVe2&7yR(hSN$&J_eXH`gG0Nv1(M zIP$^1W8q;1M~$JVfiT3stUO#UuErLIrXi8u9tdGJ9xe|fGfPVgT@wQ%LsbK1Ha1|u zu`;spNV=OvdYc#-8yGlSnCrN^hC~8`+`z!lJq#SfvdSzH24W2&8kaY`_^&emTMzT2 z?xQ?O>vVsmHyI?ue9g$n5^fM`5DeoRFtxdp6AEC@1ZSq_W#*-Or&j6#g9I(PFgG?b zlrP@gb0hY_@=rc5vaFjA7w&j9#iGsT?QNFh8?&xXR=<&2Ly{>@N6|ay049I k{ln^v$xGV5{t48Miz(gH|1E!NiAckd+ZJla{2X5a0Fet4>i_@% literal 0 HcmV?d00001 diff --git a/HIRS_Utils/src/test/resources/validation/platform_credentials/Intel_pc5.pem b/HIRS_Utils/src/test/resources/validation/platform_credentials/Intel_pc5.pem new file mode 100644 index 0000000000000000000000000000000000000000..478f6229a0f8f675626f79c3207cdb988b715274 GIT binary patch literal 914 zcmbV~T}V@57{~XX?Hrw+l^<)&NSkS7A8yat+;n!6E>jUpI9o9x^EBr?G|yRQ$A$*c z8EGGCU-Y3AXtAJ+OfLdIx(I?{koJK$Ru@4aSV33O%mO=SVnUa}%gg&d&-*;*|NlJ) zqUy^K#S$1o0K;Z5#PpCwWxxhP?a`>o6xvW@j6KsryQgI1{_vM~?6c1a~MR|O?^R5B@KI?Zq*V{!!rHiUoPJ)Y#!PBh?<@_YJqLWjaHyap~OnbyWIwj zO27t`)g~{y)9!2p3UUZMAmLc1f&;WNAq-*iP9jSFb~2T%7{!n(iqr_HAc{so8j)q? znh;viNcTY+0_iT1rYKsfM>wXDd4YvU-A%~qQZNh($b7e}p~B=AI>MsA#ncdF#8zHt zH&t;hyb$)c%f_McZviqKY!k&$xZGk9S1ZDP;S}rhhu0BUe7sD96D@AqW%2n1F|3@F zLjxaVeVw$(h{?X@P)jRB6uFs-+;%t-V~3#e z&3c$1(`u{^r?afM1gz9{C?E(K9F7Pwr`qAIE3w)DT$PSJ)m3h_KlR4R)dD5-vycTD@D zCo#bk&AgfYd13j$ow?gnx4N(^O?mT!>+IOZyXZSt% i{zJO;6Dc@skb literal 0 HcmV?d00001 diff --git a/HIRS_Utils/src/test/resources/validation/platform_credentials/TPM_INTC_Platform_Cert_RSA.txt b/HIRS_Utils/src/test/resources/validation/platform_credentials/TPM_INTC_Platform_Cert_RSA.txt new file mode 100644 index 0000000000000000000000000000000000000000..f99f228125ff7c86484d5f25c79ac388041fe47a GIT binary patch literal 2144 zcmbVNX>b!|7|w349$RQ>DTPv4L7*Jnyt_Fz4QH;lp(K~JcG45ADa3L~h9Acw~=Drl7%h5;RQ1VNyH3JmrKNCy~nH*JBT{BWGvAK&+W@AW<3 z`#cNrq)LcuzD5xQ#7)iO8z8RQB{qS$oJ@sejj}?e$wVDa@&yVTl0PHk+`qSO%XsEK`);vu`!RspK>bqT5-3Z zs|)%ALS2;Qs&Ts&2Z};fOSH9Do5kHA?%XAA2XX6DO;vciH%S<3w~|@VM=qhoQoVjo z@Zz`b>mNT>m~*Z5fu zcg13LUH!O9i;L#^oL(Q94OyL+Nn5yZA;HRdi2xslG)?lTrjn+6X$X?4R-jqPh!x7* zpRZ19-8(sL^UB}vmM5p5haow=DIg1hA`K)>8T2qqHs~oZ>PZqPJy5eCu3QQOHR@_n zjb@OUkO9dkf})5*dL)%fp->>wRTHQE$z;$bmPsgNciQ@qX&^nFJ#J%OjY45a*4RZQ)-*S8tVzO$x48P2O)t%6JQ1dL6Qa&l=Mi` z^8vABPlcUkjSi3PnLbh`8)*||Dlh;E3wmVAN;H&TKJw{lz_ik6FgR;$%=YoPjlql9 zP>89*Z4LNT!b!LZG5_f>CNbTtv4GYCRN(fq3Vaey5hf@uSq#P=CAD6EI9A71W9e=K zO!M#=kfLGs` zZUmrAHkzi*V5DfUi7FFV3!$z@s^`F$>lA93D8~pA4jjh>WK!TRiYzRc;%>|^2P_b@ zn1U9XvII<)fKfy#a@Rl@kQk>71ncRsa{{DdN~_z4sf1`916deWUl!$YC+D9hVcBKv zkEJ`Je8gMBMjoH2gZ@yAX&IkAwnh*lF^f(oQ!5hk3qd{_4hO4cg6X>U5haNo_evbk z!&TxA5VwK&jwVIsc842Lqbd;B!YobFXbqxPYf&WI(_KlrbxdHYVobE24KT4M+Mtu_ z2$H(!d|taQAT=M8SMs8a53zv;uizJ$u;f5Qs)9f~&W*wl4ENcKabIUy|xPzGQ-{5fzrw&7cxzLe@I%YAj_kP15>8 znLuPN^zZW5V7(pFCD{anq*xMbNl5$^@`kE%AiFVZ_pR11UuhmQzoXvmsmv}hr8j>x z3Fdd-MbfT0Q27KmK%4$AZgab2*=~I-%7ldFGXkuPBckH7yE_gyoL_V8BD=BgFU-Mh zx=XjB7js+Qf2jR?_ASpKI`6$JFN%Ar!e=+l&OJ3`kmcB-`yKVAqtoMt`;)$1ygjq7 zwl$~yI(O%_9pG~RB=Q$5`B z)6w?REvk1@Kiv3WTIC{P`nj9K6(>)7l142XaOCX%2U|xiZ@Y14Z`FafEb9k`;m=L& zu8Wmhg%QJt|F*9q|FzmNH;I?`+&*L-zwyY~{;o`7Xzb)4v4_Q%50a`k@6?Xn(Qm|e z7ut@sHk8l3x_@Tg`U^|>q)6%Al`TcX94>3$8SYcM4c@gQ+dF1XKk?PR!#8HPoL-$W zY4fTK^^kkla+~_)pBr^__v+HC=5vnE?E~846ITx%w&a`dXB|+i+%V5LTl~P=YuzX4 zoFBHgO+LBh$6HH(9en1|Kc1Z2WB0b!kIg!GnU83vtXZ+oReon(tTkn6&BBHSGX{3_ fE;k2-2OY=T*UVgeccNuk@12!R*M&nX59a&}jckdr literal 0 HcmV?d00001 diff --git a/HIRS_Utils/src/test/resources/validation/platform_credentials/intel_chain/root/intermediate2.cer b/HIRS_Utils/src/test/resources/validation/platform_credentials/intel_chain/root/intermediate2.cer new file mode 100644 index 0000000000000000000000000000000000000000..4ed90e4aee0a61b0c3546fe4b013fb18170eca93 GIT binary patch literal 1645 zcmXqLV#_pWVhLQp%*4pVBvQR^5#ze7MJFO&l-|itQtp1GC~(YxmyJ`a&7r7bF&?=9MS}mlhP{R4O=UBxdF* z1m))gMKaU#GV{_6#SBD1>X~_X%gf94GC}6)CFkcF$cghBnj0Dzm>PgVlsK=k5fay+ zaSqI-RB^VMfeFOfx;UNfSzKHSbg_c7qk^ZmyIXvSYj6lo=QlAfLJnv~RtDxK#(oBa zCdMwNCdNjF1(WAp_UmrfkC62H^UPwJdhI#`RzZ)$efd>9llQqL$IOoS5c=Y%+J5`p zDl&1)HE&xNB8F7W04!~yp}vKSr_%_`QE10nPN@{|B3z=aG52Ra^tI# zcr25$&J)Kvtt&6@{^VxZ{r2viNk%($&hk8#`y_K{8IR~Lpv3~YRIQ~$489B22l?5gV4 zO~G?bY$xs%@$Jk%-D)+}TBHB5>vG5E?F$;db!hcZ)7Co-N{>8X9fB zR)pu#)-MMqUbal1`B#{4inPkg$K~t9@^`E459!=+C;Q{v*Fg+g%l4P=eSVdnk&}s; zk%4h>6QepXMwAV5**LV>7+G1_85vm;4dM-AVSEFow!n;%l7eC@ef^T6(&CcTl;YH) zvdrYvVnkZiPtFG>+q@F}kYH#1Hqc>{T1 zQj=9?kuVTz5ZRhvboOuBx#oHDw;eqD*)`>(XKn{)I$2>x#{VoF25dlziIKs;52Q(+ z#ofTwzw5*=2Q19O*Na#4-}AILm@kR2?*!lKPU7R2Xc5n~atVcYpTd8y6P zn(TIGW6O_sR|3p{F1lAF-}d3RO-!!ajZSOn zM18;HvF7;t`>z7cy|?$e#1`u(oSj$Ua$YQ{Byq#P_5W{_uaEi3vbr>@F(J$3U)WKj z`$xks_QtqvEjr8anMd)Vox`*mhklWhiyALUO^@9#F0uUX&UV&q*)~s}uA1>))^fXT z60ew8L&LMoQwnCapFV!b>Xr!$yA^*d;8b?Z-Z#50edyPnR93R9`4LNV=JetYDMw?$ z`2{lHHhO4?sqVY}uz!K1dWrPz;BM|tLE%X;EG6p%TBaqb+RNRmbo>72Ui7u%-nnO8 zXMg@>k;~2dFgp6hVby}9L>8};S{|OCBu$jBJ#>m$?CN*YGvs^m&#G5_;_+EGUb*!P zZ<7hK&Hq!E&^~Lrt(kJv{~7O=G!{!arhVJnS!R8-Wbw?&ZiQEtv3X z?uXHGgUF`tO=}&>`L)g!dUXCu_X;=Z-FRwk+xx43{$_6u`S_nLwk7!Pr+*vX`xsrk z_q0t#zx!l&lfQ1|)WyYmN7QyFKP|LXYDfrL@~hma?r`daEiA_BW~?45=ar}YeYaI< z-