Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
- fix: replace assert statements with explicit null checks in `Federation` class to ensure validation is not bypassed when assertions are disabled.
- fix: add overflow check in `TimeBounds.expiresAfter()` to prevent integer overflow when timeout is too large.
- fix: add validation for `ManageDataOperation` value length to ensure it does not exceed 64 bytes.
- fix: use `StandardCharsets.UTF_8` explicitly when converting byte arrays to strings to ensure consistent behavior across different platforms.

## 2.2.1

Expand Down
5 changes: 4 additions & 1 deletion src/main/java/org/stellar/sdk/Sep10Challenge.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.stellar.sdk;

import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Arrays;
Expand Down Expand Up @@ -316,7 +317,9 @@ public static ChallengeTransaction readChallengeTransaction(

byte[] nonce;
try {
nonce = Base64Factory.getInstance().decode(new String(manageDataOperation.getValue()));
nonce =
Base64Factory.getInstance()
.decode(new String(manageDataOperation.getValue(), StandardCharsets.UTF_8));
} catch (IllegalArgumentException e) {
throw new InvalidSep10ChallengeException(
"Failed to decode random nonce provided in ManageData operation.", e);
Expand Down
15 changes: 8 additions & 7 deletions src/main/java/org/stellar/sdk/Sep45Challenge.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.stellar.sdk;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Arrays;
Expand Down Expand Up @@ -371,25 +372,25 @@ public static ChallengeAuthorizationEntries readChallengeAuthorizationEntries(

switch (key) {
case "account":
account = new String(Scv.fromString(valueVal));
account = new String(Scv.fromString(valueVal), StandardCharsets.UTF_8);
break;
case "home_domain":
homeDomain = new String(Scv.fromString(valueVal));
homeDomain = new String(Scv.fromString(valueVal), StandardCharsets.UTF_8);
break;
case "nonce":
nonce = new String(Scv.fromString(valueVal));
nonce = new String(Scv.fromString(valueVal), StandardCharsets.UTF_8);
break;
case "web_auth_domain":
webAuthDomainValue = new String(Scv.fromString(valueVal));
webAuthDomainValue = new String(Scv.fromString(valueVal), StandardCharsets.UTF_8);
break;
case "web_auth_domain_account":
webAuthDomainAccount = new String(Scv.fromString(valueVal));
webAuthDomainAccount = new String(Scv.fromString(valueVal), StandardCharsets.UTF_8);
break;
case "client_domain":
clientDomain = new String(Scv.fromString(valueVal));
clientDomain = new String(Scv.fromString(valueVal), StandardCharsets.UTF_8);
break;
case "client_domain_account":
clientDomainAccount = new String(Scv.fromString(valueVal));
clientDomainAccount = new String(Scv.fromString(valueVal), StandardCharsets.UTF_8);
break;
default:
// Unknown argument, ignore
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/org/stellar/sdk/Util.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import java.io.IOException;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
Expand Down Expand Up @@ -95,7 +96,7 @@ public static byte[] paddedByteArray(String string, int length) {
* @return trimmed byte array
*/
static String paddedByteArrayToString(byte[] bytes) {
String[] strArray = new String(bytes).split("\0");
String[] strArray = new String(bytes, StandardCharsets.UTF_8).split("\0");
if (strArray.length > 0) {
return strArray[0];
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.stellar.sdk.operations;

import java.nio.charset.StandardCharsets;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
Expand Down Expand Up @@ -57,10 +58,14 @@ public static AllowTrustOperation fromXdr(AllowTrustOp op) {
String assetCode;
switch (op.getAsset().getDiscriminant()) {
case ASSET_TYPE_CREDIT_ALPHANUM4:
assetCode = new String(op.getAsset().getAssetCode4().getAssetCode4()).trim();
assetCode =
new String(op.getAsset().getAssetCode4().getAssetCode4(), StandardCharsets.UTF_8)
.trim();
break;
case ASSET_TYPE_CREDIT_ALPHANUM12:
assetCode = new String(op.getAsset().getAssetCode12().getAssetCode12()).trim();
assetCode =
new String(op.getAsset().getAssetCode12().getAssetCode12(), StandardCharsets.UTF_8)
.trim();
break;
default:
throw new IllegalArgumentException("Unknown asset code");
Expand Down
Loading