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

CODEX_VSS::SubshareLabel< _ShareLabel > Class Template Reference

Sharings are labelled as a means to distinguish different sharings of the same secret. More...

#include <SubshareLabel.h>

Inheritance diagram for CODEX_VSS::SubshareLabel< _ShareLabel >:

Inheritance graph
[legend]
Collaboration diagram for CODEX_VSS::SubshareLabel< _ShareLabel >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef _ShareLabel ShareLabel
 Export the type of share label.
typedef ShareLabel::VType VType
 Convenient short name for the verification reconstruction class.
typedef ShareLabel::ShareType ShareType
 Convenient short name.
typedef ShareLabel::OneWay OneWay
 Convenient short name.

Public Member Functions

 SubshareLabel ()
 Default constructor.
 SubshareLabel (const ShareLabel &label, int id, const ShareSet< ShareType > &shareSet, const OneWay &func)
 Constructor taking a share set and one-way function.
 SubshareLabel (const ShareLabel &label, int id, const typename VType::ValueType vc[NumShares])
 Constructor taking a set of verification shares.
 SubshareLabel (const SubshareLabel< _ShareLabel > &aOther)
 Copy constructor.
virtual ~SubshareLabel ()
 Virtual destructor.
void operator= (const SubshareLabel< _ShareLabel > &aOther)
 Assignment operator.
int cmp (const SubshareLabel< _ShareLabel > &aOther) const
 Generic comparator method.
bool operator< (const SubshareLabel< _ShareLabel > &aOther) const
 Less-than comparator.
bool operator> (const SubshareLabel< _ShareLabel > &aOther) const
 Greater-than comparator.
bool operator== (const SubshareLabel< _ShareLabel > &aOther) const
 Equality comparator.
bool operator!= (const SubshareLabel< _ShareLabel > &aOther) const
 Inequality comparator.
bool operator<= (const SubshareLabel< _ShareLabel > &aOther) const
 At-most (<=) comparator (equivalent to !>).
bool operator>= (const SubshareLabel< _ShareLabel > &aOther) const
 At-least (>=) comparator (equivalent to !<).
const ShareLabellabel () const
 The label of the sharing of which this is a subsharing.
const CODEX_ASN1::Integerid () const
 The origin identifier for the corresponding subsharing.
const VType::ValueTypevc () const
 The validity checks for the corresponding subsharing.
const VType::ValueTypevc (unsigned int i) const
 A particular validity check for the subsharing.
bool verify (const OneWay &func) const
 Check the consistency of the verification data.
bool check (const ShareType &share, const OneWay &func) const
 Test a subshare against its validity information.
virtual int marshal (unsigned char **pp) const
 This function creates a serialized representation of the object, which is returned through the argument pp.
virtual void * unmarshal (void *bogus, unsigned char **pp, long length)
 This function takes a serialized representation of the object and recreates the object representation.
bool initialized () const

Static Public Attributes

static const unsigned int NumShares = ShareLabel::NumShares
 Number of shares.

Protected Attributes

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

Detailed Description

template<class _ShareLabel>
class CODEX_VSS::SubshareLabel< _ShareLabel >

Sharings are labelled as a means to distinguish different sharings of the same secret.

This includes version and origin information as well as the public verification information. Because the verification data is included in the label, this is a natural place to test its validity, making the label both an indicator of a specific version and the proof that it corresponds to a valid sharing. The template parameters uniquely determine the type of sharing and the verification scheme, and these are then used to obtain the appropriate verification reconstruction class.

Definition at line 41 of file SubshareLabel.h.


Member Typedef Documentation

template<class _ShareLabel>
typedef ShareLabel::VType CODEX_VSS::SubshareLabel< _ShareLabel >::VType
 

Convenient short name for the verification reconstruction class.

Explicit specialization of the template determines the precise behavior of VRecon.

Definition at line 52 of file SubshareLabel.h.


Member Function Documentation

template<class _ShareLabel>
bool CODEX_VSS::SubshareLabel< _ShareLabel >::check const ShareType share,
const OneWay func
const [inline]
 

Test a subshare against its validity information.

This should be specialized for the type of share and function.

Parameters:
share The subshare to test.
func The one-way function to apply to share.

Definition at line 255 of file SubshareLabel.h.

Referenced by CODEX_APSS::MessageVerifier::handler().

template<class _ShareLabel>
int CODEX_VSS::SubshareLabel< _ShareLabel >::cmp const SubshareLabel< _ShareLabel > &  aOther  )  const [inline]
 

Generic comparator method.

The ordering is arbitrary, but deterministic. Since it's only used for sorting and finding purposes, this does not really matter.

Parameters:
aOther A SubshareLabel with which to compare this one.
The assumed calling syntax for a and b is a.cmp(b)
Return values:
-1 a < b
0 a == b
1 a > b

Definition at line 149 of file SubshareLabel.h.

Referenced by CODEX_VSS::SubshareLabel< LabelType >::operator!=(), CODEX_VSS::SubshareLabel< LabelType >::operator<(), CODEX_VSS::SubshareLabel< LabelType >::operator<=(), CODEX_VSS::SubshareLabel< LabelType >::operator==(), CODEX_VSS::SubshareLabel< LabelType >::operator>(), and CODEX_VSS::SubshareLabel< LabelType >::operator>=().

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().

template<class _ShareLabel>
virtual int CODEX_VSS::SubshareLabel< _ShareLabel >::marshal unsigned char **  pp  )  const [inline, virtual]
 

This function creates a serialized representation of the object, which is returned through the argument pp.

This must be overridden by the concrete derived class.

Parameters:
pp Serialized form of the object
Returns:
Length of the marshalled data

Implements CODEX_ASN1::Base.

Definition at line 261 of file SubshareLabel.h.

Referenced by CODEX_APSS::RecoverMsg::marshal(), CODEX_APSS::RecoveredMsg::marshal(), CODEX_APSS::EstablishMsg::marshal(), CODEX_APSS::EstablishedMsg::marshal(), and CODEX_APSS::ComputeMsg::marshal().

template<class _ShareLabel>
virtual void* CODEX_VSS::SubshareLabel< _ShareLabel >::unmarshal void *  bogus,
unsigned char **  pp,
long  length
[inline, virtual]
 

This function takes a serialized representation of the object and recreates the object representation.

This must be overridden by the concrete derived class.

Parameters:
bogus Included for compatibility with OpenSSL ASN.1 macros
pp Serialized form of the data
length Number of bytes of pp to unmarshal
Returns:
success or failure of the unmarshalling

Implements CODEX_ASN1::Base.

Definition at line 290 of file SubshareLabel.h.

Referenced by CODEX_APSS::RecoverMsg::unmarshal(), CODEX_APSS::RecoveredMsg::unmarshal(), CODEX_APSS::EstablishMsg::unmarshal(), and CODEX_APSS::EstablishedMsg::unmarshal().

template<class _ShareLabel>
bool CODEX_VSS::SubshareLabel< _ShareLabel >::verify const OneWay func  )  const [inline]
 

Check the consistency of the verification data.

Parameters:
func The one-way function that can transform the shares into the validity checks. This is needed by VRecon.
Returns:
Whether or not VRecon returns a VType::ValueType equal to the corresponding element of the share label.

Definition at line 239 of file SubshareLabel.h.

Referenced by CODEX_APSS::MessageVerifier::handler().


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