issue_863: Removed testng from codebase. Has been officially replaced with spring junit.
Some checks failed
Dotnet Provisioner Unit Tests / Restore and Run Unit Tests (ubuntu-20.04) (push) Has been cancelled
Dotnet Provisioner Unit Tests / Restore and Run Unit Tests (windows-2022) (push) Has been cancelled
HIRS Build and Unit Test / ACA_Provisioner_Unit_Tests (push) Has been cancelled
HIRS System Tests / DockerTests (push) Has been cancelled
Dotnet Provisioner Unit Tests / Evaluate Tests (push) Has been cancelled

This commit is contained in:
TheSilentCoder 2024-12-23 10:12:31 -05:00
parent e49f7fd5ce
commit 616fc0686f
3 changed files with 189 additions and 189 deletions

View File

@ -22,7 +22,6 @@ protobufJavaVersion = "4.28.3"
springBootVersion = "3.4.0" springBootVersion = "3.4.0"
springCoreVersion = "6.2.1" springCoreVersion = "6.2.1"
springRetryVersion = "2.0.10" springRetryVersion = "2.0.10"
testngVersion = "7.10.2"
tomcatVersion = "10.1.33" tomcatVersion = "10.1.33"
#test dependencies versions #test dependencies versions
@ -60,7 +59,6 @@ spring-boot-starter-web = { module = "org.springframework.boot:spring-boot-start
spring-framework-webmvc = { module = "org.springframework:spring-webmvc", version.ref = "springCoreVersion" } spring-framework-webmvc = { module = "org.springframework:spring-webmvc", version.ref = "springCoreVersion" }
spring-retry = { module = "org.springframework.retry:spring-retry", version.ref = "springRetryVersion" } spring-retry = { module = "org.springframework.retry:spring-retry", version.ref = "springRetryVersion" }
tomcat-embed-jasper = { module = "org.apache.tomcat.embed:tomcat-embed-jasper", version.ref = "tomcatVersion" } tomcat-embed-jasper = { module = "org.apache.tomcat.embed:tomcat-embed-jasper", version.ref = "tomcatVersion" }
testng = { module = "org.testng:testng", version.ref = "testngVersion" }
# test dependencies # test dependencies
hsqldb = { module = "org.hsqldb:hsqldb", version.ref = "hsqldbVersion" } hsqldb = { module = "org.hsqldb:hsqldb", version.ref = "hsqldbVersion" }

View File

@ -25,7 +25,7 @@ dependencies {
compileOnly libs.lombok compileOnly libs.lombok
annotationProcessor libs.lombok annotationProcessor libs.lombok
testImplementation libs.testng testImplementation libs.spring.boot.starter.test
testCompileOnly libs.lombok testCompileOnly libs.lombok
testAnnotationProcessor libs.lombok testAnnotationProcessor libs.lombok

View File

@ -1,208 +1,210 @@
package hirs.swid; package hirs.swid;
import hirs.utils.rim.ReferenceManifestValidator; import hirs.utils.rim.ReferenceManifestValidator;
import org.junit.jupiter.api.Test;
import org.springframework.test.context.event.annotation.AfterTestClass;
import org.springframework.test.context.event.annotation.BeforeTestClass;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import org.testng.Assert; import static org.junit.jupiter.api.Assertions.assertTrue;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;
import org.testng.annotations.Test;
public class TestSwidTagGateway { public class TestSwidTagGateway {
private SwidTagGateway gateway; private final String DEFAULT_OUTPUT = "generated_swidTag.swidtag";
private ReferenceManifestValidator validator; private final String BASE_USER_CERT = "generated_user_cert.swidtag";
private final String DEFAULT_OUTPUT = "generated_swidTag.swidtag"; private final String BASE_USER_CERT_EMBED = "generated_user_cert_embed.swidtag";
private final String BASE_USER_CERT = "generated_user_cert.swidtag"; private final String BASE_DEFAULT_CERT = "generated_default_cert.swidtag";
private final String BASE_USER_CERT_EMBED = "generated_user_cert_embed.swidtag"; private final String BASE_RFC3339_TIMESTAMP = "generated_timestamp_rfc3339.swidtag";
private final String BASE_DEFAULT_CERT = "generated_default_cert.swidtag"; private final String BASE_RFC3852_TIMESTAMP = "generated_timestamp_rfc3852.swidtag";
private final String BASE_RFC3339_TIMESTAMP = "generated_timestamp_rfc3339.swidtag"; private final String ATTRIBUTES_FILE = TestSwidTagGateway.class.getClassLoader()
private final String BASE_RFC3852_TIMESTAMP = "generated_timestamp_rfc3852.swidtag"; .getResource("rim_fields.json").getPath();
private final String ATTRIBUTES_FILE = TestSwidTagGateway.class.getClassLoader() private final String JKS_KEYSTORE_FILE = TestSwidTagGateway.class.getClassLoader()
.getResource("rim_fields.json").getPath(); .getResource("keystore.jks").getPath();
private final String JKS_KEYSTORE_FILE = TestSwidTagGateway.class.getClassLoader() private final String SIGNING_CERT_FILE = TestSwidTagGateway.class.getClassLoader()
.getResource("keystore.jks").getPath(); .getResource("RimSignCert.pem").getPath();
private final String SIGNING_CERT_FILE = TestSwidTagGateway.class.getClassLoader() private final String PRIVATE_KEY_FILE = TestSwidTagGateway.class.getClassLoader()
.getResource("RimSignCert.pem").getPath(); .getResource("privateRimKey.pem").getPath();
private final String PRIVATE_KEY_FILE = TestSwidTagGateway.class.getClassLoader() private final String CA_CHAIN_FILE = TestSwidTagGateway.class.getClassLoader()
.getResource("privateRimKey.pem").getPath(); .getResource("RimCertChain.pem").getPath();
private final String CA_CHAIN_FILE = TestSwidTagGateway.class.getClassLoader() private final String SUPPORT_RIM_FILE = TestSwidTagGateway.class.getClassLoader()
.getResource("RimCertChain.pem").getPath(); .getResource("TpmLog.bin").getPath();
private final String SUPPORT_RIM_FILE = TestSwidTagGateway.class.getClassLoader() private final String RFC3852_COUNTERSIGNATURE_FILE = TestSwidTagGateway.class.getClassLoader()
.getResource("TpmLog.bin").getPath(); .getResource("counterSignature.file").getPath();
private final String RFC3852_COUNTERSIGNATURE_FILE = TestSwidTagGateway.class.getClassLoader() private SwidTagGateway gateway;
.getResource("counterSignature.file").getPath(); private ReferenceManifestValidator validator;
private InputStream expectedFile; private InputStream expectedFile;
@BeforeClass @BeforeTestClass
public void setUp() throws Exception { public void setUp() throws Exception {
gateway = new SwidTagGateway(); gateway = new SwidTagGateway();
gateway.setRimEventLog(SUPPORT_RIM_FILE); gateway.setRimEventLog(SUPPORT_RIM_FILE);
gateway.setAttributesFile(ATTRIBUTES_FILE); gateway.setAttributesFile(ATTRIBUTES_FILE);
validator = new ReferenceManifestValidator(); validator = new ReferenceManifestValidator();
validator.setRimEventLog(SUPPORT_RIM_FILE); validator.setRimEventLog(SUPPORT_RIM_FILE);
validator.setTrustStoreFile(CA_CHAIN_FILE); validator.setTrustStoreFile(CA_CHAIN_FILE);
} }
@AfterClass @AfterTestClass
public void tearDown() throws Exception { public void tearDown() throws Exception {
if (expectedFile != null) { if (expectedFile != null) {
expectedFile.close(); expectedFile.close();
} }
} }
/** /**
* This test corresponds to the arguments: * This test corresponds to the arguments:
* -c base -l TpmLog.bin -k privateRimKey.pem -p RimSignCert.pem * -c base -l TpmLog.bin -k privateRimKey.pem -p RimSignCert.pem
* where RimSignCert.pem has the AIA extension. * where RimSignCert.pem has the AIA extension.
*/ */
@Test @Test
public void testCreateBaseUserCertNotEmbedded() { public void testCreateBaseUserCertNotEmbedded() {
gateway.setDefaultCredentials(false); gateway.setDefaultCredentials(false);
gateway.setPemCertificateFile(SIGNING_CERT_FILE); gateway.setPemCertificateFile(SIGNING_CERT_FILE);
gateway.setPemPrivateKeyFile(PRIVATE_KEY_FILE); gateway.setPemPrivateKeyFile(PRIVATE_KEY_FILE);
gateway.setEmbeddedCert(false); gateway.setEmbeddedCert(false);
gateway.generateSwidTag(DEFAULT_OUTPUT); gateway.generateSwidTag(DEFAULT_OUTPUT);
expectedFile = TestSwidTagGateway.class.getClassLoader() expectedFile = TestSwidTagGateway.class.getClassLoader()
.getResourceAsStream(BASE_USER_CERT); .getResourceAsStream(BASE_USER_CERT);
Assert.assertTrue(compareFileBytesToExpectedFile(DEFAULT_OUTPUT)); assertTrue(compareFileBytesToExpectedFile(DEFAULT_OUTPUT));
validator.setRim(DEFAULT_OUTPUT); validator.setRim(DEFAULT_OUTPUT);
Assert.assertTrue(validator.validateRim(SIGNING_CERT_FILE)); assertTrue(validator.validateRim(SIGNING_CERT_FILE));
} }
/** /**
* This test creates the following base RIM: * This test creates the following base RIM:
* -c base -l TpmLog.bin -k privateRimKey.pem -p RimSignCert.pem -e * -c base -l TpmLog.bin -k privateRimKey.pem -p RimSignCert.pem -e
* And then validates it: * And then validates it:
* -v [base RIM] -l TpmLog.bin -t RimCertChain.pem * -v [base RIM] -l TpmLog.bin -t RimCertChain.pem
*/ */
@Test @Test
public void testCreateBaseUserCertEmbedded() { public void testCreateBaseUserCertEmbedded() {
gateway.setDefaultCredentials(false); gateway.setDefaultCredentials(false);
gateway.setPemCertificateFile(SIGNING_CERT_FILE); gateway.setPemCertificateFile(SIGNING_CERT_FILE);
gateway.setPemPrivateKeyFile(PRIVATE_KEY_FILE); gateway.setPemPrivateKeyFile(PRIVATE_KEY_FILE);
gateway.setEmbeddedCert(true); gateway.setEmbeddedCert(true);
gateway.generateSwidTag(DEFAULT_OUTPUT); gateway.generateSwidTag(DEFAULT_OUTPUT);
expectedFile = TestSwidTagGateway.class.getClassLoader() expectedFile = TestSwidTagGateway.class.getClassLoader()
.getResourceAsStream(BASE_USER_CERT_EMBED); .getResourceAsStream(BASE_USER_CERT_EMBED);
Assert.assertTrue(compareFileBytesToExpectedFile(DEFAULT_OUTPUT)); assertTrue(compareFileBytesToExpectedFile(DEFAULT_OUTPUT));
validator.setRim(DEFAULT_OUTPUT); validator.setRim(DEFAULT_OUTPUT);
Assert.assertTrue(validator.validateRim(SIGNING_CERT_FILE)); assertTrue(validator.validateRim(SIGNING_CERT_FILE));
} }
/** /**
* This test corresponds to the arguments: * This test corresponds to the arguments:
* -c base -l TpmLog.bin -d * -c base -l TpmLog.bin -d
*/ */
@Test @Test
public void testCreateBaseDefaultCert() { public void testCreateBaseDefaultCert() {
gateway.setDefaultCredentials(true); gateway.setDefaultCredentials(true);
gateway.setJksTruststoreFile(JKS_KEYSTORE_FILE); gateway.setJksTruststoreFile(JKS_KEYSTORE_FILE);
gateway.generateSwidTag(DEFAULT_OUTPUT); gateway.generateSwidTag(DEFAULT_OUTPUT);
expectedFile = TestSwidTagGateway.class.getClassLoader() expectedFile = TestSwidTagGateway.class.getClassLoader()
.getResourceAsStream(BASE_DEFAULT_CERT); .getResourceAsStream(BASE_DEFAULT_CERT);
Assert.assertTrue(compareFileBytesToExpectedFile(DEFAULT_OUTPUT)); assertTrue(compareFileBytesToExpectedFile(DEFAULT_OUTPUT));
validator.setRim(DEFAULT_OUTPUT); validator.setRim(DEFAULT_OUTPUT);
Assert.assertTrue(validator.validateRim(SIGNING_CERT_FILE)); assertTrue(validator.validateRim(SIGNING_CERT_FILE));
} }
/** /**
* This test corresponds to the arguments: * This test corresponds to the arguments:
* -c base -l TpmLog.bin -d --timestamp rfc3339 2023-01-01T00:00:00Z * -c base -l TpmLog.bin -d --timestamp rfc3339 2023-01-01T00:00:00Z
*/ */
@Test @Test
public void testCreateTimestampRfc3339() { public void testCreateTimestampRfc3339() {
gateway.setDefaultCredentials(true); gateway.setDefaultCredentials(true);
gateway.setJksTruststoreFile(JKS_KEYSTORE_FILE); gateway.setJksTruststoreFile(JKS_KEYSTORE_FILE);
gateway.setTimestampFormat("RFC3339"); gateway.setTimestampFormat("RFC3339");
gateway.setTimestampArgument("2023-01-01T00:00:00Z"); gateway.setTimestampArgument("2023-01-01T00:00:00Z");
gateway.generateSwidTag(DEFAULT_OUTPUT); gateway.generateSwidTag(DEFAULT_OUTPUT);
expectedFile = TestSwidTagGateway.class.getClassLoader() expectedFile = TestSwidTagGateway.class.getClassLoader()
.getResourceAsStream(BASE_RFC3339_TIMESTAMP); .getResourceAsStream(BASE_RFC3339_TIMESTAMP);
Assert.assertTrue(compareFileBytesToExpectedFile(DEFAULT_OUTPUT)); assertTrue(compareFileBytesToExpectedFile(DEFAULT_OUTPUT));
validator.setRim(DEFAULT_OUTPUT); validator.setRim(DEFAULT_OUTPUT);
Assert.assertTrue(validator.validateRim(SIGNING_CERT_FILE)); assertTrue(validator.validateRim(SIGNING_CERT_FILE));
} }
/** /**
* This test corresponds to the arguments: * This test corresponds to the arguments:
* -c base -l TpmLog.bin -d --timestamp rfc3852 countersignature.file * -c base -l TpmLog.bin -d --timestamp rfc3852 countersignature.file
*/ */
@Test @Test
public void testCreateTimestampRfc3852() { public void testCreateTimestampRfc3852() {
gateway.setDefaultCredentials(true); gateway.setDefaultCredentials(true);
gateway.setJksTruststoreFile(JKS_KEYSTORE_FILE); gateway.setJksTruststoreFile(JKS_KEYSTORE_FILE);
gateway.setTimestampFormat("RFC3852"); gateway.setTimestampFormat("RFC3852");
gateway.setTimestampArgument(RFC3852_COUNTERSIGNATURE_FILE); gateway.setTimestampArgument(RFC3852_COUNTERSIGNATURE_FILE);
gateway.generateSwidTag(DEFAULT_OUTPUT); gateway.generateSwidTag(DEFAULT_OUTPUT);
expectedFile = TestSwidTagGateway.class.getClassLoader() expectedFile = TestSwidTagGateway.class.getClassLoader()
.getResourceAsStream(BASE_RFC3852_TIMESTAMP); .getResourceAsStream(BASE_RFC3852_TIMESTAMP);
Assert.assertTrue(compareFileBytesToExpectedFile(DEFAULT_OUTPUT)); assertTrue(compareFileBytesToExpectedFile(DEFAULT_OUTPUT));
validator.setRim(DEFAULT_OUTPUT); validator.setRim(DEFAULT_OUTPUT);
Assert.assertTrue(validator.validateRim(SIGNING_CERT_FILE)); assertTrue(validator.validateRim(SIGNING_CERT_FILE));
} }
/** /**
* This test corresponds to the arguments: * This test corresponds to the arguments:
* -v <path> * -v <path>
*/ */
public void testvalidateSwidtagFile() { public void testvalidateSwidtagFile() {
String filepath = TestSwidTagGateway.class.getClassLoader() String filepath = TestSwidTagGateway.class.getClassLoader()
.getResource(BASE_USER_CERT).getPath(); .getResource(BASE_USER_CERT).getPath();
System.out.println("Validating file at " + filepath); System.out.println("Validating file at " + filepath);
validator.setRim(DEFAULT_OUTPUT); validator.setRim(DEFAULT_OUTPUT);
Assert.assertTrue(validator.validateRim(SIGNING_CERT_FILE)); assertTrue(validator.validateRim(SIGNING_CERT_FILE));
} }
/** /**
* This method compares two files by bytes to determine if they are the same or not. * This method compares two files by bytes to determine if they are the same or not.
* @param file to be compared to the expected value. *
* @return true if they are equal, false if not. * @param file to be compared to the expected value.
*/ * @return true if they are equal, false if not.
private boolean compareFileBytesToExpectedFile(String file) { */
FileInputStream testFile = null; private boolean compareFileBytesToExpectedFile(String file) {
try { FileInputStream testFile = null;
int data; try {
testFile = new FileInputStream(file); int data;
while ((data = testFile.read()) != -1) { testFile = new FileInputStream(file);
int expected = expectedFile.read(); while ((data = testFile.read()) != -1) {
if (data != expected) { int expected = expectedFile.read();
System.out.println("Expected: " + expected); if (data != expected) {
System.out.println("Got: " + data); System.out.println("Expected: " + expected);
return false; System.out.println("Got: " + data);
} return false;
} }
} catch (FileNotFoundException e) { }
e.printStackTrace(); } catch (FileNotFoundException e) {
return false; e.printStackTrace();
} catch (IOException e) { return false;
e.printStackTrace(); } catch (IOException e) {
return false; e.printStackTrace();
} catch (NullPointerException e) { return false;
e.printStackTrace(); } catch (NullPointerException e) {
return false; e.printStackTrace();
} finally { return false;
if (testFile != null) { } finally {
try { if (testFile != null) {
testFile.close(); try {
} catch (IOException e) { testFile.close();
e.printStackTrace(); } catch (IOException e) {
return false; e.printStackTrace();
} return false;
} }
if (expectedFile != null) { }
try { if (expectedFile != null) {
expectedFile.close(); try {
} catch (IOException e) { expectedFile.close();
e.printStackTrace(); } catch (IOException e) {
return false; e.printStackTrace();
} return false;
} }
} }
return true; }
} return true;
}
} }