Skip to content

Commit ff5fb5c

Browse files
authored
Merge pull request #5135 from halibobo1205/feature/deprecated_api_v4.7.1.1
feat(api): remove insecure API
2 parents 4c44ca1 + 73ae489 commit ff5fb5c

24 files changed

+46
-1426
lines changed

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 & 202 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,13 @@
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;
2625
import org.tron.api.GrpcAPI.Address;
27-
import org.tron.api.GrpcAPI.AddressPrKeyPairMessage;
2826
import org.tron.api.GrpcAPI.AssetIssueList;
2927
import org.tron.api.GrpcAPI.BlockExtention;
3028
import org.tron.api.GrpcAPI.BlockLimit;
@@ -39,11 +37,6 @@
3937
import org.tron.api.GrpcAPI.DelegatedResourceList;
4038
import org.tron.api.GrpcAPI.DelegatedResourceMessage;
4139
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;
4740
import org.tron.api.GrpcAPI.EmptyMessage;
4841
import org.tron.api.GrpcAPI.EstimateEnergyMessage;
4942
import org.tron.api.GrpcAPI.ExchangeList;
@@ -85,13 +78,10 @@
8578
import org.tron.api.WalletGrpc.WalletImplBase;
8679
import org.tron.api.WalletSolidityGrpc.WalletSolidityImplBase;
8780
import org.tron.common.application.Service;
88-
import org.tron.common.crypto.SignInterface;
89-
import org.tron.common.crypto.SignUtils;
9081
import org.tron.common.parameter.CommonParameter;
9182
import org.tron.common.utils.ByteArray;
9283
import org.tron.common.utils.Sha256Hash;
9384
import org.tron.common.utils.StringUtil;
94-
import org.tron.common.utils.Utils;
9585
import org.tron.core.ChainBaseManager;
9686
import org.tron.core.Wallet;
9787
import org.tron.core.capsule.AccountCapsule;
@@ -130,7 +120,6 @@
130120
import org.tron.protos.Protocol.Transaction;
131121
import org.tron.protos.Protocol.Transaction.Contract.ContractType;
132122
import org.tron.protos.Protocol.TransactionInfo;
133-
import org.tron.protos.Protocol.TransactionSign;
134123
import org.tron.protos.contract.AccountContract.AccountCreateContract;
135124
import org.tron.protos.contract.AccountContract.AccountPermissionUpdateContract;
136125
import org.tron.protos.contract.AccountContract.AccountUpdateContract;
@@ -726,12 +715,6 @@ public void getTransactionInfoById(BytesMessage request,
726715
responseObserver.onCompleted();
727716
}
728717

729-
@Override
730-
public void generateAddress(EmptyMessage request,
731-
StreamObserver<GrpcAPI.AddressPrKeyPairMessage> responseObserver) {
732-
generateAddressCommon(request, responseObserver);
733-
}
734-
735718
@Override
736719
public void getRewardInfo(BytesMessage request,
737720
StreamObserver<NumberMessage> responseObserver) {
@@ -1145,55 +1128,6 @@ private void createTransactionExtention(Message request, ContractType contractTy
11451128
responseObserver.onCompleted();
11461129
}
11471130

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-
11971131
@Override
11981132
public void getTransactionSignWeight(Transaction req,
11991133
StreamObserver<TransactionSignWeight> responseObserver) {
@@ -1210,121 +1144,6 @@ public void getTransactionApprovedList(Transaction req,
12101144
responseObserver.onCompleted();
12111145
}
12121146

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-
13281147
@Override
13291148
public void broadcastTransaction(Transaction req,
13301149
StreamObserver<GrpcAPI.Return> responseObserver) {
@@ -2242,12 +2061,6 @@ public void getChainParameters(EmptyMessage request,
22422061
responseObserver.onCompleted();
22432062
}
22442063

2245-
@Override
2246-
public void generateAddress(EmptyMessage request,
2247-
StreamObserver<GrpcAPI.AddressPrKeyPairMessage> responseObserver) {
2248-
generateAddressCommon(request, responseObserver);
2249-
}
2250-
22512064
@Override
22522065
public void getTransactionInfoById(BytesMessage request,
22532066
StreamObserver<TransactionInfo> responseObserver) {
@@ -2906,21 +2719,6 @@ public void getStatsInfo(EmptyMessage request,
29062719
}
29072720
}
29082721

2909-
public void generateAddressCommon(EmptyMessage request,
2910-
StreamObserver<GrpcAPI.AddressPrKeyPairMessage> responseObserver) {
2911-
SignInterface cryptoEngine = SignUtils.getGeneratedRandomSign(Utils.getRandom(),
2912-
Args.getInstance().isECKeyCryptoEngine());
2913-
byte[] priKey = cryptoEngine.getPrivateKey();
2914-
byte[] address = cryptoEngine.getAddress();
2915-
String addressStr = StringUtil.encode58Check(address);
2916-
String priKeyStr = Hex.encodeHexString(priKey);
2917-
AddressPrKeyPairMessage.Builder builder = AddressPrKeyPairMessage.newBuilder();
2918-
builder.setAddress(addressStr);
2919-
builder.setPrivateKey(priKeyStr);
2920-
responseObserver.onNext(builder.build());
2921-
responseObserver.onCompleted();
2922-
}
2923-
29242722
public void getRewardInfoCommon(BytesMessage request,
29252723
StreamObserver<NumberMessage> responseObserver) {
29262724
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)