本文整理汇总了C++中Coin::verifyEndorsement方法的典型用法代码示例。如果您正苦于以下问题:C++ Coin::verifyEndorsement方法的具体用法?C++ Coin::verifyEndorsement怎么用?C++ Coin::verifyEndorsement使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Coin
的用法示例。
在下文中一共展示了Coin::verifyEndorsement方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CashException
vector<unsigned> Arbiter::sellerResolveI(const ResolutionPair &keyMessagePair){
// first, store the keys
keys = keyMessagePair.first;
// now, unwrap and check the buyMessage, then store everything
BuyMessage* buyMessage = keyMessagePair.second;
Coin coinPrime = buyMessage->getCoinPrime();
VECiphertext escrow = *buyMessage->getEscrow();
// want to store the contract as well (for stage II)
contract = *buyMessage->getContract();
// check the timeout to make sure it hasn't passed
if(contract.checkTimeout(timeoutTolerance)) {
endorsement = verifiableDecrypter->decrypt(escrow.getCiphertext(),
saveString(contract), hashAlg);
// make sure the endorsement on the coin is valid
if(coinPrime.verifyEndorsement(endorsement)){
// construct verifiers based on the data in the contract and
// return a set of challenges
hash_t ptHash = contract.getPTHashB();
hash_t ctHash = contract.getCTHashB();
ptVerifier = shared_ptr<MerkleVerifier>(new MerkleVerifier(ptHash,
contract.getNumPTHashBlocksB(),
MerkleContract(ptHash.key,ptHash.alg)));
ctVerifier = shared_ptr<MerkleVerifier>(new MerkleVerifier(ctHash,
contract.getNumCTHashBlocksB(),
MerkleContract(ctHash.key,ctHash.alg)));
return ptVerifier->getChallenges();
} else {
throw CashException(CashException::CE_FE_ERROR,
"[Arbiter::sellerResolveI] invalid endorsement");
}
} else {
throw CashException(CashException::CE_FE_ERROR,
"[Arbiter::sellerResolveI] contract has expired");
}
}