diff --git a/actuator/src/main/java/org/tron/core/actuator/VMActuator.java b/actuator/src/main/java/org/tron/core/actuator/VMActuator.java index 41207b57683..f604013325e 100644 --- a/actuator/src/main/java/org/tron/core/actuator/VMActuator.java +++ b/actuator/src/main/java/org/tron/core/actuator/VMActuator.java @@ -410,8 +410,7 @@ private void create() long thisTxCPULimitInUs = calculateCpuLimitInUs(isConstantCall, rootRepository.getDynamicPropertiesStore().getMaxCpuTimeOfOneTx(), - getCpuLimitInUsRatio(), - CommonParameter.getInstance().getConstantCallTimeoutMs()); + getCpuLimitInUsRatio(), CommonParameter.getInstance().getConstantCallTimeoutMs()); long vmStartInUs = System.nanoTime() / VMConstant.ONE_THOUSAND; long vmShouldEndInUs = vmStartInUs + thisTxCPULimitInUs; ProgramInvoke programInvoke = ProgramInvokeFactory diff --git a/actuator/src/main/java/org/tron/core/utils/ProposalUtil.java b/actuator/src/main/java/org/tron/core/utils/ProposalUtil.java index 3975f8a631b..6aab7853fa6 100644 --- a/actuator/src/main/java/org/tron/core/utils/ProposalUtil.java +++ b/actuator/src/main/java/org/tron/core/utils/ProposalUtil.java @@ -943,8 +943,7 @@ public static void validator(DynamicPropertiesStore dynamicPropertiesStore, } case ALLOW_FN_DSA_512: { if (!forkController.pass(ForkBlockVersionEnum.VERSION_4_8_2)) { - throw new ContractValidateException( - "Bad chain parameter id [ALLOW_FN_DSA_512]"); + throw new ContractValidateException("Bad chain parameter id [ALLOW_FN_DSA_512]"); } if (value != 0 && value != 1) { throw new ContractValidateException( @@ -959,8 +958,7 @@ public static void validator(DynamicPropertiesStore dynamicPropertiesStore, } case ALLOW_ML_DSA_44: { if (!forkController.pass(ForkBlockVersionEnum.VERSION_4_8_2)) { - throw new ContractValidateException( - "Bad chain parameter id [ALLOW_ML_DSA_44]"); + throw new ContractValidateException("Bad chain parameter id [ALLOW_ML_DSA_44]"); } if (value != 0 && value != 1) { throw new ContractValidateException( diff --git a/actuator/src/main/java/org/tron/core/utils/TransactionUtil.java b/actuator/src/main/java/org/tron/core/utils/TransactionUtil.java index 1045e72b766..e4352fe3023 100644 --- a/actuator/src/main/java/org/tron/core/utils/TransactionUtil.java +++ b/actuator/src/main/java/org/tron/core/utils/TransactionUtil.java @@ -17,8 +17,8 @@ import static org.tron.common.crypto.Hash.sha3omit12; import static org.tron.common.math.Maths.max; -import static org.tron.core.config.Parameter.ChainConstant.DELEGATE_COST_BASE_SIZE; import static org.tron.core.Constant.PER_SIGN_LENGTH; +import static org.tron.core.config.Parameter.ChainConstant.DELEGATE_COST_BASE_SIZE; import static org.tron.core.config.Parameter.ChainConstant.TRX_PRECISION; import com.google.common.base.CaseFormat; @@ -52,9 +52,9 @@ import org.tron.protos.Protocol.Transaction; import org.tron.protos.Protocol.Transaction.Contract; import org.tron.protos.Protocol.Transaction.Result.contractResult; +import org.tron.protos.contract.BalanceContract.DelegateResourceContract; import org.tron.protos.contract.SmartContractOuterClass.CreateSmartContract; import org.tron.protos.contract.SmartContractOuterClass.TriggerSmartContract; -import org.tron.protos.contract.BalanceContract.DelegateResourceContract; @Slf4j(topic = "capsule") @Component @@ -84,7 +84,8 @@ public static boolean validUrl(byte[] url) { } public static boolean validAccountId(byte[] accountId) { - return validReadableBytes(accountId, MAX_ACCOUNT_ID_LEN) && accountId.length >= MIN_ACCOUNT_ID_LEN; + return validReadableBytes(accountId, MAX_ACCOUNT_ID_LEN) + && accountId.length >= MIN_ACCOUNT_ID_LEN; } public static boolean validAssetName(byte[] assetName) { @@ -246,7 +247,7 @@ public TransactionSignWeight getTransactionSignWeight(Transaction trx) { tswBuilder.setPermission(permission); long currentWeight = 0L; List approveList = new ArrayList<>(); - if (trx.getSignatureCount() > 0 ) { + if (trx.getSignatureCount() > 0) { currentWeight = TransactionCapsule.checkWeight(permission, trx.getSignatureList(), Sha256Hash.hash(CommonParameter.getInstance() .isECKeyCryptoEngine(), trx.getRawData().toByteArray()), approveList); @@ -257,7 +258,7 @@ public TransactionSignWeight getTransactionSignWeight(Transaction trx) { long pqWeight = TransactionCapsule.validatePQSignatureGetWeight(trx, permission, chainBaseManager.getDynamicPropertiesStore(), approveList); // sum all signature weight - currentWeight = StrictMathWrapper.addExact(currentWeight,pqWeight); + currentWeight = StrictMathWrapper.addExact(currentWeight, pqWeight); } catch (ArithmeticException e) { throw new PermissionException("weight overflow"); } @@ -297,13 +298,13 @@ public static long estimateConsumeBandWidthSize(DynamicPropertiesStore dps, long DelegateResourceContract.Builder builder; if (dps.supportMaxDelegateLockPeriod()) { builder = DelegateResourceContract.newBuilder() - .setLock(true) - .setLockPeriod(dps.getMaxDelegateLockPeriod()) - .setBalance(balance); + .setLock(true) + .setLockPeriod(dps.getMaxDelegateLockPeriod()) + .setBalance(balance); } else { builder = DelegateResourceContract.newBuilder() - .setLock(true) - .setBalance(balance); + .setLock(true) + .setBalance(balance); } long builderSize = builder.build().getSerializedSize(); DelegateResourceContract.Builder builder2 = DelegateResourceContract.newBuilder() diff --git a/actuator/src/main/java/org/tron/core/vm/PrecompiledContracts.java b/actuator/src/main/java/org/tron/core/vm/PrecompiledContracts.java index cafde5e46b7..cc3cd64fffa 100644 --- a/actuator/src/main/java/org/tron/core/vm/PrecompiledContracts.java +++ b/actuator/src/main/java/org/tron/core/vm/PrecompiledContracts.java @@ -132,12 +132,15 @@ public class PrecompiledContracts { // FreezeV2 PrecompileContracts private static final GetChainParameter getChainParameter = new GetChainParameter(); - private static final AvailableUnfreezeV2Size availableUnfreezeV2Size = new AvailableUnfreezeV2Size(); + private static final AvailableUnfreezeV2Size availableUnfreezeV2Size = + new AvailableUnfreezeV2Size(); private static final UnfreezableBalanceV2 unfreezableBalanceV2 = new UnfreezableBalanceV2(); - private static final ExpireUnfreezeBalanceV2 expireUnfreezeBalanceV2 = new ExpireUnfreezeBalanceV2(); + private static final ExpireUnfreezeBalanceV2 expireUnfreezeBalanceV2 = + new ExpireUnfreezeBalanceV2(); private static final DelegatableResource delegatableResource = new DelegatableResource(); private static final ResourceV2 resourceV2 = new ResourceV2(); - private static final CheckUnDelegateResource checkUnDelegateResource = new CheckUnDelegateResource(); + private static final CheckUnDelegateResource checkUnDelegateResource = + new CheckUnDelegateResource(); private static final ResourceUsage resourceUsage = new ResourceUsage(); private static final TotalResource totalResource = new TotalResource(); private static final TotalDelegatedResource totalDelegatedResource = new TotalDelegatedResource(); @@ -558,11 +561,9 @@ private static boolean isValidAbiHead(byte[] data, int headWords) { * a length word that still fits inside {@code words}. Sister check to * {@link #isValidAbiEncoding} for ABIs whose items are not uniform width. */ - private static boolean isValidArrayOffset(DataWord[] words, int offsetWordIndex, - int headWords) { + private static boolean isValidArrayOffset(DataWord[] words, int offsetWordIndex, int headWords) { long offsetBytes = words[offsetWordIndex].longValueSafe(); - if (offsetBytes < (long) headWords * WORD_SIZE - || offsetBytes % WORD_SIZE != 0) { + if (offsetBytes < (long) headWords * WORD_SIZE || offsetBytes % WORD_SIZE != 0) { return false; } long lengthWordIdx = offsetBytes / WORD_SIZE; @@ -846,7 +847,6 @@ public long getEnergyForData(byte[] data) { int expLen = parseLen(data, 1); int modLen = parseLen(data, 2); - byte[] expHighBytes = parseBytes(data, addSafely(ARGS_OFFSET, baseLen), min(expLen, 32, VMConfig.disableJavaLangMath())); @@ -948,8 +948,7 @@ private long getAdjustedExponentLength(byte[] expHighBytes, long expLen) { * TIP-7883: ModExp gas cost increase. * New pricing formula with higher minimum cost and no divisor. */ - private long getEnergyTIP7883(int baseLen, int modLen, - byte[] expHighBytes, int expLen) { + private long getEnergyTIP7883(int baseLen, int modLen, byte[] expHighBytes, int expLen) { long multComplexity = getMultComplexityTIP7883(baseLen, modLen); long iterCount = getIterationCountTIP7883(expHighBytes, expLen); @@ -1329,7 +1328,7 @@ public Pair execute(byte[] data) { try { return doExecute(data); } catch (Throwable t) { - if (t instanceof InterruptedException){ + if (t instanceof InterruptedException) { Thread.currentThread().interrupt(); } return Pair.of(true, new byte[WORD_SIZE]); @@ -1424,8 +1423,6 @@ private static class RecoverAddrResult { private byte[] addr; private int nonce; } - - } public abstract static class VerifyProof extends PrecompiledContract { @@ -2634,6 +2631,7 @@ public Pair execute(byte[] data) { /** * 0x17 BatchValidateFnDsa512 — independent per-element Falcon-512 verify. + * *

Returns a 256-bit bitmap (matching 0x09) where bit {@code i} is set iff * {@code derive(pk_i) == expectedAddr_i} AND {@code FNDSA512.verify(pk_i, hash, sig_i)}. * @@ -2766,10 +2764,8 @@ private Pair doExecute(byte[] data) return Pair.of(true, res); } - private static boolean verifyOne(byte[] sig, byte[] pk, byte[] hash, - byte[] expectedAddr) { - if (pk == null || pk.length != PK_LEN - || sig == null || sig.length != SIG_SLOT_LEN) { + private static boolean verifyOne(byte[] sig, byte[] pk, byte[] hash, byte[] expectedAddr) { + if (pk == null || pk.length != PK_LEN || sig == null || sig.length != SIG_SLOT_LEN) { return false; } // The slot is the EIP-8052 headerless body; rebuild the BC-headered sig. @@ -2801,8 +2797,7 @@ private static class PqVerifyTask implements Callable { @Override public PqVerifyResult call() { try { - return new PqVerifyResult( - verifyOne(signature, publicKey, hash, expectedAddr), nonce); + return new PqVerifyResult(verifyOne(signature, publicKey, hash, expectedAddr), nonce); } finally { countDownLatch.countDown(); } @@ -3199,10 +3194,8 @@ private Pair doExecute(byte[] data) return Pair.of(true, res); } - private static boolean verifyOne(byte[] sig, byte[] pk, byte[] hash, - byte[] expectedAddr) { - if (pk == null || pk.length != PK_LEN - || sig == null || sig.length != SIG_LEN) { + private static boolean verifyOne(byte[] sig, byte[] pk, byte[] hash, byte[] expectedAddr) { + if (pk == null || pk.length != PK_LEN || sig == null || sig.length != SIG_LEN) { return false; } try { @@ -3229,8 +3222,7 @@ private static class PqVerifyTask implements Callable { @Override public PqVerifyResult call() { try { - return new PqVerifyResult( - verifyOne(signature, publicKey, hash, expectedAddr), nonce); + return new PqVerifyResult(verifyOne(signature, publicKey, hash, expectedAddr), nonce); } finally { countDownLatch.countDown(); } diff --git a/chainbase/src/main/java/org/tron/common/utils/LocalWitnesses.java b/chainbase/src/main/java/org/tron/common/utils/LocalWitnesses.java index 10e2d787a8c..d27ac7b8ee7 100644 --- a/chainbase/src/main/java/org/tron/common/utils/LocalWitnesses.java +++ b/chainbase/src/main/java/org/tron/common/utils/LocalWitnesses.java @@ -111,8 +111,7 @@ public void initPqWitnessAccountAddress(final byte[] explicit) { if (!CollectionUtils.isEmpty(pqKeypairs)) { PqKeypair first = pqKeypairs.get(0); byte[] pubKey = ByteArray.fromHexString(first.getPublicKey()); - this.pqWitnessAccountAddress = PQSchemeRegistry.computeAddress( - first.getScheme(), pubKey); + this.pqWitnessAccountAddress = PQSchemeRegistry.computeAddress(first.getScheme(), pubKey); } } @@ -197,8 +196,7 @@ private static void validatePqKey(String key, int expectedLen, String label) { TronError.ErrCode.WITNESS_INIT); } if (!StringUtil.isHexadecimal(hex)) { - throw new TronError(label + " must be hex string", - TronError.ErrCode.WITNESS_INIT); + throw new TronError(label + " must be hex string", TronError.ErrCode.WITNESS_INIT); } } diff --git a/chainbase/src/main/java/org/tron/core/capsule/BlockCapsule.java b/chainbase/src/main/java/org/tron/core/capsule/BlockCapsule.java index b3af5f3117e..19ee67023e1 100755 --- a/chainbase/src/main/java/org/tron/core/capsule/BlockCapsule.java +++ b/chainbase/src/main/java/org/tron/core/capsule/BlockCapsule.java @@ -202,8 +202,7 @@ private Sha256Hash getRawHash() { public boolean validateSignature(DynamicPropertiesStore dynamicPropertiesStore, AccountStore accountStore) throws ValidateSignatureException { BlockHeader header = block.getBlockHeader(); - byte[] witnessAccountAddress = header.getRawData().getWitnessAddress() - .toByteArray(); + byte[] witnessAccountAddress = header.getRawData().getWitnessAddress().toByteArray(); byte[] witnessPermissionAddress; if (dynamicPropertiesStore.getAllowMultiSign() != 1) { @@ -265,12 +264,10 @@ private boolean validatePQSignature(DynamicPropertiesStore dynamicPropertiesStor */ PQScheme scheme = pqAuthSig.getScheme(); if (!PQSchemeRegistry.contains(scheme)) { - throw new ValidateSignatureException( - "pq_auth_sig scheme " + scheme + " is not registered"); + throw new ValidateSignatureException("pq_auth_sig scheme " + scheme + " is not registered"); } if (!dynamicPropertiesStore.isPqSchemeAllowed(scheme)) { - throw new ValidateSignatureException( - "pq_auth_sig scheme " + scheme + " is not activated"); + throw new ValidateSignatureException("pq_auth_sig scheme " + scheme + " is not activated"); } byte[] publicKey = pqAuthSig.getPublicKey().toByteArray(); diff --git a/chainbase/src/main/java/org/tron/core/capsule/TransactionCapsule.java b/chainbase/src/main/java/org/tron/core/capsule/TransactionCapsule.java index 98d9693decc..0c94768d064 100755 --- a/chainbase/src/main/java/org/tron/core/capsule/TransactionCapsule.java +++ b/chainbase/src/main/java/org/tron/core/capsule/TransactionCapsule.java @@ -679,8 +679,7 @@ public boolean validatePubSignature(AccountStore accountStore, "pq_auth_sig not allowed: no post-quantum scheme is activated"); } - if (signatureCount == 0 - || this.transaction.getRawData().getContractCount() <= 0) { + if (signatureCount == 0 || this.transaction.getRawData().getContractCount() <= 0) { throw new ValidateSignatureException("miss sig or contract"); } if (signatureCount > dynamicPropertiesStore.getTotalSignNum()) { @@ -762,8 +761,7 @@ public static long validatePQSignatureGetWeight(Transaction transaction, Permiss byte[] derivedAddr = PQSchemeRegistry.computeAddress(scheme, pk); ByteString addrBs = ByteString.copyFrom(derivedAddr); if (!signedAddresses.add(addrBs)) { - throw new PermissionException( - encode58Check(derivedAddr) + " has signed twice!"); + throw new PermissionException(encode58Check(derivedAddr) + " has signed twice!"); } Key matched = null; for (Key k : permission.getKeysList()) { diff --git a/chainbase/src/main/java/org/tron/core/store/DynamicPropertiesStore.java b/chainbase/src/main/java/org/tron/core/store/DynamicPropertiesStore.java index de9f551cad0..0b3f2841f21 100644 --- a/chainbase/src/main/java/org/tron/core/store/DynamicPropertiesStore.java +++ b/chainbase/src/main/java/org/tron/core/store/DynamicPropertiesStore.java @@ -3144,10 +3144,8 @@ public boolean isPqSchemeAllowed(PQScheme scheme) { return false; } switch (scheme) { - case FN_DSA_512: - return allowFnDsa512(); - case ML_DSA_44: - return allowMlDsa44(); + case FN_DSA_512: return allowFnDsa512(); + case ML_DSA_44: return allowMlDsa44(); default: if (PQSchemeRegistry.contains(scheme)) { throw new IllegalStateException( diff --git a/consensus/src/main/java/org/tron/consensus/dpos/DposService.java b/consensus/src/main/java/org/tron/consensus/dpos/DposService.java index 56f029b6dd6..295cedcdad7 100644 --- a/consensus/src/main/java/org/tron/consensus/dpos/DposService.java +++ b/consensus/src/main/java/org/tron/consensus/dpos/DposService.java @@ -77,8 +77,7 @@ public void start(Param param) { this.blockHandle = param.getBlockHandle(); this.genesisBlock = param.getGenesisBlock(); this.genesisBlockTime = Long.parseLong(param.getGenesisBlock().getTimestamp()); - param.getMiners().forEach(miner -> - miners.put(miner.getEffectiveWitnessAddress(), miner)); + param.getMiners().forEach(miner -> miners.put(miner.getEffectiveWitnessAddress(), miner)); dposTask.setDposService(this); dposSlot.setDposService(this); diff --git a/crypto/src/main/java/org/tron/common/crypto/pqc/FNDSA512.java b/crypto/src/main/java/org/tron/common/crypto/pqc/FNDSA512.java index dea5fa5b96e..d54b7a8145b 100644 --- a/crypto/src/main/java/org/tron/common/crypto/pqc/FNDSA512.java +++ b/crypto/src/main/java/org/tron/common/crypto/pqc/FNDSA512.java @@ -89,7 +89,9 @@ public final class FNDSA512 implements PQSignature { * retries on honest input is astronomically small. */ private static final int SIGN_RETRY_BUDGET = 16; - /** Falcon keygen seeds an internal SHAKE256 from 48 bytes of randomness. */ + /** + * Falcon keygen seeds an internal SHAKE256 from 48 bytes of randomness. + */ public static final int SEED_LENGTH = 48; private static final FalconParameters PARAMS = FalconParameters.falcon_512; @@ -115,12 +117,10 @@ public FNDSA512(byte[] seed) { public FNDSA512(byte[] privateKey, byte[] publicKey) { if (privateKey == null || privateKey.length != PRIVATE_KEY_LENGTH) { - throw new IllegalArgumentException( - "FN-DSA private key length must be " + PRIVATE_KEY_LENGTH); + throw new IllegalArgumentException("FN-DSA private key length must be " + PRIVATE_KEY_LENGTH); } if (publicKey == null || publicKey.length != PUBLIC_KEY_LENGTH) { - throw new IllegalArgumentException( - "FN-DSA public key length must be " + PUBLIC_KEY_LENGTH); + throw new IllegalArgumentException("FN-DSA public key length must be " + PUBLIC_KEY_LENGTH); } requireConsistent(privateKey, publicKey); this.privateKey = privateKey.clone(); @@ -137,9 +137,8 @@ public FNDSA512(byte[] privateKey, byte[] publicKey) { public static FNDSA512 fromPrivateKeyWithPublicKey(byte[] extendedPrivateKey) { if (extendedPrivateKey == null || extendedPrivateKey.length != PRIVATE_KEY_WITH_PUBLIC_KEY_LENGTH) { - throw new IllegalArgumentException( - "FN-DSA extended private key length must be " - + PRIVATE_KEY_WITH_PUBLIC_KEY_LENGTH); + throw new IllegalArgumentException("FN-DSA extended private key length must be " + + PRIVATE_KEY_WITH_PUBLIC_KEY_LENGTH); } byte[] sk = new byte[PRIVATE_KEY_LENGTH]; byte[] pk = new byte[PUBLIC_KEY_LENGTH]; @@ -163,7 +162,9 @@ public int getPublicKeyLength() { return PUBLIC_KEY_LENGTH; } - /** Returns the canonical signature length upper bound (signatures are variable-length). */ + /** + * Returns the canonical signature length upper bound (signatures are variable-length). + */ @Override public int getSignatureLength() { return SIGNATURE_MAX_LENGTH; @@ -219,15 +220,13 @@ public boolean verify(byte[] message, byte[] signature) { public static boolean verify(byte[] publicKey, byte[] message, byte[] signature) { if (publicKey == null || publicKey.length != PUBLIC_KEY_LENGTH) { - throw new IllegalArgumentException( - "FN-DSA public key length must be " + PUBLIC_KEY_LENGTH); + throw new IllegalArgumentException("FN-DSA public key length must be " + PUBLIC_KEY_LENGTH); } if (signature == null || signature.length < SIGNATURE_MIN_LENGTH || signature.length > SIGNATURE_MAX_LENGTH) { - throw new IllegalArgumentException( - "FN-DSA signature length must be " - + SIGNATURE_MIN_LENGTH + ".." + SIGNATURE_MAX_LENGTH); + throw new IllegalArgumentException("FN-DSA signature length must be " + + SIGNATURE_MIN_LENGTH + ".." + SIGNATURE_MAX_LENGTH); } if (message == null) { throw new IllegalArgumentException("message must not be null"); @@ -370,10 +369,9 @@ private static void requireConsistent(byte[] privateKey, byte[] publicKey) { private static void validatePrivateKeyBytes(byte[] privateKey) { if (privateKey == null || (privateKey.length != PRIVATE_KEY_LENGTH - && privateKey.length != PRIVATE_KEY_WITH_PUBLIC_KEY_LENGTH)) { - throw new IllegalArgumentException( - "FN-DSA private key length must be " + PRIVATE_KEY_LENGTH - + " or " + PRIVATE_KEY_WITH_PUBLIC_KEY_LENGTH); + && privateKey.length != PRIVATE_KEY_WITH_PUBLIC_KEY_LENGTH)) { + throw new IllegalArgumentException("FN-DSA private key length must be " + PRIVATE_KEY_LENGTH + + " or " + PRIVATE_KEY_WITH_PUBLIC_KEY_LENGTH); } } } diff --git a/crypto/src/main/java/org/tron/common/crypto/pqc/MLDSA44.java b/crypto/src/main/java/org/tron/common/crypto/pqc/MLDSA44.java index 7bb38d9e42d..c4b72b00cb8 100644 --- a/crypto/src/main/java/org/tron/common/crypto/pqc/MLDSA44.java +++ b/crypto/src/main/java/org/tron/common/crypto/pqc/MLDSA44.java @@ -71,12 +71,10 @@ public MLDSA44(byte[] seed) { public MLDSA44(byte[] privateKey, byte[] publicKey) { if (privateKey == null || privateKey.length != PRIVATE_KEY_LENGTH) { - throw new IllegalArgumentException( - "ML-DSA private key length must be " + PRIVATE_KEY_LENGTH); + throw new IllegalArgumentException("ML-DSA private key length must be " + PRIVATE_KEY_LENGTH); } if (publicKey == null || publicKey.length != PUBLIC_KEY_LENGTH) { - throw new IllegalArgumentException( - "ML-DSA public key length must be " + PUBLIC_KEY_LENGTH); + throw new IllegalArgumentException("ML-DSA public key length must be " + PUBLIC_KEY_LENGTH); } requireConsistent(privateKey, publicKey); this.privateKey = privateKey.clone(); @@ -131,12 +129,10 @@ public boolean verify(byte[] message, byte[] signature) { public static boolean verify(byte[] publicKey, byte[] message, byte[] signature) { if (publicKey == null || publicKey.length != PUBLIC_KEY_LENGTH) { - throw new IllegalArgumentException( - "ML-DSA public key length must be " + PUBLIC_KEY_LENGTH); + throw new IllegalArgumentException("ML-DSA public key length must be " + PUBLIC_KEY_LENGTH); } if (signature == null || signature.length != SIGNATURE_LENGTH) { - throw new IllegalArgumentException( - "ML-DSA signature length must be " + SIGNATURE_LENGTH); + throw new IllegalArgumentException("ML-DSA signature length must be " + SIGNATURE_LENGTH); } if (message == null) { throw new IllegalArgumentException("message must not be null"); @@ -154,8 +150,7 @@ public static boolean verify(byte[] publicKey, byte[] message, byte[] signature) public static byte[] sign(byte[] privateKey, byte[] message) { if (privateKey == null || privateKey.length != PRIVATE_KEY_LENGTH) { - throw new IllegalArgumentException( - "ML-DSA private key length must be " + PRIVATE_KEY_LENGTH); + throw new IllegalArgumentException("ML-DSA private key length must be " + PRIVATE_KEY_LENGTH); } if (message == null) { throw new IllegalArgumentException("message must not be null"); @@ -180,8 +175,7 @@ public static byte[] sign(byte[] privateKey, byte[] message) { */ public static byte[] derivePublicKey(byte[] privateKey) { if (privateKey == null || privateKey.length != PRIVATE_KEY_LENGTH) { - throw new IllegalArgumentException( - "ML-DSA private key length must be " + PRIVATE_KEY_LENGTH); + throw new IllegalArgumentException("ML-DSA private key length must be " + PRIVATE_KEY_LENGTH); } MLDSAPrivateKeyParameters sk = new MLDSAPrivateKeyParameters(PARAMS, privateKey); return sk.getPublicKey(); diff --git a/crypto/src/main/java/org/tron/common/crypto/pqc/PQSchemeRegistry.java b/crypto/src/main/java/org/tron/common/crypto/pqc/PQSchemeRegistry.java index f2b3f6e2d24..946f3a6ce76 100644 --- a/crypto/src/main/java/org/tron/common/crypto/pqc/PQSchemeRegistry.java +++ b/crypto/src/main/java/org/tron/common/crypto/pqc/PQSchemeRegistry.java @@ -30,8 +30,11 @@ */ public final class PQSchemeRegistry { - /** Stateless sign/verify/keygen dispatch bound to a single PQ scheme. */ + /** + * Stateless sign/verify/keygen dispatch bound to a single PQ scheme. + */ public interface SignatureOps { + byte[] sign(byte[] privateKey, byte[] message); boolean verify(byte[] publicKey, byte[] message, byte[] signature); @@ -59,13 +62,17 @@ default byte[] derivePublicKey(byte[] privateKey) { * its own canonical fingerprint. */ public interface FingerprintHash { - /** Returns the full digest of {@code data} (no truncation). */ + + /** + * Returns the full digest of {@code data} (no truncation). + */ byte[] digest(byte[] data); } private static final FingerprintHash KECCAK_256 = Hash::sha3; private static final class SchemeInfo { + final int privateKeyLength; final int publicKeyLength; final int signatureLength; @@ -239,7 +246,9 @@ public static boolean isValidSignatureLength(PQScheme scheme, int length) { return length >= info.signatureMinLength && length <= info.signatureLength; } - /** Lower bound of the per-scheme signature-length band. */ + /** + * Lower bound of the per-scheme signature-length band. + */ public static int getSignatureMinLength(PQScheme scheme) { return require(scheme).signatureMinLength; } @@ -265,8 +274,7 @@ public static PQSignature fromSeed(PQScheme scheme, byte[] seed) { * scheme; cryptographic consistency between the two halves is the caller's * responsibility. */ - public static PQSignature fromKeypair( - PQScheme scheme, byte[] privateKey, byte[] publicKey) { + public static PQSignature fromKeypair(PQScheme scheme, byte[] privateKey, byte[] publicKey) { return require(scheme).ops.fromKeypair(privateKey, publicKey); } @@ -322,13 +330,11 @@ private static SchemeInfo require(PQScheme scheme) { throw new IllegalArgumentException("scheme must not be null"); } if (scheme == PQScheme.UNKNOWN_PQ_SCHEME) { - throw new IllegalArgumentException( - "no PQSignature registered for scheme: " + scheme); + throw new IllegalArgumentException("no PQSignature registered for scheme: " + scheme); } SchemeInfo info = SCHEMES.get(scheme); if (info == null) { - throw new IllegalArgumentException( - "no PQSignature registered for scheme: " + scheme); + throw new IllegalArgumentException("no PQSignature registered for scheme: " + scheme); } return info; } diff --git a/framework/src/main/java/org/tron/core/config/args/Args.java b/framework/src/main/java/org/tron/core/config/args/Args.java index 49dbc75efec..cb7ff20181c 100644 --- a/framework/src/main/java/org/tron/core/config/args/Args.java +++ b/framework/src/main/java/org/tron/core/config/args/Args.java @@ -938,8 +938,7 @@ private static void initLocalWitnesses(Config config, CLIParameter cmd) { // the legacy override for the ECDSA side. LocalWitnesses pqWitnesses = null; if (hasPqKeys) { - pqWitnesses = buildPqWitnesses( - lwConfig.getPqEntries(), lwConfig.getPqAccountAddress()); + pqWitnesses = buildPqWitnesses(lwConfig.getPqEntries(), lwConfig.getPqAccountAddress()); } if (ecdsaWitnesses == null && pqWitnesses == null) { @@ -958,8 +957,7 @@ private static void initLocalWitnesses(Config config, CLIParameter cmd) { merged.initWitnessAccountAddress( ecdsaWitnesses.getWitnessAccountAddress(), PARAMETER.isECKeyCryptoEngine()); - merged.initPqWitnessAccountAddress( - pqWitnesses.getPqWitnessAccountAddress()); + merged.initPqWitnessAccountAddress(pqWitnesses.getPqWitnessAccountAddress()); localWitnesses = merged; } else if (ecdsaWitnesses != null) { localWitnesses = ecdsaWitnesses; diff --git a/framework/src/main/java/org/tron/core/db/Manager.java b/framework/src/main/java/org/tron/core/db/Manager.java index 233ff68b1a5..6037404e3ba 100644 --- a/framework/src/main/java/org/tron/core/db/Manager.java +++ b/framework/src/main/java/org/tron/core/db/Manager.java @@ -195,8 +195,7 @@ public class Manager { private static final int NO_BLOCK_WAITING_LOCK = 0; private final int shieldedTransInPendingMaxCounts = Args.getInstance().getShieldedTransInPendingMaxCounts(); - private final int pqTransInPendingMaxCounts = - Args.getInstance().getPqTransInPendingMaxCounts(); + private final int pqTransInPendingMaxCounts = Args.getInstance().getPqTransInPendingMaxCounts(); @Getter @Setter public boolean eventPluginLoaded = false; @@ -1583,8 +1582,7 @@ public TransactionInfo processTransaction(final TransactionCapsule trxCap, Block trace.exec(); trace.setResult(); logger.info("Retry result when push: {}, for tx id: {}, tx resultCode in receipt: {}.", - blockCap.hasWitnessSignature(), txId, - trace.getReceipt().getResult()); + blockCap.hasWitnessSignature(), txId, trace.getReceipt().getResult()); } if (blockCap.hasWitnessSignature()) { trace.check(); diff --git a/framework/src/main/java/org/tron/core/net/service/relay/RelayService.java b/framework/src/main/java/org/tron/core/net/service/relay/RelayService.java index 28ab299080b..394a15468ef 100644 --- a/framework/src/main/java/org/tron/core/net/service/relay/RelayService.java +++ b/framework/src/main/java/org/tron/core/net/service/relay/RelayService.java @@ -98,8 +98,7 @@ public void init() { "Fast forward config, isWitness: {}, keySize: {}, pqKeySize: {}, fastForwardNodes: {}", parameter.isWitness(), keySize, pqKeySize, fastForwardNodes.size()); - if (!parameter.isWitness() || (keySize == 0 && pqKeySize == 0) - || fastForwardNodes.isEmpty()) { + if (!parameter.isWitness() || (keySize == 0 && pqKeySize == 0) || fastForwardNodes.isEmpty()) { return; } @@ -125,8 +124,7 @@ public void close() { * Whether the channel's remote peer is in {@code node.fastForward.nodes}. */ public boolean isFastForwardPeer(Channel channel) { - if (fastForwardNodes.isEmpty() || channel == null - || channel.getInetAddress() == null) { + if (fastForwardNodes.isEmpty() || channel == null || channel.getInetAddress() == null) { return false; } for (InetSocketAddress ff : fastForwardNodes) { diff --git a/framework/src/test/java/org/tron/common/crypto/pqc/FNDSA512KatTest.java b/framework/src/test/java/org/tron/common/crypto/pqc/FNDSA512KatTest.java index e5fc7d13377..f3547d9fa10 100644 --- a/framework/src/test/java/org/tron/common/crypto/pqc/FNDSA512KatTest.java +++ b/framework/src/test/java/org/tron/common/crypto/pqc/FNDSA512KatTest.java @@ -105,10 +105,8 @@ private static String hex(byte[] b) { public void allVectorsDeriveExpectedPublicAndPrivateKey() { for (KatVector v : VECTORS) { FNDSA512 k = new FNDSA512(v.seed); - assertEquals(v.label + ": pk length", - FNDSA512.PUBLIC_KEY_LENGTH, k.getPublicKey().length); - assertEquals(v.label + ": sk length", - FNDSA512.PRIVATE_KEY_LENGTH, k.getPrivateKey().length); + assertEquals(v.label + ": pk length", FNDSA512.PUBLIC_KEY_LENGTH, k.getPublicKey().length); + assertEquals(v.label + ": sk length", FNDSA512.PRIVATE_KEY_LENGTH, k.getPrivateKey().length); assertEquals(v.label + ": pk SHA-256 must match KAT vector", v.pkSha256, hex(sha256(k.getPublicKey()))); assertEquals(v.label + ": sk SHA-256 must match KAT vector", @@ -121,13 +119,10 @@ public void allVectorsDeriveExpectedAddress() { for (KatVector v : VECTORS) { FNDSA512 k = new FNDSA512(v.seed); byte[] addr = k.getAddress(); - assertEquals(v.label + ": address length", - 21, addr.length); + assertEquals(v.label + ": address length", 21, addr.length); - byte[] viaRegistry = - PQSchemeRegistry.computeAddress(PQScheme.FN_DSA_512, k.getPublicKey()); - assertArrayEquals(v.label + ": registry dispatch must match instance", - addr, viaRegistry); + byte[] viaRegistry = PQSchemeRegistry.computeAddress(PQScheme.FN_DSA_512, k.getPublicKey()); + assertArrayEquals(v.label + ": registry dispatch must match instance", addr, viaRegistry); } } @@ -166,28 +161,20 @@ public void distinctSeedsProduceDistinctKeysAndAddresses() { skDigests.add(v.skSha256); addresses.add(hex(new FNDSA512(v.seed).getAddress())); } - assertEquals("KAT pk digests must be pairwise distinct", - VECTORS.length, pkDigests.size()); - assertEquals("KAT sk digests must be pairwise distinct", - VECTORS.length, skDigests.size()); - assertEquals("KAT addresses must be pairwise distinct", - VECTORS.length, addresses.size()); + assertEquals("KAT pk digests must be pairwise distinct", VECTORS.length, pkDigests.size()); + assertEquals("KAT sk digests must be pairwise distinct", VECTORS.length, skDigests.size()); + assertEquals("KAT addresses must be pairwise distinct", VECTORS.length, addresses.size()); } @Test public void signaturesFromKatKeysVerifyUnderTheirOwnPublicKey() { byte[][] messages = { - new byte[0], - "x".getBytes(), - "tron-fn-dsa-kat-message".getBytes(), - new byte[1024], - }; + new byte[0], "x".getBytes(), "tron-fn-dsa-kat-message".getBytes(), new byte[1024]}; for (KatVector v : VECTORS) { FNDSA512 k = new FNDSA512(v.seed); for (byte[] msg : messages) { byte[] sig = k.sign(msg); - assertTrue(v.label + ": signature must be non-empty", - sig.length > 0); + assertTrue(v.label + ": signature must be non-empty", sig.length > 0); assertTrue(v.label + ": signature must respect 752-byte upper bound", sig.length <= FNDSA512.SIGNATURE_MAX_LENGTH); assertTrue(v.label + ": signature must verify under its own pk", diff --git a/framework/src/test/java/org/tron/common/crypto/pqc/FNDSA512Test.java b/framework/src/test/java/org/tron/common/crypto/pqc/FNDSA512Test.java index 3047a4d5ae4..3d300cad339 100644 --- a/framework/src/test/java/org/tron/common/crypto/pqc/FNDSA512Test.java +++ b/framework/src/test/java/org/tron/common/crypto/pqc/FNDSA512Test.java @@ -300,10 +300,8 @@ public void computeAddressIs21Bytes() { public void registryDispatchMatchesDirectCalls() { byte[] msg = "registry-dispatch".getBytes(); byte[] sigDirect = FNDSA512.sign(sk.getEncoded(), msg); - assertTrue(PQSchemeRegistry.verify( - PQScheme.FN_DSA_512, pk.getH(), msg, sigDirect)); - byte[] sigViaRegistry = PQSchemeRegistry.sign( - PQScheme.FN_DSA_512, sk.getEncoded(), msg); + assertTrue(PQSchemeRegistry.verify(PQScheme.FN_DSA_512, pk.getH(), msg, sigDirect)); + byte[] sigViaRegistry = PQSchemeRegistry.sign(PQScheme.FN_DSA_512, sk.getEncoded(), msg); assertTrue(FNDSA512.verify(pk.getH(), msg, sigViaRegistry)); assertEquals(FNDSA512.PUBLIC_KEY_LENGTH, PQSchemeRegistry.getPublicKeyLength(PQScheme.FN_DSA_512)); @@ -378,8 +376,7 @@ public void keypairConstructorRejectsWrongPublicKeyLength() { @Test public void keypairConstructorRejectsMismatchedHalves() { - FalconPublicKeyParameters strangerPk = - (FalconPublicKeyParameters) freshKeyPair().getPublic(); + FalconPublicKeyParameters strangerPk = (FalconPublicKeyParameters) freshKeyPair().getPublic(); try { new FNDSA512(sk.getEncoded(), strangerPk.getH()); fail("mismatched private/public key pair must be rejected"); diff --git a/framework/src/test/java/org/tron/common/crypto/pqc/MLDSA44KatTest.java b/framework/src/test/java/org/tron/common/crypto/pqc/MLDSA44KatTest.java index 8d88546d0d1..629ce788196 100644 --- a/framework/src/test/java/org/tron/common/crypto/pqc/MLDSA44KatTest.java +++ b/framework/src/test/java/org/tron/common/crypto/pqc/MLDSA44KatTest.java @@ -105,10 +105,8 @@ private static String hex(byte[] b) { public void allVectorsDeriveExpectedPublicAndPrivateKey() { for (KatVector v : VECTORS) { MLDSA44 k = new MLDSA44(v.seed); - assertEquals(v.label + ": pk length", - MLDSA44.PUBLIC_KEY_LENGTH, k.getPublicKey().length); - assertEquals(v.label + ": sk length", - MLDSA44.PRIVATE_KEY_LENGTH, k.getPrivateKey().length); + assertEquals(v.label + ": pk length", MLDSA44.PUBLIC_KEY_LENGTH, k.getPublicKey().length); + assertEquals(v.label + ": sk length", MLDSA44.PRIVATE_KEY_LENGTH, k.getPrivateKey().length); assertEquals(v.label + ": pk SHA-256 must match KAT vector", v.pkSha256, hex(sha256(k.getPublicKey()))); assertEquals(v.label + ": sk SHA-256 must match KAT vector", @@ -121,13 +119,10 @@ public void allVectorsDeriveExpectedAddress() { for (KatVector v : VECTORS) { MLDSA44 k = new MLDSA44(v.seed); byte[] addr = k.getAddress(); - assertEquals(v.label + ": address length", - 21, addr.length); + assertEquals(v.label + ": address length", 21, addr.length); - byte[] viaRegistry = - PQSchemeRegistry.computeAddress(PQScheme.ML_DSA_44, k.getPublicKey()); - assertArrayEquals(v.label + ": registry dispatch must match instance", - addr, viaRegistry); + byte[] viaRegistry = PQSchemeRegistry.computeAddress(PQScheme.ML_DSA_44, k.getPublicKey()); + assertArrayEquals(v.label + ": registry dispatch must match instance", addr, viaRegistry); } } @@ -166,22 +161,15 @@ public void distinctSeedsProduceDistinctKeysAndAddresses() { skDigests.add(v.skSha256); addresses.add(hex(new MLDSA44(v.seed).getAddress())); } - assertEquals("KAT pk digests must be pairwise distinct", - VECTORS.length, pkDigests.size()); - assertEquals("KAT sk digests must be pairwise distinct", - VECTORS.length, skDigests.size()); - assertEquals("KAT addresses must be pairwise distinct", - VECTORS.length, addresses.size()); + assertEquals("KAT pk digests must be pairwise distinct", VECTORS.length, pkDigests.size()); + assertEquals("KAT sk digests must be pairwise distinct", VECTORS.length, skDigests.size()); + assertEquals("KAT addresses must be pairwise distinct", VECTORS.length, addresses.size()); } @Test public void signaturesFromKatKeysVerifyUnderTheirOwnPublicKey() { byte[][] messages = { - new byte[0], - "x".getBytes(), - "tron-ml-dsa-kat-message".getBytes(), - new byte[1024], - }; + new byte[0], "x".getBytes(), "tron-ml-dsa-kat-message".getBytes(), new byte[1024]}; for (KatVector v : VECTORS) { MLDSA44 k = new MLDSA44(v.seed); for (byte[] msg : messages) { diff --git a/framework/src/test/java/org/tron/common/crypto/pqc/MLDSA44Test.java b/framework/src/test/java/org/tron/common/crypto/pqc/MLDSA44Test.java index 0c579f1894e..0783deef75c 100644 --- a/framework/src/test/java/org/tron/common/crypto/pqc/MLDSA44Test.java +++ b/framework/src/test/java/org/tron/common/crypto/pqc/MLDSA44Test.java @@ -269,15 +269,12 @@ public void computeAddressIs21Bytes() { public void registryDispatchMatchesDirectCalls() { byte[] msg = "registry-dispatch".getBytes(); byte[] sigDirect = MLDSA44.sign(sk.getEncoded(), msg); - assertTrue(PQSchemeRegistry.verify( - PQScheme.ML_DSA_44, pk.getEncoded(), msg, sigDirect)); - byte[] sigViaRegistry = PQSchemeRegistry.sign( - PQScheme.ML_DSA_44, sk.getEncoded(), msg); + assertTrue(PQSchemeRegistry.verify(PQScheme.ML_DSA_44, pk.getEncoded(), msg, sigDirect)); + byte[] sigViaRegistry = PQSchemeRegistry.sign(PQScheme.ML_DSA_44, sk.getEncoded(), msg); assertTrue(MLDSA44.verify(pk.getEncoded(), msg, sigViaRegistry)); assertEquals(MLDSA44.PUBLIC_KEY_LENGTH, PQSchemeRegistry.getPublicKeyLength(PQScheme.ML_DSA_44)); - assertEquals(MLDSA44.SIGNATURE_LENGTH, - PQSchemeRegistry.getSignatureLength(PQScheme.ML_DSA_44)); + assertEquals(MLDSA44.SIGNATURE_LENGTH, PQSchemeRegistry.getSignatureLength(PQScheme.ML_DSA_44)); } @Test @@ -348,8 +345,7 @@ public void keypairConstructorRejectsWrongPublicKeyLength() { @Test public void keypairConstructorRejectsMismatchedHalves() { - MLDSAPublicKeyParameters strangerPk = - (MLDSAPublicKeyParameters) freshKeyPair().getPublic(); + MLDSAPublicKeyParameters strangerPk = (MLDSAPublicKeyParameters) freshKeyPair().getPublic(); try { new MLDSA44(sk.getEncoded(), strangerPk.getEncoded()); fail("mismatched private/public key pair must be rejected"); diff --git a/framework/src/test/java/org/tron/common/crypto/pqc/PQSchemeRegistryTest.java b/framework/src/test/java/org/tron/common/crypto/pqc/PQSchemeRegistryTest.java index 288c1a47efb..e894a22877a 100644 --- a/framework/src/test/java/org/tron/common/crypto/pqc/PQSchemeRegistryTest.java +++ b/framework/src/test/java/org/tron/common/crypto/pqc/PQSchemeRegistryTest.java @@ -56,10 +56,8 @@ public void isSeedDeterministicMatchesSchemeProperties() { @Test public void getSeedLengthReturnsRegisteredValue() { - assertEquals(FNDSA512.SEED_LENGTH, - PQSchemeRegistry.getSeedLength(PQScheme.FN_DSA_512)); - assertEquals(MLDSA44.SEED_LENGTH, - PQSchemeRegistry.getSeedLength(PQScheme.ML_DSA_44)); + assertEquals(FNDSA512.SEED_LENGTH, PQSchemeRegistry.getSeedLength(PQScheme.FN_DSA_512)); + assertEquals(MLDSA44.SEED_LENGTH, PQSchemeRegistry.getSeedLength(PQScheme.ML_DSA_44)); } @Test @@ -121,8 +119,7 @@ public void deriveHashRejectsNullPublicKey() { @Test public void deriveHashRejectsWrongLengthPublicKey() { try { - PQSchemeRegistry.deriveHash( - PQScheme.FN_DSA_512, new byte[FNDSA512.PUBLIC_KEY_LENGTH - 1]); + PQSchemeRegistry.deriveHash(PQScheme.FN_DSA_512, new byte[FNDSA512.PUBLIC_KEY_LENGTH - 1]); fail("short public key must be rejected"); } catch (IllegalArgumentException expected) { assertTrue(expected.getMessage().contains("public key length")); @@ -161,10 +158,8 @@ public void requireRejectsUnknownPqScheme() { @Test public void resolveIsPassThrough() { - assertEquals(PQScheme.FN_DSA_512, - PQSchemeRegistry.resolve(PQScheme.FN_DSA_512)); - assertEquals(PQScheme.UNKNOWN_PQ_SCHEME, - PQSchemeRegistry.resolve(PQScheme.UNKNOWN_PQ_SCHEME)); + assertEquals(PQScheme.FN_DSA_512, PQSchemeRegistry.resolve(PQScheme.FN_DSA_512)); + assertEquals(PQScheme.UNKNOWN_PQ_SCHEME, PQSchemeRegistry.resolve(PQScheme.UNKNOWN_PQ_SCHEME)); assertTrue(PQSchemeRegistry.resolve(null) == null); } diff --git a/framework/src/test/java/org/tron/common/crypto/pqc/program/PQClient.java b/framework/src/test/java/org/tron/common/crypto/pqc/program/PQClient.java index 4b7ce5b79e6..07f036ce76d 100644 --- a/framework/src/test/java/org/tron/common/crypto/pqc/program/PQClient.java +++ b/framework/src/test/java/org/tron/common/crypto/pqc/program/PQClient.java @@ -46,10 +46,8 @@ public class PQClient { private static final PQScheme PQ_SCHEME = PQScheme.valueOf( System.getProperty("pqc.scheme", PQWitnessNode.PQ_SCHEME.name())); - private static final String HOST = - System.getProperty("pqc.host", "localhost"); - private static final int PORT = - Integer.parseInt(System.getProperty("pqc.port", "50051")); + private static final String HOST = System.getProperty("pqc.host", "localhost"); + private static final int PORT = Integer.parseInt(System.getProperty("pqc.port", "50051")); /** Recipient of the demo transfer. */ private static final byte[] TO_ADDR = @@ -78,10 +76,7 @@ public static void main(String[] args) throws Exception { System.out.println("Signer address: " + ByteArray.toHexString(signerAddr)); // ── 2. Connect via gRPC ─────────────────────────────────────────────── - ManagedChannel channel = ManagedChannelBuilder - .forAddress(HOST, PORT) - .usePlaintext() - .build(); + ManagedChannel channel = ManagedChannelBuilder.forAddress(HOST, PORT).usePlaintext().build(); WalletBlockingStub stub = WalletGrpc.newBlockingStub(channel) .withDeadlineAfter(10, TimeUnit.SECONDS); diff --git a/framework/src/test/java/org/tron/common/crypto/pqc/program/PQFullNode.java b/framework/src/test/java/org/tron/common/crypto/pqc/program/PQFullNode.java index 64766c1c94c..9f4d24eac1b 100644 --- a/framework/src/test/java/org/tron/common/crypto/pqc/program/PQFullNode.java +++ b/framework/src/test/java/org/tron/common/crypto/pqc/program/PQFullNode.java @@ -49,8 +49,7 @@ public class PQFullNode { /** P2P listen port (different from PQWitnessNode). */ static final int P2P_PORT = 18889; - private static final String WITNESS_HOST = - System.getProperty("pqc.witness.host", "127.0.0.1"); + private static final String WITNESS_HOST = System.getProperty("pqc.witness.host", "127.0.0.1"); private static final int WITNESS_P2P_PORT = Integer.parseInt( System.getProperty("pqc.witness.p2p.port", String.valueOf(PQWitnessNode.P2P_PORT))); @@ -86,8 +85,7 @@ public static void main(String[] args) throws Exception { File dbDir = Files.createTempDirectory("pqc-fullnode-").toFile(); dbDir.deleteOnExit(); - Args.setParam(new String[]{"--output-directory", dbDir.getAbsolutePath()}, - "config-test.conf"); + Args.setParam(new String[]{"--output-directory", dbDir.getAbsolutePath()}, "config-test.conf"); Args.getInstance().setRpcEnable(true); Args.getInstance().setFullNodeHttpEnable(true); Args.getInstance().setFullNodeHttpPort(HTTP_PORT); diff --git a/framework/src/test/java/org/tron/common/crypto/pqc/program/PQTxSender.java b/framework/src/test/java/org/tron/common/crypto/pqc/program/PQTxSender.java index fd3d956f34b..0018c318c4d 100644 --- a/framework/src/test/java/org/tron/common/crypto/pqc/program/PQTxSender.java +++ b/framework/src/test/java/org/tron/common/crypto/pqc/program/PQTxSender.java @@ -73,10 +73,8 @@ */ public class PQTxSender { - private static final String HOST = - System.getProperty("pqc.host", "localhost"); - private static final int PORT = - Integer.parseInt(System.getProperty("pqc.port", "50051")); + private static final String HOST = System.getProperty("pqc.host", "localhost"); + private static final int PORT = Integer.parseInt(System.getProperty("pqc.port", "50051")); /** * Recipient of the demo transfer. @@ -180,10 +178,7 @@ public static void main(String[] args) throws Exception { System.out.println("ECDSA TRC20 TPS: " + ecdsaTrc20Tps); // ── 2. Connect via gRPC ─────────────────────────────────────────────── - ManagedChannel channel = ManagedChannelBuilder - .forAddress(HOST, PORT) - .usePlaintext() - .build(); + ManagedChannel channel = ManagedChannelBuilder.forAddress(HOST, PORT).usePlaintext().build(); WalletBlockingStub stub = WalletGrpc.newBlockingStub(channel); try { @@ -421,9 +416,7 @@ private static void sendEcdsaTrc20Transaction(WalletBlockingStub stub, byte[] ow private static Transaction signWithEcdsa(Transaction tx, ECKey ecdsaKey, byte[] txId) { ECDSASignature signature = ecdsaKey.sign(txId); - return tx.toBuilder() - .addSignature(ByteString.copyFrom(signature.toByteArray())) - .build(); + return tx.toBuilder().addSignature(ByteString.copyFrom(signature.toByteArray())).build(); } private static Transaction buildTransferTransaction(byte[] ownerAddr, byte[] blockHash, diff --git a/framework/src/test/java/org/tron/common/utils/LocalWitnessesTest.java b/framework/src/test/java/org/tron/common/utils/LocalWitnessesTest.java index 32f20453aee..4b53d4d4d27 100644 --- a/framework/src/test/java/org/tron/common/utils/LocalWitnessesTest.java +++ b/framework/src/test/java/org/tron/common/utils/LocalWitnessesTest.java @@ -37,8 +37,7 @@ public static void generateKeypairs() { @Test public void fnDsa512AcceptsValidKeypair() { LocalWitnesses lw = new LocalWitnesses(); - lw.setPqKeypairs(Collections.singletonList( - new PqKeypair(PQScheme.FN_DSA_512, priv, pub))); + lw.setPqKeypairs(Collections.singletonList(new PqKeypair(PQScheme.FN_DSA_512, priv, pub))); assertEquals(1, lw.getPqKeypairs().size()); assertEquals(PQScheme.FN_DSA_512, lw.getPqKeypairs().get(0).getScheme()); } diff --git a/framework/src/test/java/org/tron/core/BandwidthProcessorTest.java b/framework/src/test/java/org/tron/core/BandwidthProcessorTest.java index 6a8810fb93b..76baf67ab8d 100755 --- a/framework/src/test/java/org/tron/core/BandwidthProcessorTest.java +++ b/framework/src/test/java/org/tron/core/BandwidthProcessorTest.java @@ -916,17 +916,14 @@ public void pqPQAuthWitnessBytesSubtractedInCreateAccountCap() throws Exception TransactionCapsule baseTrx = new TransactionCapsule(contract, chainBaseManager.getAccountStore()); - Transaction withAuth = baseTrx.getInstance().toBuilder() - .addPqAuthSig(pqAuthSig) - .build(); + Transaction withAuth = baseTrx.getInstance().toBuilder().addPqAuthSig(pqAuthSig).build(); TransactionCapsule trx = new TransactionCapsule(withAuth); TransactionTrace trace = new TransactionTrace(trx, StoreFactory.getInstance(), new RuntimeImpl()); long cap = chainBaseManager.getDynamicPropertiesStore().getMaxCreateAccountTxSize(); long rawSize = trx.getInstance().toBuilder().clearRet().build().getSerializedSize(); - Assert.assertTrue("test precondition: raw tx must exceed cap with pq_auth_sig", - rawSize > cap); + Assert.assertTrue("test precondition: raw tx must exceed cap with pq_auth_sig", rawSize > cap); BandwidthProcessor processor = new BandwidthProcessor(chainBaseManager); try { @@ -978,9 +975,7 @@ public void pqPQAuthWitnessCountedInBandwidthUsage() throws Exception { TransactionCapsule baseTrx = new TransactionCapsule(contract, chainBaseManager.getAccountStore()); - Transaction withAuth = baseTrx.getInstance().toBuilder() - .addPqAuthSig(pqAuthSig) - .build(); + Transaction withAuth = baseTrx.getInstance().toBuilder().addPqAuthSig(pqAuthSig).build(); TransactionCapsule trx = new TransactionCapsule(withAuth); TransactionTrace trace = new TransactionTrace(trx, StoreFactory.getInstance(), new RuntimeImpl()); diff --git a/framework/src/test/java/org/tron/core/WalletTest.java b/framework/src/test/java/org/tron/core/WalletTest.java index 9dbab338b67..f441ac856c0 100644 --- a/framework/src/test/java/org/tron/core/WalletTest.java +++ b/framework/src/test/java/org/tron/core/WalletTest.java @@ -1481,8 +1481,7 @@ public void testApprovedListSigBound() { for (int i = 0; i < keysCount + 1; i++) { overLimit.addSignature(oneSig); } - GrpcAPI.TransactionApprovedList rejected = - wallet.getTransactionApprovedList(overLimit.build()); + GrpcAPI.TransactionApprovedList rejected = wallet.getTransactionApprovedList(overLimit.build()); assertEquals(GrpcAPI.TransactionApprovedList.Result.response_code.OTHER_ERROR, rejected.getResult().getCode()); assertEquals(0, rejected.getApprovedListCount()); @@ -1514,8 +1513,7 @@ public void testApprovedListSigTruncate() { assertEquals(65, validSig.size()); // Pad the 65-byte signature with trailing junk bytes. - ByteString oversized = validSig.concat( - ByteString.copyFrom(new byte[] {1, 2, 3, 4, 5})); + ByteString oversized = validSig.concat(ByteString.copyFrom(new byte[] {1, 2, 3, 4, 5})); assertEquals(70, oversized.size()); GrpcAPI.TransactionApprovedList reply = wallet.getTransactionApprovedList( @@ -1561,8 +1559,7 @@ public void testApprovedListTooManySigs() { overLimit.addSignature(oneSig); } - GrpcAPI.TransactionApprovedList rejected = - wallet.getTransactionApprovedList(overLimit.build()); + GrpcAPI.TransactionApprovedList rejected = wallet.getTransactionApprovedList(overLimit.build()); assertEquals(GrpcAPI.TransactionApprovedList.Result.response_code.OTHER_ERROR, rejected.getResult().getCode()); Assert.assertTrue(rejected.getResult().getMessage().contains("too many signatures")); diff --git a/framework/src/test/java/org/tron/core/actuator/utils/TransactionUtilTest.java b/framework/src/test/java/org/tron/core/actuator/utils/TransactionUtilTest.java index 7e743edf27f..6b96b1b2a12 100644 --- a/framework/src/test/java/org/tron/core/actuator/utils/TransactionUtilTest.java +++ b/framework/src/test/java/org/tron/core/actuator/utils/TransactionUtilTest.java @@ -491,8 +491,7 @@ public void testSignWeightSigTruncate() { assertEquals(65, validSig.size()); // Pad the 65-byte signature with trailing junk bytes. - ByteString oversized = validSig.concat( - ByteString.copyFrom(new byte[] {1, 2, 3, 4, 5})); + ByteString oversized = validSig.concat(ByteString.copyFrom(new byte[] {1, 2, 3, 4, 5})); assertEquals(70, oversized.size()); TransactionSignWeight reply = transactionUtil.getTransactionSignWeight( @@ -538,8 +537,7 @@ public void testSignWeightTooManySigs() { overLimit.addSignature(oneSig); } - TransactionSignWeight reply = transactionUtil.getTransactionSignWeight( - overLimit.build()); + TransactionSignWeight reply = transactionUtil.getTransactionSignWeight(overLimit.build()); assertEquals(TransactionSignWeight.Result.response_code.OTHER_ERROR, reply.getResult().getCode()); Assert.assertTrue(reply.getResult().getMessage().contains("too many signatures")); diff --git a/framework/src/test/java/org/tron/core/capsule/BlockCapsulePQTest.java b/framework/src/test/java/org/tron/core/capsule/BlockCapsulePQTest.java index 53543453017..78df2b8c7fb 100644 --- a/framework/src/test/java/org/tron/core/capsule/BlockCapsulePQTest.java +++ b/framework/src/test/java/org/tron/core/capsule/BlockCapsulePQTest.java @@ -42,8 +42,7 @@ public void setUp() { witnessKey = new ECKey(); witnessAddress = witnessKey.getAddress(); pqKeypair = new FNDSA512(); - pqAddress = PQSchemeRegistry.computeAddress( - PQScheme.FN_DSA_512, pqKeypair.getPublicKey()); + pqAddress = PQSchemeRegistry.computeAddress(PQScheme.FN_DSA_512, pqKeypair.getPublicKey()); } /** @@ -64,10 +63,7 @@ public void resetPqFlags() { * scenarios, pass {@link #witnessAddress}. */ private AccountCapsule buildWitnessAccount(byte[] keyAddress) { - Key kb = Key.newBuilder() - .setAddress(ByteString.copyFrom(keyAddress)) - .setWeight(1) - .build(); + Key kb = Key.newBuilder().setAddress(ByteString.copyFrom(keyAddress)).setWeight(1).build(); Permission witnessPerm = Permission.newBuilder() .setType(PermissionType.Witness) .setId(1) @@ -159,8 +155,7 @@ public void pqAuthSigBeforeActivationRejected() throws Exception { BlockCapsule block = buildUnsignedBlock(parentHash); byte[] digest = block.getRawHashBytes(); block.setPqAuthSig(buildPQAuthSig(signPQ(digest))); - block.validateSignature( - dbManager.getDynamicPropertiesStore(), dbManager.getAccountStore()); + block.validateSignature(dbManager.getDynamicPropertiesStore(), dbManager.getAccountStore()); } @Test(expected = ValidateSignatureException.class) @@ -181,8 +176,7 @@ public void bothLegacyAndPQAuthSigRejected() throws Exception { .build(); Block dual = signed.getInstance().toBuilder().setBlockHeader(dualHeader).build(); BlockCapsule block = new BlockCapsule(dual); - block.validateSignature( - dbManager.getDynamicPropertiesStore(), dbManager.getAccountStore()); + block.validateSignature(dbManager.getDynamicPropertiesStore(), dbManager.getAccountStore()); } @Test @@ -219,8 +213,7 @@ public void pqAuthSigWithDefaultSchemeRejected() throws Exception { .build(); Assert.assertEquals(PQScheme.UNKNOWN_PQ_SCHEME, defaultScheme.getScheme()); block.setPqAuthSig(defaultScheme); - block.validateSignature( - dbManager.getDynamicPropertiesStore(), dbManager.getAccountStore()); + block.validateSignature(dbManager.getDynamicPropertiesStore(), dbManager.getAccountStore()); } @Test @@ -253,8 +246,7 @@ public void signerNotInWitnessPermissionRejected() throws Exception { BlockCapsule block = buildUnsignedBlock(parentHash); byte[] digest = block.getRawHashBytes(); block.setPqAuthSig(buildPQAuthSig(signPQ(digest))); - block.validateSignature( - dbManager.getDynamicPropertiesStore(), dbManager.getAccountStore()); + block.validateSignature(dbManager.getDynamicPropertiesStore(), dbManager.getAccountStore()); } /** @@ -328,8 +320,7 @@ public void pqAuthSigWrongPublicKeyLengthRejected() throws Exception { .setPublicKey(ByteString.copyFrom(shortPk)) .setSignature(ByteString.copyFrom(signPQ(digest))) .build()); - block.validateSignature( - dbManager.getDynamicPropertiesStore(), dbManager.getAccountStore()); + block.validateSignature(dbManager.getDynamicPropertiesStore(), dbManager.getAccountStore()); } @Test(expected = ValidateSignatureException.class) @@ -344,8 +335,7 @@ public void pqAuthSigWrongSignatureLengthRejected() throws Exception { // A one-byte signature is far below the scheme's minimum length, so the // length guard rejects it before the cryptographic verify is attempted. block.setPqAuthSig(buildPQAuthSig(new byte[] {0x01})); - block.validateSignature( - dbManager.getDynamicPropertiesStore(), dbManager.getAccountStore()); + block.validateSignature(dbManager.getDynamicPropertiesStore(), dbManager.getAccountStore()); } @Test(expected = ValidateSignatureException.class) @@ -359,7 +349,6 @@ public void pqAuthSigWitnessAccountNotFoundRejected() throws Exception { BlockCapsule block = buildUnsignedBlock(parentHash); byte[] digest = block.getRawHashBytes(); block.setPqAuthSig(buildPQAuthSig(signPQ(digest))); - block.validateSignature( - dbManager.getDynamicPropertiesStore(), dbManager.getAccountStore()); + block.validateSignature(dbManager.getDynamicPropertiesStore(), dbManager.getAccountStore()); } } diff --git a/framework/src/test/java/org/tron/core/capsule/TransactionCapsuleTest.java b/framework/src/test/java/org/tron/core/capsule/TransactionCapsuleTest.java index 63fb05d8def..f715a310ff2 100644 --- a/framework/src/test/java/org/tron/core/capsule/TransactionCapsuleTest.java +++ b/framework/src/test/java/org/tron/core/capsule/TransactionCapsuleTest.java @@ -130,10 +130,8 @@ public void slowVerify() { // --------------------- FN-DSA pq_auth_sig verification (V2) --------------------- - private static final String PQ_OWNER_HEX = - "41abd4b9367799eaa3197fecb144eb71de1e049abc"; - private static final String PQ_TO_HEX = - "41548794500882809695a8a687866e76d4271a1abc"; + private static final String PQ_OWNER_HEX = "41abd4b9367799eaa3197fecb144eb71de1e049abc"; + private static final String PQ_TO_HEX = "41548794500882809695a8a687866e76d4271a1abc"; private Transaction buildTransferTx(String ownerHex, int permissionId) { TransferContract transfer = TransferContract.newBuilder() @@ -155,8 +153,7 @@ private Transaction buildTransferTx(String ownerHex, int permissionId) { * The signer address is derived from the public key by the scheme's * fingerprint hash (see {@link PQSchemeRegistry#computeAddress}). */ - private void putAccountWithPQPermission( - String ownerHex, byte[] pqPublicKey, PQScheme scheme) { + private void putAccountWithPQPermission(String ownerHex, byte[] pqPublicKey, PQScheme scheme) { byte[] addr = ByteArray.fromHexString(ownerHex); byte[] signerAddr = PQSchemeRegistry.computeAddress(scheme, pqPublicKey); Key pqKey = Key.newBuilder() @@ -187,8 +184,7 @@ public void pqAuthSigBeforeActivationRejected() { .build(); TransactionCapsule cap = new TransactionCapsule(tx); try { - cap.validatePubSignature(dbManager.getAccountStore(), - dbManager.getDynamicPropertiesStore()); + cap.validatePubSignature(dbManager.getAccountStore(), dbManager.getDynamicPropertiesStore()); Assert.fail("should reject pq_auth_sig before activation"); } catch (ValidateSignatureException e) { Assert.assertTrue(e.getMessage().contains("no post-quantum scheme is activated")); @@ -264,8 +260,7 @@ public void duplicateSignerRejected() throws Exception { TransactionCapsule cap = new TransactionCapsule(signed); try { - cap.validatePubSignature(dbManager.getAccountStore(), - dbManager.getDynamicPropertiesStore()); + cap.validatePubSignature(dbManager.getAccountStore(), dbManager.getDynamicPropertiesStore()); Assert.fail("duplicate signer should be rejected"); } catch (ValidateSignatureException e) { Assert.assertTrue(e.getMessage().contains("has signed twice")); @@ -293,8 +288,7 @@ public void tamperedPQAuthSigRejected() throws Exception { .build(); TransactionCapsule cap = new TransactionCapsule(signed); try { - cap.validatePubSignature(dbManager.getAccountStore(), - dbManager.getDynamicPropertiesStore()); + cap.validatePubSignature(dbManager.getAccountStore(), dbManager.getDynamicPropertiesStore()); Assert.fail("tampered signature should be rejected"); } catch (ValidateSignatureException e) { Assert.assertTrue(e.getMessage().contains("pq sig invalid")); @@ -323,8 +317,7 @@ public void signerNotInPermissionRejected() throws Exception { .build(); TransactionCapsule cap = new TransactionCapsule(signed); try { - cap.validatePubSignature(dbManager.getAccountStore(), - dbManager.getDynamicPropertiesStore()); + cap.validatePubSignature(dbManager.getAccountStore(), dbManager.getDynamicPropertiesStore()); Assert.fail("signer outside permission should be rejected"); } catch (ValidateSignatureException e) { Assert.assertTrue(e.getMessage().contains("not contained of permission")); @@ -357,10 +350,7 @@ private Transaction buildTrc20TransferTx(String ownerHex, int permissionId) { .setParameter(Any.pack(trigger)) .setPermissionId(permissionId) .build(); - raw rawData = raw.newBuilder() - .addContract(c) - .setFeeLimit(150_000_000L) - .build(); + raw rawData = raw.newBuilder().addContract(c).setFeeLimit(150_000_000L).build(); return Transaction.newBuilder().setRawData(rawData).build(); } @@ -468,8 +458,7 @@ public void pqAuthSigWrongPublicKeyLengthRejected() throws Exception { .build(); TransactionCapsule cap = new TransactionCapsule(signed); try { - cap.validatePubSignature(dbManager.getAccountStore(), - dbManager.getDynamicPropertiesStore()); + cap.validatePubSignature(dbManager.getAccountStore(), dbManager.getDynamicPropertiesStore()); Assert.fail("wrong public key length must be rejected"); } catch (ValidateSignatureException e) { Assert.assertTrue(e.getMessage().contains("public key or signature length mismatch")); @@ -494,8 +483,7 @@ public void pqAuthSigWrongSignatureLengthRejected() throws Exception { .build(); TransactionCapsule cap = new TransactionCapsule(signed); try { - cap.validatePubSignature(dbManager.getAccountStore(), - dbManager.getDynamicPropertiesStore()); + cap.validatePubSignature(dbManager.getAccountStore(), dbManager.getDynamicPropertiesStore()); Assert.fail("wrong signature length must be rejected"); } catch (ValidateSignatureException e) { Assert.assertTrue(e.getMessage().contains("public key or signature length mismatch")); @@ -523,8 +511,7 @@ public void pqAuthSigUnsupportedSchemeRejected() throws Exception { .build(); TransactionCapsule cap = new TransactionCapsule(signed); try { - cap.validatePubSignature(dbManager.getAccountStore(), - dbManager.getDynamicPropertiesStore()); + cap.validatePubSignature(dbManager.getAccountStore(), dbManager.getDynamicPropertiesStore()); Assert.fail("unsupported scheme must be rejected"); } catch (ValidateSignatureException e) { Assert.assertTrue(e.getMessage().contains("unsupported pq scheme")); @@ -536,8 +523,7 @@ public void validatePubSignatureRejectsMissingSig() { Transaction tx = buildTransferTx(PQ_OWNER_HEX, 0); TransactionCapsule cap = new TransactionCapsule(tx); try { - cap.validatePubSignature(dbManager.getAccountStore(), - dbManager.getDynamicPropertiesStore()); + cap.validatePubSignature(dbManager.getAccountStore(), dbManager.getDynamicPropertiesStore()); Assert.fail("transaction with no signatures must be rejected"); } catch (ValidateSignatureException e) { Assert.assertTrue(e.getMessage().contains("miss sig")); @@ -562,8 +548,7 @@ public void validatePubSignatureRejectsMissingContract() throws Exception { .build(); TransactionCapsule cap = new TransactionCapsule(tx); try { - cap.validatePubSignature(dbManager.getAccountStore(), - dbManager.getDynamicPropertiesStore()); + cap.validatePubSignature(dbManager.getAccountStore(), dbManager.getDynamicPropertiesStore()); Assert.fail("transaction with no contracts must be rejected"); } catch (ValidateSignatureException e) { Assert.assertTrue(e.getMessage().contains("miss sig or contract")); @@ -630,8 +615,7 @@ public void fnDsaPQAuthSigRejectedWhenNotActivated() throws Exception { .build(); TransactionCapsule cap = new TransactionCapsule(signed); try { - cap.validatePubSignature(dbManager.getAccountStore(), - dbManager.getDynamicPropertiesStore()); + cap.validatePubSignature(dbManager.getAccountStore(), dbManager.getDynamicPropertiesStore()); Assert.fail("FN-DSA must be rejected when ALLOW_FN_DSA_512 is 0"); } catch (ValidateSignatureException expected) { Assert.assertTrue(expected.getMessage().contains("no post-quantum scheme is activated")); @@ -646,9 +630,7 @@ public void toStringRendersSignedTransferContract() { Transaction tx = buildTransferTx(PQ_OWNER_HEX, 0); ECKey key = new ECKey(); byte[] sig = key.sign(txId(tx)).toByteArray(); - Transaction signed = tx.toBuilder() - .addSignature(ByteString.copyFrom(sig)) - .build(); + Transaction signed = tx.toBuilder().addSignature(ByteString.copyFrom(sig)).build(); String rendered = new TransactionCapsule(signed).toString(); Assert.assertTrue(rendered.contains("contract list:{")); @@ -659,9 +641,7 @@ public void toStringRendersSignedTransferContract() { @Test public void toStringRendersEmptyContractList() { - Transaction empty = Transaction.newBuilder() - .setRawData(raw.newBuilder().build()) - .build(); + Transaction empty = Transaction.newBuilder().setRawData(raw.newBuilder().build()).build(); String rendered = new TransactionCapsule(empty).toString(); Assert.assertTrue(rendered.contains("contract list is empty")); } diff --git a/framework/src/test/java/org/tron/core/config/args/ArgsPqConfigTest.java b/framework/src/test/java/org/tron/core/config/args/ArgsPqConfigTest.java index 209fda04273..844a0bda385 100644 --- a/framework/src/test/java/org/tron/core/config/args/ArgsPqConfigTest.java +++ b/framework/src/test/java/org/tron/core/config/args/ArgsPqConfigTest.java @@ -77,8 +77,7 @@ public void fnDsa512SeedRejected() throws IOException { TronError err = assertThrows(TronError.class, () -> Args.setParam(new String[]{"--witness"}, conf.toString())); assertEquals(TronError.ErrCode.WITNESS_INIT, err.getErrCode()); - assertTrue(err.getMessage(), - err.getMessage().contains("seed is not supported for FN_DSA_512")); + assertTrue(err.getMessage(), err.getMessage().contains("seed is not supported for FN_DSA_512")); } @Test @@ -97,8 +96,7 @@ public void keyAndSeedBothSetRejected() throws IOException { TronError err = assertThrows(TronError.class, () -> Args.setParam(new String[]{"--witness"}, conf.toString())); assertEquals(TronError.ErrCode.WITNESS_INIT, err.getErrCode()); - assertTrue(err.getMessage(), - err.getMessage().contains("exactly one of `key` or `seed`")); + assertTrue(err.getMessage(), err.getMessage().contains("exactly one of `key` or `seed`")); } @Test @@ -108,15 +106,13 @@ public void neitherKeyNorSeedRejected() throws IOException { TronError err = assertThrows(TronError.class, () -> Args.setParam(new String[]{"--witness"}, conf.toString())); assertEquals(TronError.ErrCode.WITNESS_INIT, err.getErrCode()); - assertTrue(err.getMessage(), - err.getMessage().contains("exactly one of `key` or `seed`")); + assertTrue(err.getMessage(), err.getMessage().contains("exactly one of `key` or `seed`")); } @Test public void mlDsa44SeedWrongLengthRejected() throws IOException { String shortSeed = Hex.toHexString(filled(MLDSA44.SEED_LENGTH - 1, (byte) 0x02)); - Path conf = writeConfWithEntry( - "{ scheme = \"ML_DSA_44\", seed = \"" + shortSeed + "\" }"); + Path conf = writeConfWithEntry("{ scheme = \"ML_DSA_44\", seed = \"" + shortSeed + "\" }"); TronError err = assertThrows(TronError.class, () -> Args.setParam(new String[]{"--witness"}, conf.toString())); @@ -143,8 +139,7 @@ public void mlDsa44PrivOnlyKeyDerivesPublicKey() throws IOException { @Test public void mlDsa44KeyWrongLengthRejected() throws IOException { String shortKey = Hex.toHexString(filled(MLDSA44.PRIVATE_KEY_LENGTH - 1, (byte) 0x0D)); - Path conf = writeConfWithEntry( - "{ scheme = \"ML_DSA_44\", key = \"" + shortKey + "\" }"); + Path conf = writeConfWithEntry("{ scheme = \"ML_DSA_44\", key = \"" + shortKey + "\" }"); TronError err = assertThrows(TronError.class, () -> Args.setParam(new String[]{"--witness"}, conf.toString())); @@ -155,14 +150,12 @@ public void mlDsa44KeyWrongLengthRejected() throws IOException { @Test public void fnDsa512PrivOnlyKeyRejected() throws IOException { String privOnly = Hex.toHexString(filled(FNDSA512.PRIVATE_KEY_LENGTH, (byte) 0x0E)); - Path conf = writeConfWithEntry( - "{ scheme = \"FN_DSA_512\", key = \"" + privOnly + "\" }"); + Path conf = writeConfWithEntry("{ scheme = \"FN_DSA_512\", key = \"" + privOnly + "\" }"); TronError err = assertThrows(TronError.class, () -> Args.setParam(new String[]{"--witness"}, conf.toString())); assertEquals(TronError.ErrCode.WITNESS_INIT, err.getErrCode()); - assertTrue(err.getMessage(), - err.getMessage().contains("extended priv‖pub")); + assertTrue(err.getMessage(), err.getMessage().contains("extended priv‖pub")); assertTrue(err.getMessage(), !err.getMessage().contains("priv-only")); } diff --git a/framework/src/test/java/org/tron/core/consensus/ParamPqMinerTest.java b/framework/src/test/java/org/tron/core/consensus/ParamPqMinerTest.java index 9841f8abe6f..4b071ce3b70 100644 --- a/framework/src/test/java/org/tron/core/consensus/ParamPqMinerTest.java +++ b/framework/src/test/java/org/tron/core/consensus/ParamPqMinerTest.java @@ -35,8 +35,7 @@ private static Miner newPqMiner(byte[] priv, byte[] pub) { } private static Miner newEcdsaMiner() { - return Param.getInstance().new Miner( - new byte[] {1, 2, 3}, ECDSA_KEY_ADDR, ECDSA_WITNESS_ADDR); + return Param.getInstance().new Miner(new byte[] {1, 2, 3}, ECDSA_KEY_ADDR, ECDSA_WITNESS_ADDR); } @Test diff --git a/framework/src/test/java/org/tron/core/net/services/RelayServiceTest.java b/framework/src/test/java/org/tron/core/net/services/RelayServiceTest.java index 375c2b3b409..81e287a8396 100644 --- a/framework/src/test/java/org/tron/core/net/services/RelayServiceTest.java +++ b/framework/src/test/java/org/tron/core/net/services/RelayServiceTest.java @@ -323,10 +323,7 @@ public void testPqHelloMessage() throws Exception { Assert.assertFalse(service.checkHelloMessage(helloMessage, channel)); // Neither legacy signature nor pq_auth_sig set → mutex rejects. - helloMessage.setHelloMessage(base.toBuilder() - .clearSignature() - .clearPqAuthSig() - .build()); + helloMessage.setHelloMessage(base.toBuilder().clearSignature().clearPqAuthSig().build()); Assert.assertFalse(service.checkHelloMessage(helloMessage, channel)); // PQ public key length mismatch → reject. diff --git a/framework/src/test/java/org/tron/core/services/ProposalServiceTest.java b/framework/src/test/java/org/tron/core/services/ProposalServiceTest.java index 86418687a95..04ebf1f6ab2 100644 --- a/framework/src/test/java/org/tron/core/services/ProposalServiceTest.java +++ b/framework/src/test/java/org/tron/core/services/ProposalServiceTest.java @@ -175,8 +175,7 @@ public void testProcessAllowMlDsa44() { dbManager.getDynamicPropertiesStore().saveAllowMlDsa44(0L); Assert.assertFalse(dbManager.getDynamicPropertiesStore().allowMlDsa44()); - Proposal proposal = Proposal.newBuilder() - .putParameters(ALLOW_ML_DSA_44.getCode(), 1L).build(); + Proposal proposal = Proposal.newBuilder().putParameters(ALLOW_ML_DSA_44.getCode(), 1L).build(); ProposalCapsule proposalCapsule = new ProposalCapsule(proposal); boolean result = ProposalService.process(dbManager, proposalCapsule); Assert.assertTrue(result); diff --git a/framework/src/test/java/org/tron/core/services/http/UtilTest.java b/framework/src/test/java/org/tron/core/services/http/UtilTest.java index 4f1fa84dfb1..a777aee60d3 100644 --- a/framework/src/test/java/org/tron/core/services/http/UtilTest.java +++ b/framework/src/test/java/org/tron/core/services/http/UtilTest.java @@ -214,20 +214,16 @@ public void roundtripPQAuthSigJson() throws Exception { .build(); String json = Util.printTransactionToJSON(original, false).toJSONString(); - Assert.assertTrue("JSON output should contain pq_auth_sig field", - json.contains("pq_auth_sig")); + Assert.assertTrue("JSON output should contain pq_auth_sig field", json.contains("pq_auth_sig")); Transaction.Builder rebuilt = Transaction.newBuilder(); JsonFormat.merge(json, rebuilt, false); Transaction decoded = rebuilt.build(); Assert.assertEquals(1, decoded.getPqAuthSigCount()); - Assert.assertEquals(pqAuthSig.getScheme(), - decoded.getPqAuthSig(0).getScheme()); - Assert.assertEquals(pqAuthSig.getPublicKey(), - decoded.getPqAuthSig(0).getPublicKey()); - Assert.assertEquals(pqAuthSig.getSignature(), - decoded.getPqAuthSig(0).getSignature()); + Assert.assertEquals(pqAuthSig.getScheme(), decoded.getPqAuthSig(0).getScheme()); + Assert.assertEquals(pqAuthSig.getPublicKey(), decoded.getPqAuthSig(0).getPublicKey()); + Assert.assertEquals(pqAuthSig.getSignature(), decoded.getPqAuthSig(0).getSignature()); } private Transaction buildTooManySigsTransaction() {