Skip to content

Commit 7bf49f7

Browse files
committed
feat(api): remove insecure API
1 parent e88bf90 commit 7bf49f7

24 files changed

Lines changed: 46 additions & 1429 deletions

actuator/src/main/java/org/tron/core/utils/TransactionUtil.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@
4949
import org.tron.protos.Protocol.Transaction;
5050
import org.tron.protos.Protocol.Transaction.Contract;
5151
import org.tron.protos.Protocol.Transaction.Result.contractResult;
52-
import org.tron.protos.Protocol.TransactionSign;
5352
import org.tron.protos.contract.SmartContractOuterClass.CreateSmartContract;
5453
import org.tron.protos.contract.SmartContractOuterClass.TriggerSmartContract;
5554
import org.tron.protos.Protocol.Transaction.Contract.ContractType;
@@ -184,21 +183,6 @@ public static String makeUpperCamelMethod(String originName) {
184183
.replace("_", "");
185184
}
186185

187-
public static TransactionCapsule getTransactionSign(TransactionSign transactionSign) {
188-
byte[] privateKey = transactionSign.getPrivateKey().toByteArray();
189-
TransactionCapsule trx = new TransactionCapsule(transactionSign.getTransaction());
190-
trx.sign(privateKey);
191-
return trx;
192-
}
193-
194-
public TransactionCapsule addSign(TransactionSign transactionSign)
195-
throws PermissionException, SignatureException, SignatureFormatException {
196-
byte[] privateKey = transactionSign.getPrivateKey().toByteArray();
197-
TransactionCapsule trx = new TransactionCapsule(transactionSign.getTransaction());
198-
trx.addSign(privateKey, chainBaseManager.getAccountStore());
199-
return trx;
200-
}
201-
202186
public TransactionSignWeight getTransactionSignWeight(Transaction trx) {
203187
TransactionSignWeight.Builder tswBuilder = TransactionSignWeight.newBuilder();
204188
TransactionExtention.Builder trxExBuilder = TransactionExtention.newBuilder();

framework/src/main/java/org/tron/core/Wallet.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -648,18 +648,6 @@ public TransactionApprovedList getTransactionApprovedList(Transaction trx) {
648648
return tswBuilder.build();
649649
}
650650

651-
public byte[] pass2Key(byte[] passPhrase) {
652-
return Sha256Hash.hash(CommonParameter
653-
.getInstance().isECKeyCryptoEngine(), passPhrase);
654-
}
655-
656-
public byte[] createAddress(byte[] passPhrase) {
657-
byte[] privateKey = pass2Key(passPhrase);
658-
SignInterface ecKey = SignUtils.fromPrivate(privateKey,
659-
Args.getInstance().isECKeyCryptoEngine());
660-
return ecKey.getAddress();
661-
}
662-
663651
public Block getNowBlock() {
664652
List<BlockCapsule> blockList = chainBaseManager.getBlockStore().getBlockByLatestNum(1);
665653
if (CollectionUtils.isEmpty(blockList)) {

framework/src/main/java/org/tron/core/services/RpcApiService.java

Lines changed: 0 additions & 205 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,12 @@
1616
import java.util.concurrent.TimeUnit;
1717
import lombok.Getter;
1818
import lombok.extern.slf4j.Slf4j;
19-
import org.apache.commons.codec.binary.Hex;
2019
import org.springframework.beans.factory.annotation.Autowired;
2120
import org.springframework.stereotype.Component;
2221
import org.tron.api.DatabaseGrpc.DatabaseImplBase;
2322
import org.tron.api.GrpcAPI;
2423
import org.tron.api.GrpcAPI.AccountNetMessage;
2524
import org.tron.api.GrpcAPI.AccountResourceMessage;
26-
import org.tron.api.GrpcAPI.Address;
27-
import org.tron.api.GrpcAPI.AddressPrKeyPairMessage;
2825
import org.tron.api.GrpcAPI.AssetIssueList;
2926
import org.tron.api.GrpcAPI.BlockExtention;
3027
import org.tron.api.GrpcAPI.BlockLimit;
@@ -39,11 +36,6 @@
3936
import org.tron.api.GrpcAPI.DelegatedResourceList;
4037
import org.tron.api.GrpcAPI.DelegatedResourceMessage;
4138
import org.tron.api.GrpcAPI.DiversifierMessage;
42-
import org.tron.api.GrpcAPI.EasyTransferAssetByPrivateMessage;
43-
import org.tron.api.GrpcAPI.EasyTransferAssetMessage;
44-
import org.tron.api.GrpcAPI.EasyTransferByPrivateMessage;
45-
import org.tron.api.GrpcAPI.EasyTransferMessage;
46-
import org.tron.api.GrpcAPI.EasyTransferResponse;
4739
import org.tron.api.GrpcAPI.EmptyMessage;
4840
import org.tron.api.GrpcAPI.EstimateEnergyMessage;
4941
import org.tron.api.GrpcAPI.ExchangeList;
@@ -52,7 +44,6 @@
5244
import org.tron.api.GrpcAPI.IncomingViewingKeyMessage;
5345
import org.tron.api.GrpcAPI.IvkDecryptTRC20Parameters;
5446
import org.tron.api.GrpcAPI.NfTRC20Parameters;
55-
import org.tron.api.GrpcAPI.Node;
5647
import org.tron.api.GrpcAPI.NodeList;
5748
import org.tron.api.GrpcAPI.NoteParameters;
5849
import org.tron.api.GrpcAPI.NumberMessage;
@@ -85,13 +76,10 @@
8576
import org.tron.api.WalletGrpc.WalletImplBase;
8677
import org.tron.api.WalletSolidityGrpc.WalletSolidityImplBase;
8778
import org.tron.common.application.Service;
88-
import org.tron.common.crypto.SignInterface;
89-
import org.tron.common.crypto.SignUtils;
9079
import org.tron.common.parameter.CommonParameter;
9180
import org.tron.common.utils.ByteArray;
9281
import org.tron.common.utils.Sha256Hash;
9382
import org.tron.common.utils.StringUtil;
94-
import org.tron.common.utils.Utils;
9583
import org.tron.core.ChainBaseManager;
9684
import org.tron.core.Wallet;
9785
import org.tron.core.capsule.AccountCapsule;
@@ -108,7 +96,6 @@
10896
import org.tron.core.exception.VMIllegalException;
10997
import org.tron.core.exception.ZksnarkException;
11098
import org.tron.core.metrics.MetricsApiService;
111-
import org.tron.core.net.TronNetService;
11299
import org.tron.core.services.filter.LiteFnQueryGrpcInterceptor;
113100
import org.tron.core.services.ratelimiter.RateLimiterInterceptor;
114101
import org.tron.core.services.ratelimiter.RpcApiAccessInterceptor;
@@ -130,7 +117,6 @@
130117
import org.tron.protos.Protocol.Transaction;
131118
import org.tron.protos.Protocol.Transaction.Contract.ContractType;
132119
import org.tron.protos.Protocol.TransactionInfo;
133-
import org.tron.protos.Protocol.TransactionSign;
134120
import org.tron.protos.contract.AccountContract.AccountCreateContract;
135121
import org.tron.protos.contract.AccountContract.AccountPermissionUpdateContract;
136122
import org.tron.protos.contract.AccountContract.AccountUpdateContract;
@@ -726,12 +712,6 @@ public void getTransactionInfoById(BytesMessage request,
726712
responseObserver.onCompleted();
727713
}
728714

729-
@Override
730-
public void generateAddress(EmptyMessage request,
731-
StreamObserver<GrpcAPI.AddressPrKeyPairMessage> responseObserver) {
732-
generateAddressCommon(request, responseObserver);
733-
}
734-
735715
@Override
736716
public void getRewardInfo(BytesMessage request,
737717
StreamObserver<NumberMessage> responseObserver) {
@@ -1145,55 +1125,6 @@ private void createTransactionExtention(Message request, ContractType contractTy
11451125
responseObserver.onCompleted();
11461126
}
11471127

1148-
1149-
@Override
1150-
public void getTransactionSign(TransactionSign req,
1151-
StreamObserver<Transaction> responseObserver) {
1152-
TransactionCapsule result = TransactionUtil.getTransactionSign(req);
1153-
responseObserver.onNext(result.getInstance());
1154-
responseObserver.onCompleted();
1155-
}
1156-
1157-
@Override
1158-
public void getTransactionSign2(TransactionSign req,
1159-
StreamObserver<TransactionExtention> responseObserver) {
1160-
TransactionExtention.Builder trxExtBuilder = TransactionExtention.newBuilder();
1161-
Return.Builder retBuilder = Return.newBuilder();
1162-
try {
1163-
TransactionCapsule trx = TransactionUtil.getTransactionSign(req);
1164-
trxExtBuilder.setTransaction(trx.getInstance());
1165-
trxExtBuilder.setTxid(trx.getTransactionId().getByteString());
1166-
retBuilder.setResult(true).setCode(response_code.SUCCESS);
1167-
} catch (Exception e) {
1168-
retBuilder.setResult(false).setCode(response_code.OTHER_ERROR)
1169-
.setMessage(ByteString.copyFromUtf8(e.getClass() + " : " + e.getMessage()));
1170-
logger.info(EXCEPTION_CAUGHT + e.getMessage());
1171-
}
1172-
trxExtBuilder.setResult(retBuilder);
1173-
responseObserver.onNext(trxExtBuilder.build());
1174-
responseObserver.onCompleted();
1175-
}
1176-
1177-
@Override
1178-
public void addSign(TransactionSign req,
1179-
StreamObserver<TransactionExtention> responseObserver) {
1180-
TransactionExtention.Builder trxExtBuilder = TransactionExtention.newBuilder();
1181-
Return.Builder retBuilder = Return.newBuilder();
1182-
try {
1183-
TransactionCapsule trx = transactionUtil.addSign(req);
1184-
trxExtBuilder.setTransaction(trx.getInstance());
1185-
trxExtBuilder.setTxid(trx.getTransactionId().getByteString());
1186-
retBuilder.setResult(true).setCode(response_code.SUCCESS);
1187-
} catch (Exception e) {
1188-
retBuilder.setResult(false).setCode(response_code.OTHER_ERROR)
1189-
.setMessage(ByteString.copyFromUtf8(e.getClass() + " : " + e.getMessage()));
1190-
logger.info(EXCEPTION_CAUGHT + e.getMessage());
1191-
}
1192-
trxExtBuilder.setResult(retBuilder);
1193-
responseObserver.onNext(trxExtBuilder.build());
1194-
responseObserver.onCompleted();
1195-
}
1196-
11971128
@Override
11981129
public void getTransactionSignWeight(Transaction req,
11991130
StreamObserver<TransactionSignWeight> responseObserver) {
@@ -1210,121 +1141,6 @@ public void getTransactionApprovedList(Transaction req,
12101141
responseObserver.onCompleted();
12111142
}
12121143

1213-
@Override
1214-
public void createAddress(BytesMessage req,
1215-
StreamObserver<BytesMessage> responseObserver) {
1216-
byte[] address = wallet.createAddress(req.getValue().toByteArray());
1217-
BytesMessage.Builder builder = BytesMessage.newBuilder();
1218-
builder.setValue(ByteString.copyFrom(address));
1219-
responseObserver.onNext(builder.build());
1220-
responseObserver.onCompleted();
1221-
}
1222-
1223-
private EasyTransferResponse easyTransfer(byte[] privateKey, ByteString toAddress,
1224-
long amount) {
1225-
TransactionCapsule transactionCapsule;
1226-
GrpcAPI.Return.Builder returnBuilder = GrpcAPI.Return.newBuilder();
1227-
EasyTransferResponse.Builder responseBuild = EasyTransferResponse.newBuilder();
1228-
try {
1229-
SignInterface cryptoEngine = SignUtils.fromPrivate(privateKey, Args.getInstance()
1230-
.isECKeyCryptoEngine());
1231-
byte[] owner = cryptoEngine.getAddress();
1232-
TransferContract.Builder builder = TransferContract.newBuilder();
1233-
builder.setOwnerAddress(ByteString.copyFrom(owner));
1234-
builder.setToAddress(toAddress);
1235-
builder.setAmount(amount);
1236-
transactionCapsule = createTransactionCapsule(builder.build(),
1237-
ContractType.TransferContract);
1238-
transactionCapsule.sign(privateKey);
1239-
GrpcAPI.Return result = wallet.broadcastTransaction(transactionCapsule.getInstance());
1240-
responseBuild.setTransaction(transactionCapsule.getInstance());
1241-
responseBuild.setTxid(transactionCapsule.getTransactionId().getByteString());
1242-
responseBuild.setResult(result);
1243-
} catch (ContractValidateException e) {
1244-
returnBuilder.setResult(false).setCode(response_code.CONTRACT_VALIDATE_ERROR)
1245-
.setMessage(ByteString.copyFromUtf8(e.getMessage()));
1246-
responseBuild.setResult(returnBuilder.build());
1247-
} catch (Exception e) {
1248-
returnBuilder.setResult(false).setCode(response_code.OTHER_ERROR)
1249-
.setMessage(ByteString.copyFromUtf8(e.getClass() + " : " + e.getMessage()));
1250-
responseBuild.setResult(returnBuilder.build());
1251-
}
1252-
1253-
return responseBuild.build();
1254-
}
1255-
1256-
@Override
1257-
public void easyTransfer(EasyTransferMessage req,
1258-
StreamObserver<EasyTransferResponse> responseObserver) {
1259-
byte[] privateKey = wallet.pass2Key(req.getPassPhrase().toByteArray());
1260-
EasyTransferResponse response = easyTransfer(privateKey, req.getToAddress(), req.getAmount());
1261-
responseObserver.onNext(response);
1262-
responseObserver.onCompleted();
1263-
}
1264-
1265-
@Override
1266-
public void easyTransferAsset(EasyTransferAssetMessage req,
1267-
StreamObserver<EasyTransferResponse> responseObserver) {
1268-
byte[] privateKey = wallet.pass2Key(req.getPassPhrase().toByteArray());
1269-
EasyTransferResponse response = easyTransferAsset(privateKey, req.getToAddress(),
1270-
req.getAssetId(), req.getAmount());
1271-
responseObserver.onNext(response);
1272-
responseObserver.onCompleted();
1273-
}
1274-
1275-
private EasyTransferResponse easyTransferAsset(byte[] privateKey, ByteString toAddress,
1276-
String assetId, long amount) {
1277-
TransactionCapsule transactionCapsule;
1278-
GrpcAPI.Return.Builder returnBuilder = GrpcAPI.Return.newBuilder();
1279-
EasyTransferResponse.Builder responseBuild = EasyTransferResponse.newBuilder();
1280-
try {
1281-
SignInterface cryptoEngine = SignUtils.fromPrivate(privateKey,
1282-
Args.getInstance().isECKeyCryptoEngine());
1283-
byte[] owner = cryptoEngine.getAddress();
1284-
TransferAssetContract.Builder builder = TransferAssetContract.newBuilder();
1285-
builder.setOwnerAddress(ByteString.copyFrom(owner));
1286-
builder.setToAddress(toAddress);
1287-
builder.setAssetName(ByteString.copyFrom(assetId.getBytes()));
1288-
builder.setAmount(amount);
1289-
transactionCapsule = createTransactionCapsule(builder.build(),
1290-
ContractType.TransferAssetContract);
1291-
transactionCapsule.sign(privateKey);
1292-
GrpcAPI.Return result = wallet.broadcastTransaction(transactionCapsule.getInstance());
1293-
responseBuild.setTransaction(transactionCapsule.getInstance());
1294-
responseBuild.setTxid(transactionCapsule.getTransactionId().getByteString());
1295-
responseBuild.setResult(result);
1296-
} catch (ContractValidateException e) {
1297-
returnBuilder.setResult(false).setCode(response_code.CONTRACT_VALIDATE_ERROR)
1298-
.setMessage(ByteString.copyFromUtf8(e.getMessage()));
1299-
responseBuild.setResult(returnBuilder.build());
1300-
} catch (Exception e) {
1301-
returnBuilder.setResult(false).setCode(response_code.OTHER_ERROR)
1302-
.setMessage(ByteString.copyFromUtf8(e.getClass() + " : " + e.getMessage()));
1303-
responseBuild.setResult(returnBuilder.build());
1304-
}
1305-
1306-
return responseBuild.build();
1307-
}
1308-
1309-
@Override
1310-
public void easyTransferByPrivate(EasyTransferByPrivateMessage req,
1311-
StreamObserver<EasyTransferResponse> responseObserver) {
1312-
byte[] privateKey = req.getPrivateKey().toByteArray();
1313-
EasyTransferResponse response = easyTransfer(privateKey, req.getToAddress(), req.getAmount());
1314-
responseObserver.onNext(response);
1315-
responseObserver.onCompleted();
1316-
}
1317-
1318-
@Override
1319-
public void easyTransferAssetByPrivate(EasyTransferAssetByPrivateMessage req,
1320-
StreamObserver<EasyTransferResponse> responseObserver) {
1321-
byte[] privateKey = req.getPrivateKey().toByteArray();
1322-
EasyTransferResponse response = easyTransferAsset(privateKey, req.getToAddress(),
1323-
req.getAssetId(), req.getAmount());
1324-
responseObserver.onNext(response);
1325-
responseObserver.onCompleted();
1326-
}
1327-
13281144
@Override
13291145
public void broadcastTransaction(Transaction req,
13301146
StreamObserver<GrpcAPI.Return> responseObserver) {
@@ -2235,12 +2051,6 @@ public void getChainParameters(EmptyMessage request,
22352051
responseObserver.onCompleted();
22362052
}
22372053

2238-
@Override
2239-
public void generateAddress(EmptyMessage request,
2240-
StreamObserver<GrpcAPI.AddressPrKeyPairMessage> responseObserver) {
2241-
generateAddressCommon(request, responseObserver);
2242-
}
2243-
22442054
@Override
22452055
public void getTransactionInfoById(BytesMessage request,
22462056
StreamObserver<TransactionInfo> responseObserver) {
@@ -2899,21 +2709,6 @@ public void getStatsInfo(EmptyMessage request,
28992709
}
29002710
}
29012711

2902-
public void generateAddressCommon(EmptyMessage request,
2903-
StreamObserver<GrpcAPI.AddressPrKeyPairMessage> responseObserver) {
2904-
SignInterface cryptoEngine = SignUtils.getGeneratedRandomSign(Utils.getRandom(),
2905-
Args.getInstance().isECKeyCryptoEngine());
2906-
byte[] priKey = cryptoEngine.getPrivateKey();
2907-
byte[] address = cryptoEngine.getAddress();
2908-
String addressStr = StringUtil.encode58Check(address);
2909-
String priKeyStr = Hex.encodeHexString(priKey);
2910-
AddressPrKeyPairMessage.Builder builder = AddressPrKeyPairMessage.newBuilder();
2911-
builder.setAddress(addressStr);
2912-
builder.setPrivateKey(priKeyStr);
2913-
responseObserver.onNext(builder.build());
2914-
responseObserver.onCompleted();
2915-
}
2916-
29172712
public void getRewardInfoCommon(BytesMessage request,
29182713
StreamObserver<NumberMessage> responseObserver) {
29192714
try {

framework/src/main/java/org/tron/core/services/http/AddTransactionSignServlet.java

Lines changed: 0 additions & 51 deletions
This file was deleted.

0 commit comments

Comments
 (0)