Skip to content

Commit 79b38c1

Browse files
committed
Fix UT
1 parent 27d93d5 commit 79b38c1

File tree

6 files changed

+20
-19
lines changed

6 files changed

+20
-19
lines changed

src/main/java/com/uid2/shared/secure/azurecc/MaaTokenPayload.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,14 @@
77
@Builder(toBuilder = true)
88
public class MaaTokenPayload {
99
public static final String SEV_SNP_VM_TYPE = "sevsnpvm";
10+
public static final String AZURE_CC_PROTOCOL = "azure-cc";
11+
public static final String AZURE_CC_AKS_PROTOCOL = "azure-cc-aks";
12+
// the `x-ms-compliance-status` value for ACI CC
13+
public static final String AZURE_COMPLIANT_UVM = "azure-compliant-uvm";
14+
// the `x-ms-compliance-status` value for AKS CC
15+
public static final String AZURE_COMPLIANT_UVM_AKS = "azure-signed-katacc-uvm";
1016

11-
private String azure_compliant_uvm;
17+
private String azureProtocol;
1218
private String attestationType;
1319
private String complianceStatus;
1420
private boolean vmDebuggable;
@@ -21,6 +27,11 @@ public boolean isSevSnpVM(){
2127
}
2228

2329
public boolean isUtilityVMCompliant(){
24-
return azure_compliant_uvm.equalsIgnoreCase(complianceStatus);
30+
if (azureProtocol == AZURE_CC_PROTOCOL) {
31+
return AZURE_COMPLIANT_UVM.equalsIgnoreCase(complianceStatus);
32+
} else if (azureProtocol == AZURE_CC_AKS_PROTOCOL) {
33+
return AZURE_COMPLIANT_UVM_AKS.equalsIgnoreCase(complianceStatus);
34+
}
35+
return false;
2536
}
2637
}

src/main/java/com/uid2/shared/secure/azurecc/MaaTokenSignatureValidator.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,6 @@
1515
import static com.uid2.shared.secure.JwtUtils.tryGetField;
1616

1717
public class MaaTokenSignatureValidator implements IMaaTokenSignatureValidator {
18-
// the `x-ms-compliance-status` value for ACI CC
19-
public static final String AZURE_COMPLIANT_UVM = "azure-compliant-uvm";
20-
21-
// the `x-ms-compliance-status` value for AKS CC
22-
public static final String AZURE_COMPLIANT_UVM_AKS = "azure-signed-katacc-uvm";
23-
2418
// set to true to facilitate local test.
2519
public static final boolean BYPASS_SIGNATURE_CHECK = false;
2620

@@ -82,12 +76,7 @@ public MaaTokenPayload validate(String tokenString, String protocol) throws Atte
8276

8377
var tokenPayloadBuilder = MaaTokenPayload.builder();
8478

85-
if (protocol == "azure-cc") {
86-
tokenPayloadBuilder.azure_compliant_uvm(AZURE_COMPLIANT_UVM);
87-
} else if(protocol == "azure-cc-aks") {
88-
tokenPayloadBuilder.azure_compliant_uvm(AZURE_COMPLIANT_UVM_AKS);
89-
}
90-
79+
tokenPayloadBuilder.azureProtocol(protocol);
9180
tokenPayloadBuilder.attestationType(tryGetField(rawPayload, "x-ms-attestation-type", String.class));
9281
tokenPayloadBuilder.complianceStatus(tryGetField(rawPayload, "x-ms-compliance-status", String.class));
9382
tokenPayloadBuilder.vmDebuggable(tryGetField(rawPayload, "x-ms-sevsnpvm-is-debuggable", Boolean.class));

src/test/java/com/uid2/shared/secure/AzureCCCoreAttestationServiceTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ private static byte[] encodeStringUnicodeAttestationEndpoint(String data) {
5555

5656
@BeforeEach
5757
public void setup() throws AttestationException {
58-
when(alwaysPassTokenValidator.validate(any())).thenReturn(VALID_TOKEN_PAYLOAD);
58+
when(alwaysPassTokenValidator.validate(any(), any())).thenReturn(VALID_TOKEN_PAYLOAD);
5959
when(alwaysPassPolicyValidator.validate(any(), any())).thenReturn(ENCLAVE_ID);
6060
}
6161

@@ -72,7 +72,7 @@ public void testHappyPath() throws AttestationException {
7272
@Test
7373
public void testSignatureCheckFailed_ClientError() throws AttestationException {
7474
var errorStr = "token signature validation failed";
75-
when(alwaysFailTokenValidator.validate(any())).thenThrow(new AttestationClientException(errorStr, AttestationFailure.BAD_PAYLOAD));
75+
when(alwaysFailTokenValidator.validate(any(), any())).thenThrow(new AttestationClientException(errorStr, AttestationFailure.BAD_PAYLOAD));
7676
var provider = new AzureCCCoreAttestationService(alwaysFailTokenValidator, alwaysPassPolicyValidator);
7777
provider.registerEnclave(ENCLAVE_ID);
7878
attest(provider, ar -> {
@@ -84,7 +84,7 @@ public void testSignatureCheckFailed_ClientError() throws AttestationException {
8484

8585
@Test
8686
public void testSignatureCheckFailed_ServerError() throws AttestationException {
87-
when(alwaysFailTokenValidator.validate(any())).thenThrow(new AttestationException("unknown server error"));
87+
when(alwaysFailTokenValidator.validate(any(), any())).thenThrow(new AttestationException("unknown server error"));
8888
var provider = new AzureCCCoreAttestationService(alwaysFailTokenValidator, alwaysPassPolicyValidator);
8989
provider.registerEnclave(ENCLAVE_ID);
9090
attest(provider, ar -> {

src/test/java/com/uid2/shared/secure/azurecc/MaaTokenSignatureValidatorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,6 @@ public void testE2E() throws AttestationException {
3737
var maaToken = "<Placeholder>";
3838
var maaServerUrl = "https://sharedeus.eus.attest.azure.net";
3939
var validator = new MaaTokenSignatureValidator(maaServerUrl);
40-
var token = validator.validate(maaToken);
40+
var token = validator.validate(maaToken, "azure-cc");
4141
}
4242
}

src/test/java/com/uid2/shared/secure/azurecc/MaaTokenUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public static MaaTokenPayload validateAndParseToken(JsonObject payload, Clock cl
3030
var tokenVerifier = new MaaTokenSignatureValidator(MAA_BASE_URL, keyProvider, clock);
3131

3232
// validate token
33-
return tokenVerifier.validate(token);
33+
return tokenVerifier.validate(token, "azure-cc");
3434
}
3535

3636
private static class MockKeyProvider implements IPublicKeyProvider {

src/test/java/com/uid2/shared/secure/azurecc/PolicyValidatorTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ private MaaTokenPayload generateBasicPayload() {
9797
.vmDebuggable(false)
9898
.runtimeData(generateBasicRuntimeData())
9999
.ccePolicyDigest(CCE_POLICY_DIGEST)
100+
.azureProtocol("azure-cc")
100101
.build();
101102
}
102103

0 commit comments

Comments
 (0)