Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

CODEX_KeyService::VerifiableBlindKeyMsg Class Reference

CODEX_Client::BlindKeyMsg decorated with a proof of correctness. More...

#include <VerifiableBlindKeyMsg.h>

Inheritance diagram for CODEX_KeyService::VerifiableBlindKeyMsg:

Inheritance graph
[legend]
Collaboration diagram for CODEX_KeyService::VerifiableBlindKeyMsg:

Collaboration graph
[legend]
List of all members.

Public Types

typedef CODEX_Server::ServerState::ShareType::ValueType ValueType
 The base type of partial results.
typedef CODEX_Server::ServerState::LSType::LabelType LabelType
 The type of a sharing label.
typedef CODEX_ThresholdCrypto::DLProof DLProof
 The type of a single-result proof.
typedef CODEX_Client::CipherTextType CipherTextType
 The type of a ciphertext.
typedef CODEX_Client::BlindCipherTextType BlindCipherTextType
 The type of a blind ciphertext.
typedef CODEX_Client::BlindPlainTextType BlindPlainTextType
 The type of a blind plaintext.

Public Member Functions

 VerifiableBlindKeyMsg ()
 Default constructor, for creating an object to be unmarshalled.
 VerifiableBlindKeyMsg (const CODEX_ASN1::OctetString &name, const BlindPlainTextType &blindedKey, const CODEX_Ciphers::RSASignature &requestSignature, const BlindCipherTextType &blindCipher)
 Create a VerifiableBlindKeyMsg from the basic components.
 VerifiableBlindKeyMsg (const VerifiableBlindKeyMsg &aBKM)
 Create a VerifiableBlindKeyMsg from another VerifiableBlindKeyMsg.
virtual ~VerifiableBlindKeyMsg ()
 Virtual destructor.
void operator= (const VerifiableBlindKeyMsg &aBKM)
 Assignment operator.
CODEX_Client::BlindKeyMsg upcast () const
 Convert the object to its base class.
int marshal (unsigned char **pp) const
 Serialize the message.
void * unmarshal (void *bogus, unsigned char **pp, long length)
 Unserialize the message.
const BlindCipherTextTypeblindCipher () const
 The blinded ciphertext for which we have the decryption.
const CODEX_ASN1::OctetStringname () const
 The name of the key.
const BlindPlainTextTypeblindedKey () const
 The blinded key.
const CODEX_Ciphers::RSASignaturerequestSignature () const
 The client's signature from the read request.
BIGNUM * digest (const CODEX_Ciphers::HashFunction &hf) const
 Create a message digest.
bool initialized () const

Static Public Attributes

static const unsigned int NumProofs = CODEX_Server::ServerState::ShareType::NumShares
 The number of proofs.

Protected Attributes

bool m_initialized
 Has this object been initialized yet, or is it still blank?

Detailed Description

CODEX_Client::BlindKeyMsg decorated with a proof of correctness.

Blind threshold decryption must be verifiable. In the case of a deterministic encryption scheme, such as RSA, combinatorics suffice to determine if an alleged plaintext is the decryption of the ciphertext. For ElGamal, which is non-deterministic encryption, this is not feasible (according to the Decision Diffie-Hellman Assumption, which is the basis for the cryptosystem's security). Instead, we must provide a separate proof that each partial result is a correct computation. These proofs are encapsulated in this class.

Definition at line 42 of file VerifiableBlindKeyMsg.h.


Member Function Documentation

bool CODEX_ASN1::Base::initialized  )  const [inline, inherited]
 

Returns:
Has this object been initialized?

Definition at line 175 of file Base.h.

References CODEX_ASN1::Base::m_initialized.

Referenced by CODEX_APSS::SecretManagement::addComputeMsg(), CODEX_APSS::SecretManagement::addEstablishMsg(), CODEX_APSS::SecretManagement::addEstablishResponse(), CODEX_APSS::SecretManagement::addInitMsg(), CODEX_APSS::SecretManagement::addSharing(), CODEX_APSS::SecretManagement::addSubsharing(), CODEX_VSS::Combinatoric< NumT, ThreshT >::apply(), CODEX_Server::ServerState::caKey(), CODEX_KeyService::ClientCreateCallback::ClientCreateCallback(), CODEX_VSS::Combinatoric< NumT, ThreshT >::count(), CODEX_Server::QuorumBuilderAct::handler(), CODEX_APSS::MessageVerifier::handler(), CODEX_KeyService::DelegateResponseVerifier::handler(), CODEX_KeyService::DelegateRequestDistributor::handler(), CODEX_KeyService::ClientMessageVerifier::handler(), CODEX_KeyService::ClientMessageSigner::handler(), CODEX_VSS::SubshareLabel< LabelType >::marshal(), CODEX_KeyService::KeyInfo::marshal(), CODEX_VSS::LabeledShare< ShareType, OneWay >::marshal(), CODEX_VSS::ShareLabel< _ShareType, _OneWay >::marshal(), CODEX_VSS::ModExpFunctionalArgs::marshal(), CODEX_VSS::Combinatoric< NumT, ThreshT >::marshal(), CODEX_KeyService::SignWriteCallback::operator()(), CODEX_KeyService::SignReadCallback::operator()(), CODEX_KeyService::SignCreateCallback::operator()(), CODEX_VSS::ModExpFunctional::operator()(), CODEX_KeyService::ClientReadCallback::operator()(), CODEX_KeyService::ClientCreateCallback::operator()(), CODEX_VSS::Combinatoric< NumT, ThreshT >::operator+=(), CODEX_Server::ServerState::readElGamalShares(), CODEX_VSS::Combinatoric< NumT, ThreshT >::recover(), CODEX_APSS::SecretManagement::sendFinished(), CODEX_Server::ServerState::serviceKey(), CODEX_Server::ServerState::setEGShareCallback(), and CODEX_Server::ServerState::setRSAShareCallback().


The documentation for this class was generated from the following files:
Generated on Fri May 6 17:42:27 2005 for COrnell Data EXchange (CODEX) by  doxygen 1.4.1