mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-24 13:05:53 +00:00
Refactor RPC validation_seed.
This commit is contained in:
@@ -243,6 +243,20 @@ Json::Value RPCParser::parseValidationCreate(const Json::Value& jvParams)
|
|||||||
return jvRequest;
|
return jvRequest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// validation_seed [<pass_phrase>|<seed>|<seed_key>]
|
||||||
|
//
|
||||||
|
// NOTE: It is poor security to specify secret information on the command line. This information might be saved in the command
|
||||||
|
// shell history file (e.g. .bash_history) and it may be leaked via the process status command (i.e. ps).
|
||||||
|
Json::Value RPCParser::parseValidationSeed(const Json::Value& jvParams)
|
||||||
|
{
|
||||||
|
Json::Value jvRequest;
|
||||||
|
|
||||||
|
if (jvParams.size())
|
||||||
|
jvRequest["secret"] = jvParams[0u].asString();
|
||||||
|
|
||||||
|
return jvRequest;
|
||||||
|
}
|
||||||
|
|
||||||
// wallet_accounts <seed>
|
// wallet_accounts <seed>
|
||||||
Json::Value RPCParser::parseWalletAccounts(const Json::Value& jvParams)
|
Json::Value RPCParser::parseWalletAccounts(const Json::Value& jvParams)
|
||||||
{
|
{
|
||||||
@@ -334,7 +348,7 @@ Json::Value RPCParser::parseCommand(std::string strMethod, Json::Value jvParams)
|
|||||||
{ "unl_score", &RPCParser::parseAsIs, 0, 0 },
|
{ "unl_score", &RPCParser::parseAsIs, 0, 0 },
|
||||||
|
|
||||||
{ "validation_create", &RPCParser::parseValidationCreate, 0, 1 },
|
{ "validation_create", &RPCParser::parseValidationCreate, 0, 1 },
|
||||||
// { "validation_seed", &RPCParser::doValidationSeed, 0, 1, false, false, optNone },
|
{ "validation_seed", &RPCParser::parseValidationSeed, 0, 1 },
|
||||||
|
|
||||||
{ "wallet_accounts", &RPCParser::parseWalletAccounts, 1, 1 },
|
{ "wallet_accounts", &RPCParser::parseWalletAccounts, 1, 1 },
|
||||||
{ "wallet_propose", &RPCParser::parseWalletPropose, 0, 1 },
|
{ "wallet_propose", &RPCParser::parseWalletPropose, 0, 1 },
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ protected:
|
|||||||
Json::Value parseUnlAdd(const Json::Value& jvParams);
|
Json::Value parseUnlAdd(const Json::Value& jvParams);
|
||||||
Json::Value parseUnlDelete(const Json::Value& jvParams);
|
Json::Value parseUnlDelete(const Json::Value& jvParams);
|
||||||
Json::Value parseValidationCreate(const Json::Value& jvParams);
|
Json::Value parseValidationCreate(const Json::Value& jvParams);
|
||||||
|
Json::Value parseValidationSeed(const Json::Value& jvParams);
|
||||||
Json::Value parseWalletAccounts(const Json::Value& jvParams);
|
Json::Value parseWalletAccounts(const Json::Value& jvParams);
|
||||||
Json::Value parseWalletPropose(const Json::Value& jvParams);
|
Json::Value parseWalletPropose(const Json::Value& jvParams);
|
||||||
Json::Value parseWalletSeed(const Json::Value& jvParams);
|
Json::Value parseWalletSeed(const Json::Value& jvParams);
|
||||||
|
|||||||
@@ -1262,14 +1262,13 @@ Json::Value RPCHandler::doValidationCreate(Json::Value jvParams) {
|
|||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
// validation_seed [<pass_phrase>|<seed>|<seed_key>]
|
// {
|
||||||
//
|
// secret: <string>
|
||||||
// NOTE: It is poor security to specify secret information on the command line. This information might be saved in the command
|
// }
|
||||||
// shell history file (e.g. .bash_history) and it may be leaked via the process status command (i.e. ps).
|
Json::Value RPCHandler::doValidationSeed(Json::Value jvRequest) {
|
||||||
Json::Value RPCHandler::doValidationSeed(Json::Value params) {
|
|
||||||
Json::Value obj(Json::objectValue);
|
Json::Value obj(Json::objectValue);
|
||||||
|
|
||||||
if (params.empty())
|
if (!jvRequest.isMember("secret"))
|
||||||
{
|
{
|
||||||
std::cerr << "Unset validation seed." << std::endl;
|
std::cerr << "Unset validation seed." << std::endl;
|
||||||
|
|
||||||
@@ -1277,16 +1276,18 @@ Json::Value RPCHandler::doValidationSeed(Json::Value params) {
|
|||||||
theConfig.VALIDATION_PUB.clear();
|
theConfig.VALIDATION_PUB.clear();
|
||||||
theConfig.VALIDATION_PRIV.clear();
|
theConfig.VALIDATION_PRIV.clear();
|
||||||
}
|
}
|
||||||
else if (!theConfig.VALIDATION_SEED.setSeedGeneric(params[0u].asString()))
|
else if (!theConfig.VALIDATION_SEED.setSeedGeneric(jvRequest["secret"].asString()))
|
||||||
{
|
{
|
||||||
theConfig.VALIDATION_PUB.clear();
|
theConfig.VALIDATION_PUB.clear();
|
||||||
theConfig.VALIDATION_PRIV.clear();
|
theConfig.VALIDATION_PRIV.clear();
|
||||||
|
|
||||||
return rpcError(rpcBAD_SEED);
|
return rpcError(rpcBAD_SEED);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
theConfig.VALIDATION_PUB = RippleAddress::createNodePublic(theConfig.VALIDATION_SEED);
|
theConfig.VALIDATION_PUB = RippleAddress::createNodePublic(theConfig.VALIDATION_SEED);
|
||||||
theConfig.VALIDATION_PRIV = RippleAddress::createNodePrivate(theConfig.VALIDATION_SEED);
|
theConfig.VALIDATION_PRIV = RippleAddress::createNodePrivate(theConfig.VALIDATION_SEED);
|
||||||
|
|
||||||
obj["validation_public_key"] = theConfig.VALIDATION_PUB.humanNodePublic();
|
obj["validation_public_key"] = theConfig.VALIDATION_PUB.humanNodePublic();
|
||||||
obj["validation_seed"] = theConfig.VALIDATION_SEED.humanSeed();
|
obj["validation_seed"] = theConfig.VALIDATION_SEED.humanSeed();
|
||||||
obj["validation_key"] = theConfig.VALIDATION_SEED.humanSeed1751();
|
obj["validation_key"] = theConfig.VALIDATION_SEED.humanSeed1751();
|
||||||
@@ -2217,7 +2218,7 @@ Json::Value RPCHandler::doCommand(Json::Value& jvParams, int iRole)
|
|||||||
{ "unl_score", &RPCHandler::doUnlScore, -1, -1, true, false, optNone },
|
{ "unl_score", &RPCHandler::doUnlScore, -1, -1, true, false, optNone },
|
||||||
|
|
||||||
{ "validation_create", &RPCHandler::doValidationCreate, -1, -1, false, false, optNone },
|
{ "validation_create", &RPCHandler::doValidationCreate, -1, -1, false, false, optNone },
|
||||||
{ "validation_seed", &RPCHandler::doValidationSeed, 0, 1, false, false, optNone },
|
{ "validation_seed", &RPCHandler::doValidationSeed, -1, -1, false, false, optNone },
|
||||||
|
|
||||||
{ "wallet_accounts", &RPCHandler::doWalletAccounts, -1, -1, false, false, optCurrent },
|
{ "wallet_accounts", &RPCHandler::doWalletAccounts, -1, -1, false, false, optCurrent },
|
||||||
{ "wallet_propose", &RPCHandler::doWalletPropose, -1, -1, false, false, optNone },
|
{ "wallet_propose", &RPCHandler::doWalletPropose, -1, -1, false, false, optNone },
|
||||||
|
|||||||
Reference in New Issue
Block a user