From 0d76cea32428ec4902c3d9bfcee9bbf00c181aa3 Mon Sep 17 00:00:00 2001 From: 0xDEADFACE Date: Fri, 12 Feb 2016 06:51:52 -0800 Subject: [PATCH] Encryption isn't needed here. --- doc/MalleableKeysCryptedR.txt | 30 ------------------------------ src/rpcwallet.cpp | 22 +--------------------- 2 files changed, 1 insertions(+), 51 deletions(-) delete mode 100644 doc/MalleableKeysCryptedR.txt diff --git a/doc/MalleableKeysCryptedR.txt b/doc/MalleableKeysCryptedR.txt deleted file mode 100644 index 9631fec..0000000 --- a/doc/MalleableKeysCryptedR.txt +++ /dev/null @@ -1,30 +0,0 @@ -Generate key pairs: - -> newmalleablekey -{ -"PrivatePair" : "DgiohBCDx3N528wVLC3DZzAeAk3dnaSS7zt7dL3HBpNh4MAGk2xHRVxHQNNGg6eX3MmAV8bPLPMfRJ2m14wMjagpjpCsV33A", -"PublicPair" : "5GRZdncReLgGZL7pjFQCpWMLzRpb4FxfYEGdaQeMSRZdZZWFmDR7qSuQHNxXX1UcAkdPSGiqdTKWfnayCX2vJbf2SgfoqdvC5mP", -"PublicBytes" : "01210390db9818fc073642977989afb9e8e4c47adaf8d940a8a0562a0d7230bdbf8af1210326cf4bcaccb70d418dab3304d7b8eddf00c900ff8ce22eaa639214c40e937220" -} - -Create public key variant: - -> adjustmalleablepubkey 5GRZdncReLgGZL7pjFQCpWMLzRpb4FxfYEGdaQeMSRZdZZWFmDR7qSuQHNxXX1UcAkdPSGiqdTKWfnayCX2vJbf2SgfoqdvC5mP -{ -"R" : "020b2e43c4c5984d02c564a18f0efb64cb9d3617ff3154699d2ed4718d0512365d", -"Rcrypted" : "03ffdb5faf6c54db89e14b11b92f28dfda1f65e09001276cc38491b69b94e85b1c4ee0d6ff62db2aaa5669f884afcab7b6690ea3cc97c5b4a2eba8960bcbf089c53dfb92225b4dfde0658419acc56976477dac66343a6621dea05889badcc68b0ed019edde", -"PubkeyVariant" : "02f956d11ece637741bc96f441209dc36c78aa3f0320cc22433ae053a1d27a2a25", -"KeyVariantID" : "4NA1e7f5qD68ApK8vbaX7VVjfAitSLbyNu" -} - -Now, the both crypted and uncrypted R parameter should produce identical private keys: - -> adjustmalleablekey DgiohBCDx3N528wVLC3DZzAeAk3dnaSS7zt7dL3HBpNh4MAGk2xHRVxHQNNGg6eX3MmAV8bPLPMfRJ2m14wMjagpjpCsV33A 02f956d11ece637741bc96f441209dc36c78aa3f0320cc22433ae053a1d27a2a25 020b2e43c4c5984d02c564a18f0efb64cb9d3617ff3154699d2ed4718d0512365d -{ -"PrivateKey" : "MBhrGekLruK6GsNTvWq9gJDtJ7EAGH2Rixv81ZwqbbGBah1Cz5jV" -} - -> adjustmalleablekey DgiohBCDx3N528wVLC3DZzAeAk3dnaSS7zt7dL3HBpNh4MAGk2xHRVxHQNNGg6eX3MmAV8bPLPMfRJ2m14wMjagpjpCsV33A 02f956d11ece637741bc96f441209dc36c78aa3f0320cc22433ae053a1d27a2a25 03ffdb5faf6c54db89e14b11b92f28dfda1f65e09001276cc38491b69b94e85b1c4ee0d6ff62db2aaa5669f884afcab7b6690ea3cc97c5b4a2eba8960bcbf089c53dfb92225b4dfde0658419acc56976477dac66343a6621dea05889badcc68b0ed019edde -{ -"PrivateKey" : "MBhrGekLruK6GsNTvWq9gJDtJ7EAGH2Rixv81ZwqbbGBah1Cz5jV" -} diff --git a/src/rpcwallet.cpp b/src/rpcwallet.cpp index c1be536..c2b43c7 100644 --- a/src/rpcwallet.cpp +++ b/src/rpcwallet.cpp @@ -1894,23 +1894,7 @@ Value adjustmalleablekey(const Array& params, bool fHelp) CKey privKeyVariant; CPubKey vchPubKeyVariant = CPubKey(ParseHex(params[1].get_str())); - std::vector vchR = ParseHex(params[2].get_str()); - - CPubKey R; - if (vchR.size() == 33) - R = CPubKey(vchR); - else { - // R is encrypted - CSecret pvchSecretL, pvchSecretH; - - malleableKey.GetSecrets(pvchSecretL, pvchSecretH); - CKey key; - key.SetSecret(pvchSecretL); - - std::vector vchDecryptedR; - key.DecryptData(vchR, vchDecryptedR); - R = CPubKey(vchDecryptedR); - } + CPubKey R(ParseHex(params[2].get_str())); if (!malleableKey.CheckKeyVariant(R,vchPubKeyVariant, privKeyVariant)) { throw runtime_error("Unable to calculate the private key"); @@ -1944,12 +1928,8 @@ Value adjustmalleablepubkey(const Array& params, bool fHelp) CPubKey R, vchPubKeyVariant; malleablePubKey.GetVariant(R, vchPubKeyVariant); - std::vector encryptedR; - malleablePubKey.GetL().EncryptData(R.Raw(), encryptedR); - Object result; result.push_back(Pair("R", HexStr(R.Raw()))); - result.push_back(Pair("Rcrypted", HexStr(encryptedR))); result.push_back(Pair("PubkeyVariant", HexStr(vchPubKeyVariant.Raw()))); result.push_back(Pair("KeyVariantID", CBitcoinAddress(vchPubKeyVariant.GetID()).ToString())); -- 1.7.1