diff --git a/src/NewcoinAddress.cpp b/src/NewcoinAddress.cpp index 1f2745639c..7cf62467e3 100644 --- a/src/NewcoinAddress.cpp +++ b/src/NewcoinAddress.cpp @@ -303,6 +303,25 @@ void NewcoinAddress::setAccountPublic(const NewcoinAddress& generator, int seq) setAccountPublic(pubkey.GetPubKey()); } +bool NewcoinAddress::accountPublicVerify(const uint256& uHash, const std::vector& vucSig) const +{ + CKey ckPublic; + bool bVerified; + + if (!ckPublic.SetPubKey(getAccountPublic())) + { + // Bad private key. + std::cerr << "accountPublicVerify: Bad private key." << std::endl; + bVerified = false; + } + else + { + bVerified = ckPublic.Verify(uHash, vucSig); + } + + return bVerified; +} + // // AccountPrivate // diff --git a/src/NewcoinAddress.h b/src/NewcoinAddress.h index 46d90233da..6ea8fa1e2e 100644 --- a/src/NewcoinAddress.h +++ b/src/NewcoinAddress.h @@ -76,6 +76,8 @@ public: void setAccountPublic(const std::vector& vPublic); void setAccountPublic(const NewcoinAddress& generator, int seq); + bool accountPublicVerify(const uint256& uHash, const std::vector& vucSig) const; + // // Accounts Private //