Skip to content

Commit 7526fed

Browse files
committed
Normalize origin.
1 parent 2b63d58 commit 7526fed

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

hub/src/main/java/cloud/katta/crypto/uvf/UvfMetadataPayload.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ public String encrypt(final String apiURL, final UUID vaultId, final JWKSet keys
337337
final JWEObjectJSON builder = new JWEObjectJSON(
338338
new JWEHeader.Builder(EncryptionMethod.A256GCM)
339339
// kid goes into recipient-specific header
340-
.customParam("origin", String.format("%s/vaults/%s/uvf/vault.uvf", apiURL, vaultId.toString()))
340+
.customParam("origin", URI.create(String.format("%s/vaults/%s/uvf/vault.uvf", apiURL, vaultId.toString())).normalize().toString())
341341
.jwkURL(URI.create("jwks.json"))
342342
.contentType("json")
343343
.criticalParams(Collections.singleton(UVF_SPEC_VERSION_KEY_PARAM))

hub/src/test/java/cloud/katta/crypto/uvf/UvfMetadataPayloadTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import cloud.katta.protocols.hub.HubSession;
3333
import com.fasterxml.jackson.core.JsonProcessingException;
3434
import com.nimbusds.jose.JOSEException;
35+
import com.nimbusds.jose.JWEObjectJSON;
3536
import com.nimbusds.jose.jwk.Curve;
3637
import com.nimbusds.jose.jwk.ECKey;
3738
import com.nimbusds.jose.jwk.JWKSet;
@@ -103,17 +104,20 @@ void encryptDecrypt() throws JOSEException, JsonProcessingException, ParseExcept
103104
final OctetSequenceKey memberKey = jwks.memberKey();
104105
final ECKey recoveryKey = jwks.recoveryKey();
105106

106-
final String encrypted = orig.encrypt("https://example.com/api/", UUID.randomUUID(), jwks.toJWKSet());
107+
final UUID vaultId = UUID.randomUUID();
108+
final String encrypted = orig.encrypt("https://example.com/api/", vaultId, jwks.toJWKSet());
107109

108110
// decrypt with memberKey
109111
{
110112
final UvfMetadataPayload decrypted = UvfMetadataPayload.decryptWithJWK(encrypted, memberKey);
113+
assertEquals(String.format("https://example.com/api/vaults/%s/uvf/vault.uvf", vaultId), JWEObjectJSON.parse(encrypted).getHeader().getCustomParams().get("origin"));
111114
assertEquals(orig, decrypted);
112115
}
113116

114117
// decrypt with recoveryKey
115118
{
116119
final UvfMetadataPayload decrypted = UvfMetadataPayload.decryptWithJWK(encrypted, recoveryKey);
120+
assertEquals(String.format("https://example.com/api/vaults/%s/uvf/vault.uvf", vaultId), JWEObjectJSON.parse(encrypted).getHeader().getCustomParams().get("origin"));
117121
assertEquals(orig, decrypted);
118122
}
119123

0 commit comments

Comments
 (0)