ostore.security.thresh
Class KeyShare

java.lang.Object
  |
  +--ostore.security.thresh.KeyShare
All Implemented Interfaces:
Digestible, QuickSerializable

public class KeyShare
extends Object
implements Digestible

A Secret Key Share for an RSA (k,l) Threshold Scheme.

Reference: "Practical Threshold Signatures", Victor Shoup (sho@zurich.ibm.com), IBM Research Paper RZ3121, 4/30/99

Version:
$Id: KeyShare.java,v 1.6 2002/04/06 22:52:43 eaton Exp $
Author:
Steve Weis

Constructor Summary
KeyShare(byte[] data, int[] offset)
           
KeyShare(int id, BigInteger secret, BigInteger n, BigInteger delta)
          Create a new share
 
Method Summary
 void add_to_digest(SecureHashBuffer buffer)
          Adds this object's state to the specified SecureHashBuffer using the various add methods.
 int getId()
           
 BigInteger getSecret()
           
 BigInteger getSignVal()
           
 BigInteger getVerifier()
           
 void setVerifiers(BigInteger verifier, BigInteger groupVerifier)
           
 SigShare sign(byte[] data)
          Create a SigShare and a Verifier for byte[] b
Refer to Shoup pg.
 void to_bytes(byte[] data, int[] offset)
          Store the object in its "on the wire" form in the byte array data, starting at index offset [0], and increment offset [0] by the number of bytes written; if data == null, increment offset [0] by the number of bytes that would have been written otherwise.
 String toString()
           
 int type_code()
          Returns the unique integer associated with this class in the TypeTable.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

KeyShare

public KeyShare(byte[] data,
                int[] offset)
         throws QSException

KeyShare

public KeyShare(int id,
                BigInteger secret,
                BigInteger n,
                BigInteger delta)
Create a new share
Parameters:
id - - the identifier of this share
secret - - a secret value generated by a Dealer
n - - the modulo of the group public key
delta - - l! (group size factorial)
Method Detail

to_bytes

public void to_bytes(byte[] data,
                     int[] offset)
Description copied from interface: QuickSerializable
Store the object in its "on the wire" form in the byte array data, starting at index offset [0], and increment offset [0] by the number of bytes written; if data == null, increment offset [0] by the number of bytes that would have been written otherwise.
Specified by:
to_bytes in interface QuickSerializable
Following copied from interface: ostore.util.QuickSerializable
Parameters:
data - The byte array to store into, or null.
offset - A single element array whose first element is the index in data to begin writing at on function entry, and which on function exit has been incremented by the number of bytes written.

type_code

public int type_code()
Description copied from interface: QuickSerializable
Returns the unique integer associated with this class in the TypeTable.
Specified by:
type_code in interface QuickSerializable
Following copied from interface: ostore.util.QuickSerializable
Returns:
an integer unique to this class

add_to_digest

public void add_to_digest(SecureHashBuffer buffer)
Description copied from interface: Digestible
Adds this object's state to the specified SecureHashBuffer using the various add methods.
Specified by:
add_to_digest in interface Digestible
Following copied from interface: ostore.util.Digestible
See Also:
SecureHashBuffer.add( byte ), SecureHashBuffer.add( byte[] ), SecureHashBuffer.add( byte[], int, int ), SecureHashBuffer.add( Digestible )

getId

public int getId()

getSecret

public BigInteger getSecret()

setVerifiers

public void setVerifiers(BigInteger verifier,
                         BigInteger groupVerifier)

getVerifier

public BigInteger getVerifier()

getSignVal

public BigInteger getSignVal()

toString

public String toString()
Overrides:
toString in class Object

sign

public SigShare sign(byte[] data)
Create a SigShare and a Verifier for byte[] b
Refer to Shoup pg. 8
Returns:
a sig share with a verifier