Skip to content

Commit 07cf026

Browse files
chenkinsdkocher
authored andcommitted
Obfuscate seeds in UvfMetadataPayload.toString.
1 parent e403914 commit 07cf026

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

hub/src/main/java/ch/iterate/hub/crypto/uvf/UvfMetadataPayload.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import ch.cyberduck.core.AlphanumericRandomStringService;
99
import ch.cyberduck.core.cryptomator.random.FastSecureRandomProvider;
1010

11+
import org.apache.commons.lang3.StringUtils;
1112
import org.cryptomator.cryptolib.api.Cryptor;
1213
import org.cryptomator.cryptolib.api.CryptorProvider;
1314
import org.cryptomator.cryptolib.api.UVFMasterkey;
@@ -24,6 +25,7 @@
2425
import java.util.Map;
2526
import java.util.Objects;
2627
import java.util.UUID;
28+
import java.util.stream.Collectors;
2729

2830
import ch.iterate.hub.crypto.exceptions.NotECKeyException;
2931
import ch.iterate.hub.model.JWEPayload;
@@ -324,11 +326,11 @@ public String toString() {
324326
return "UvfMetadataPayload{" +
325327
"fileFormat='" + fileFormat + '\'' +
326328
", nameFormat='" + nameFormat + '\'' +
327-
", seeds=" + seeds +
329+
", seeds={" + seeds.entrySet().stream().map(e -> e.getKey() + "=" + StringUtils.repeat("*", Integer.min(8, StringUtils.length(e.getValue())))).collect(Collectors.joining(", ")) + "}" +
328330
", initialSeed='" + initialSeed + '\'' +
329331
", latestSeed='" + latestSeed + '\'' +
330332
", kdf='" + kdf + '\'' +
331-
", kdfSalt='" + kdfSalt + '\'' +
333+
", kdfSalt='" + StringUtils.repeat("*", Integer.min(8, StringUtils.length(kdf))) + '\'' +
332334
", automaticAccessGrant=" + automaticAccessGrant +
333335
", storage=" + storage +
334336
'}';

hub/src/test/java/ch/iterate/hub/crypto/uvf/UvfMetadataPayloadTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ public void encryptDecrypt() throws JOSEException, JsonProcessingException, Pars
125125
final ECKey fake = new ECKey.Builder(recoveryKey).keyID("kiddo").build();
126126
assertThrows(JOSEException.class, () -> UvfMetadataPayload.decryptWithJWK(encrypted, fake));
127127
}
128+
assertTrue(orig.toString().startsWith("UvfMetadataPayload{fileFormat='AES-256-GCM-32k', nameFormat='AES-256-SIV', seeds={key02=********, key01=********}, initialSeed='key1', latestSeed='key0', kdf='1STEP-HMAC-SHA512', kdfSalt='********', automaticAccessGrant=class AutomaticAccessGrant {"));
128129
}
129130

130131
@Test

0 commit comments

Comments
 (0)