这篇教程C++ DecryptSecret函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中DecryptSecret函数的典型用法代码示例。如果您正苦于以下问题:C++ DecryptSecret函数的具体用法?C++ DecryptSecret怎么用?C++ DecryptSecret使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了DecryptSecret函数的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: LOCKbool CCryptoKeyStore::Unlock(const CKeyingMaterial& vMasterKeyIn){ { LOCK(cs_KeyStore); if (!SetCrypted()) return false; CryptedKeyMap::const_iterator mi = mapCryptedKeys.begin(); for (; mi != mapCryptedKeys.end(); ++mi) { const CPubKey &vchPubKey = (*mi).second.first; const std::vector<unsigned char> &vchCryptedSecret = (*mi).second.second; CKeyingMaterial vchSecret; if(!DecryptSecret(vMasterKeyIn, vchCryptedSecret, vchPubKey.GetHash(), vchSecret)) return false; if (vchSecret.size() != 32) return false; CKey key; key.Set(vchSecret.begin(), vchSecret.end(), vchPubKey.IsCompressed()); if (key.GetPubKey() == vchPubKey) break; return false; } vMasterKey = vMasterKeyIn; } NotifyStatusChanged(this); return true;}
开发者ID:BeOleg,项目名称:WACG,代码行数:28,
示例2: DecryptKeystatic bool DecryptKey(const CKeyingMaterial& vMasterKey, const std::vector<unsigned char>& vchCryptedSecret, const CPubKey& vchPubKey, CKey& key){ CKeyingMaterial vchSecret; if(!DecryptSecret(vMasterKey, vchCryptedSecret, vchPubKey.GetHash(), vchSecret)) return false; if (vchSecret.size() != 32) return false; key.Set(vchSecret.begin(), vchSecret.end(), vchPubKey.IsCompressed()); return key.VerifyPubKey(vchPubKey);}
开发者ID:2GOOD,项目名称:Ladybug-pupa,代码行数:12,
示例3: assertbool CAccountHD::Unlock(const CKeyingMaterial& vMasterKeyIn){ assert(sizeof(accountUUID) == WALLET_CRYPTO_IV_SIZE); CKeyingMaterial vchAccountKeyPrivEncoded; if (!DecryptSecret(vMasterKeyIn, accountKeyPrivEncrypted, std::vector<unsigned char>(accountUUID.begin(), accountUUID.end()), vchAccountKeyPrivEncoded)) return false; accountKeyPriv.Decode(vchAccountKeyPrivEncoded.data()); CKeyingMaterial vchPrimaryChainKeyPrivEncoded; if (!DecryptSecret(vMasterKeyIn, primaryChainKeyEncrypted, primaryChainKeyPub.pubkey.GetHash(), vchPrimaryChainKeyPrivEncoded)) return false; primaryChainKeyPriv.Decode(vchPrimaryChainKeyPrivEncoded.data()); CKeyingMaterial vchChangeChainKeyPrivEncoded; if (!DecryptSecret(vMasterKeyIn, changeChainKeyEncrypted, changeChainKeyPub.pubkey.GetHash(), vchChangeChainKeyPrivEncoded)) return false; changeChainKeyPriv.Decode(vchChangeChainKeyPrivEncoded.data()); return true;}
开发者ID:Gulden,项目名称:gulden-official,代码行数:21,
示例4: DecryptKeybool WalletUtilityDB::DecryptKey(const std::vector<unsigned char>& vchCryptedSecret, const CPubKey& vchPubKey, CKey& key){ CKeyingMaterial vchSecret; if(!DecryptSecret(vchCryptedSecret, vchPubKey.GetHash(), vchSecret)) return false; if (vchSecret.size() != 32) return false; key.Set(vchSecret.begin(), vchSecret.end(), vchPubKey.IsCompressed()); return true;}
开发者ID:terracoin,项目名称:terracoin,代码行数:12,
示例5: LOCKbool CCryptoKeyStore::Unlock(const CKeyingMaterial& vMasterKeyIn){ { LOCK(cs_KeyStore); if (!SetCrypted()) return false; bool keyPass = false; bool keyFail = false; CryptedKeyMap::const_iterator mi = mapCryptedKeys.begin(); for (; mi != mapCryptedKeys.end(); ++mi) { const CPubKey &vchPubKey = (*mi).second.first; const std::vector<unsigned char> &vchCryptedSecret = (*mi).second.second; CKeyingMaterial vchSecret; if(!DecryptSecret(vMasterKeyIn, vchCryptedSecret, vchPubKey.GetHash(), vchSecret)) { keyFail = true; break; } if (vchSecret.size() != 32) { keyFail = true; break; } CKey key; key.Set(vchSecret.begin(), vchSecret.end(), vchPubKey.IsCompressed()); if (key.GetPubKey() != vchPubKey) { keyFail = true; break; } keyPass = true; if (fDecryptionThoroughlyChecked) break; } if (keyPass && keyFail) { LogPrintf("The wallet is probably corrupted: Some keys decrypt but not all."); assert(false); } if (keyFail || !keyPass) return false; vMasterKey = vMasterKeyIn; fDecryptionThoroughlyChecked = true; } NotifyStatusChanged(this); return true;}
开发者ID:greencoin-dev,项目名称:dash,代码行数:49,
示例6: DecryptKey/* The old namecoind encrypted not the 32-byte secret, but the full 279-byte serialised keys. Thus, we need to handle both formats. This is done by the following utility routine: It decrypts a secret and initialises a CKey object from it. */static bool DecryptKey(const CKeyingMaterial& vMasterKey, const std::vector<unsigned char>& vchCryptedSecret, const CPubKey& vchPubKey, CKey& key){ CKeyingMaterial vchSecret; if(!DecryptSecret(vMasterKey, vchCryptedSecret, vchPubKey.GetHash(), vchSecret)) return false; //LogPrintf("%s : decrypted %u-byte key/n", __func__, vchSecret.size()); if (vchSecret.size() == 32) { key.Set(vchSecret.begin(), vchSecret.end(), vchPubKey.IsCompressed()); return true; } return key.SetPrivKey(vchSecret, vchPubKey.IsCompressed());}
开发者ID:domob1812,项目名称:namecore,代码行数:19,
示例7: DecryptSpendingKeystatic bool DecryptSpendingKey(const CKeyingMaterial& vMasterKey, const std::vector<unsigned char>& vchCryptedSecret, const libzcash::PaymentAddress& address, libzcash::SpendingKey& sk){ CKeyingMaterial vchSecret; if(!DecryptSecret(vMasterKey, vchCryptedSecret, address.GetHash(), vchSecret)) return false; if (vchSecret.size() != libzcash::SerializedSpendingKeySize) return false; CSecureDataStream ss(vchSecret, SER_NETWORK, PROTOCOL_VERSION); ss >> sk; return sk.address() == address;}
开发者ID:cryptofuture,项目名称:hda,代码行数:16,
示例8: LOCKbool CCryptoKeyStore::GetKey(const CKeyID &address, CKey& keyOut) const{ { LOCK(cs_KeyStore); if (!IsCrypted()) return CBasicKeyStore::GetKey(address, keyOut); CryptedKeyMap::const_iterator mi = mapCryptedKeys.find(address); if (mi != mapCryptedKeys.end()) { const CPubKey &vchPubKey = (*mi).second.first; const std::vector<unsigned char> &vchCryptedSecret = (*mi).second.second; CKeyingMaterial vchSecret; if (!DecryptSecret(vMasterKey, vchCryptedSecret, vchPubKey.GetHash(), vchSecret)) return false; if (vchSecret.size() != 32) return false; keyOut.Set(vchSecret.begin(), vchSecret.end(), vchPubKey.IsCompressed()); return true; } } return false;}
开发者ID:PEDPRESIDENT,项目名称:NARCANISUMSOURCE,代码行数:23,
示例9: LogPrintfbool CCryptoKeyStore::Unlock(const CKeyingMaterial& vMasterKeyIn){ if (fDebug) LogPrintf("CCryptoKeyStore::Unlock()/n"); { LOCK(cs_KeyStore); if (!SetCrypted()) return false; int nUnlocked = 0; CryptedKeyMap::const_iterator mi = mapCryptedKeys.begin(); for (; mi != mapCryptedKeys.end(); ++mi) { const CPubKey &vchPubKey = (*mi).second.first; const std::vector<unsigned char> &vchCryptedSecret = (*mi).second.second; CSecret vchSecret; if (vchCryptedSecret.size() < 1) // key was recieved from stealth/anon txn with wallet locked, will be expanded after this { if (fDebug) LogPrintf("Skipping unexpanded key %s./n", vchPubKey.GetHash().ToString().c_str()); continue; }; if (!DecryptSecret(vMasterKeyIn, vchCryptedSecret, vchPubKey.GetHash(), vchSecret)) { LogPrintf("DecryptSecret() failed./n"); return false; }; if (vchSecret.size() != 32) return false; CKey key; key.Set(vchSecret.begin(), vchSecret.end(), vchPubKey.IsCompressed()); if (key.GetPubKey() != vchPubKey) { LogPrintf("Unlock failed: PubKey mismatch %s./n", vchPubKey.GetHash().ToString().c_str()); return false; }; nUnlocked++; break; }; if (nUnlocked < 1) // at least 1 key must pass the test { if (mapCryptedKeys.size() > 0) { LogPrintf("Unlock failed: No keys unlocked./n"); return false; }; }; vMasterKey = vMasterKeyIn; } NotifyStatusChanged(this); return true;}
开发者ID:educoinfoundation,项目名称:educoin-foundation,代码行数:64,
注:本文中的DecryptSecret函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ DefSubclassProc函数代码示例 C++ Decoding_Error函数代码示例 |