|
3 | 3 | import com.google.protobuf.Struct; |
4 | 4 | import com.google.protobuf.Value; |
5 | 5 | import io.opentdf.platform.policy.Algorithm; |
| 6 | +import io.opentdf.platform.policy.PublicKey; |
6 | 7 | import io.opentdf.platform.wellknownconfiguration.GetWellKnownConfigurationResponse; |
7 | 8 | import io.opentdf.platform.wellknownconfiguration.WellKnownServiceClientInterface; |
8 | 9 | import org.assertj.core.api.Assertions; |
@@ -132,29 +133,42 @@ void testFillingInKeysWithAutoConfigure() { |
132 | 133 | var tdfConfig = new Config.TDFConfig(); |
133 | 134 | tdfConfig.autoconfigure = true; |
134 | 135 | tdfConfig.wrappingKeyType = KeyType.RSA2048Key; |
135 | | - var planner = new Planner(new Config.TDFConfig(), new FakeServicesBuilder().setKas(kas).build(), (ignore1, ignored2) -> { throw new IllegalArgumentException("no granter needed"); }); |
| 136 | + tdfConfig.kasInfoList = List.of( |
| 137 | + new Config.KASInfo() {{ |
| 138 | + URL = "https://kas4.example.com"; |
| 139 | + KID = "kid4"; |
| 140 | + Algorithm = "ec:secp384r1"; |
| 141 | + PublicKey = "pem4"; |
| 142 | + }} |
| 143 | + ); |
| 144 | + var planner = new Planner(tdfConfig, new FakeServicesBuilder().setKas(kas).build(), (ignore1, ignored2) -> { throw new IllegalArgumentException("no granter needed"); }); |
136 | 145 | var plan = List.of( |
137 | 146 | new Autoconfigure.KeySplitStep("https://kas1.example.com", "split1", null), |
| 147 | + new Autoconfigure.KeySplitStep("https://kas4.example.com", "split1", "kid4"), |
138 | 148 | new Autoconfigure.KeySplitStep("https://kas2.example.com", "split2", "kid2"), |
139 | 149 | new Autoconfigure.KeySplitStep("https://kas3.example.com", "split2", "kid3") |
140 | 150 | ); |
141 | 151 | Map<String, List<Config.KASInfo>> filledInPlan = planner.resolveKeys(plan); |
142 | 152 | assertThat(filledInPlan.keySet().stream().collect(Collectors.toList())).asList().containsExactlyInAnyOrder("split1", "split2"); |
143 | | - assertThat(filledInPlan.get("split1")).asList().hasSize(1); |
144 | | - var split1KasInfo = filledInPlan.get("split1").get(0); |
145 | | - assertThat(split1KasInfo.URL).isEqualTo("https://kas1.example.com"); |
146 | | - assertThat(split1KasInfo.KID).isEqualTo("kid1"); |
147 | | - assertThat(split1KasInfo.Algorithm).isEqualTo("rsa:2048"); |
148 | | - assertThat(split1KasInfo.PublicKey).isEqualTo("pem1"); |
| 153 | + assertThat(filledInPlan.get("split1")).asList().hasSize(2); |
| 154 | + var kasInfo1 = filledInPlan.get("split1").stream().filter(k -> "kid1".equals(k.KID)).findFirst().get(); |
| 155 | + assertThat(kasInfo1.URL).isEqualTo("https://kas1.example.com"); |
| 156 | + assertThat(kasInfo1.Algorithm).isEqualTo("rsa:2048"); |
| 157 | + assertThat(kasInfo1.PublicKey).isEqualTo("pem1"); |
| 158 | + var kasInfo4 = filledInPlan.get("split1").stream().filter(k -> "kid4".equals(k.KID)).findFirst().get(); |
| 159 | + assertThat(kasInfo4.URL).isEqualTo("https://kas4.example.com"); |
| 160 | + assertThat(kasInfo4.Algorithm).isEqualTo("ec:secp384r1"); |
| 161 | + assertThat(kasInfo4.PublicKey).isEqualTo("pem4"); |
| 162 | + |
149 | 163 | assertThat(filledInPlan.get("split2")).asList().hasSize(2); |
150 | | - var split2KasInfo = filledInPlan.get("split2").stream().filter(kasInfo -> "kid2".equals(kasInfo.KID)).findFirst().get(); |
151 | | - assertThat(split2KasInfo.URL).isEqualTo("https://kas2.example.com"); |
152 | | - assertThat(split2KasInfo.Algorithm).isEqualTo("ec:secp256r1"); |
153 | | - assertThat(split2KasInfo.PublicKey).isEqualTo("pem2"); |
154 | | - var split3KasInfo = filledInPlan.get("split2").stream().filter(kasInfo -> "kid3".equals(kasInfo.KID)).findFirst().get(); |
155 | | - assertThat(split3KasInfo.URL).isEqualTo("https://kas3.example.com"); |
156 | | - assertThat(split3KasInfo.Algorithm).isEqualTo("rsa:4096"); |
157 | | - assertThat(split3KasInfo.PublicKey).isEqualTo("pem3"); |
| 164 | + var kasInfo2 = filledInPlan.get("split2").stream().filter(kasInfo -> "kid2".equals(kasInfo.KID)).findFirst().get(); |
| 165 | + assertThat(kasInfo2.URL).isEqualTo("https://kas2.example.com"); |
| 166 | + assertThat(kasInfo2.Algorithm).isEqualTo("ec:secp256r1"); |
| 167 | + assertThat(kasInfo2.PublicKey).isEqualTo("pem2"); |
| 168 | + var kasInfo3 = filledInPlan.get("split2").stream().filter(kasInfo -> "kid3".equals(kasInfo.KID)).findFirst().get(); |
| 169 | + assertThat(kasInfo3.URL).isEqualTo("https://kas3.example.com"); |
| 170 | + assertThat(kasInfo3.Algorithm).isEqualTo("rsa:4096"); |
| 171 | + assertThat(kasInfo3.PublicKey).isEqualTo("pem3"); |
158 | 172 | } |
159 | 173 |
|
160 | 174 | @Test |
|
0 commit comments