Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound 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 Methods

 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
 
Returns:
The label of the sharing of which this is a subsharing.


const CODEX_ASN1::Integerid () const
 
Returns:
The origin identifier for the corresponding subsharing.


const VType::ValueType * vc () const
 
Returns:
The validity checks for the corresponding subsharing.


const VType::ValueType & vc (unsigned int i) const
 
Returns:
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.


Static Public Attributes

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


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 38 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 49 of file SubshareLabel.h.

Referenced by CODEX_VSS::SubshareLabel< LabelType >::check(), and CODEX_VSS::SubshareLabel< LabelType >::verify().


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 252 of file SubshareLabel.h.

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

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 258 of file SubshareLabel.h.

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 287 of file SubshareLabel.h.

Referenced by CODEX_VSS::SubshareLabel< LabelType >::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 236 of file SubshareLabel.h.


The documentation for this class was generated from the following file:
Generated on Wed Jun 2 16:33:25 2004 for COrnell Data EXchange (CODEX) by doxygen1.2.18