26 : m_threshold (0), m_channelsReady(0), m_channelsFinished(0)
30 void AddOutputChannel(
word32 channelId);
31 void ChannelData(
word32 channelId,
const byte *inString,
size_t length,
bool messageEnd);
35 size_t ChannelPut2(
const std::string &channel,
const byte *begin,
size_t length,
int messageEnd,
bool blocking)
39 ChannelData(StringToWord<word32>(channel), begin, length, messageEnd != 0);
44 virtual void FlushOutputQueues();
45 virtual void OutputMessageEnds();
47 unsigned int InsertInputChannel(
word32 channelId);
48 unsigned int LookupInputChannel(
word32 channelId)
const;
49 void ComputeV(
unsigned int);
50 void PrepareInterpolation();
51 void ProcessInputQueues();
62 std::vector<SecBlock<word32> >
m_v;
83 size_t Put2(
const byte *begin,
size_t length,
int messageEnd,
bool blocking);
84 bool Flush(
bool hardFlush,
int propagation=-1,
bool blocking=
true) {
return m_ida.
Flush(hardFlush, propagation, blocking);}
108 void FlushOutputQueues();
109 void OutputMessageEnds();
133 size_t Put2(
const byte *begin,
size_t length,
int messageEnd,
bool blocking);
134 bool Flush(
bool hardFlush,
int propagation=-1,
bool blocking=
true) {
return m_ida.
Flush(hardFlush, propagation, blocking);}
158 void FlushOutputQueues();
159 void OutputMessageEnds();
169 : m_possiblePadding(false), m_zeroCount(0) {
Detach(attachment);}
173 size_t Put2(
const byte *begin,
size_t length,
int messageEnd,
bool blocking);
bool Flush(bool completeFlush, int propagation=-1, bool blocking=true)
void IsolatedInitialize(const NameValuePairs ¶meters)
Initialize or reinitialize this object, without signal propagation.
std::vector< MessageQueue > m_inputQueues
std::vector< word32 > m_outputToInput
Utility functions for the Crypto++ library.
RawIDA(BufferedTransformation *attachment=NULL)
std::vector< SecBlock< word32 > > m_v
Secret sharing and information dispersal base class.
Filter class that is a proxy for a sink.
#define NAMESPACE_BEGIN(x)
Abstract base classes that provide a uniform interface to this library.
size_t ChannelPut2(const std::string &channel, const byte *begin, size_t length, int messageEnd, bool blocking)
Input multiple bytes for processing on a channel.
InputChannelMap m_inputChannelMap
Interface for random number generators.
std::vector< std::string > m_outputChannelIdStrings
bool Flush(bool hardFlush, int propagation=-1, bool blocking=true)
Flush buffered input and/or output, with signal propagation.
PaddingRemover(BufferedTransformation *attachment=NULL)
bool GetPossiblePadding() const
Interface for custom flush signals propagation.
Classes for multiple named channels.
std::vector< ByteQueue > m_outputQueues
Classes and functions for secure memory allocations.
void Detach(BufferedTransformation *newAttachment=NULL)
Replace an attached transformation.
AlgorithmParameters MakeParameters(const char *name, const T &value, bool throwIfNotUsed=true)
Create an object that implements NameValuePairs.
RandomNumberGenerator & m_rng
SecretSharing(RandomNumberGenerator &rng, int threshold, int nShares, BufferedTransformation *attachment=NULL, bool addPadding=true)
Construct a SecretSharing.
unsigned int m_channelsReady
unsigned int GetThreshold() const
size_t Put2(const byte *begin, size_t length, int messageEnd, bool blocking)
Input multiple bytes for processing.
const NameValuePairs & g_nullNameValuePairs
An empty set of name-value pairs.
Data structure used to store byte strings.
Implementation of BufferedTransformation's attachment interface.
Base class for unflushable filters.
InputChannelMap::iterator m_lastMapPosition
#define CRYPTOPP_UNUSED(x)
Provides auto signaling support.
Implementation of BufferedTransformation's attachment interface.
void IsolatedInitialize(const NameValuePairs ¶meters=g_nullNameValuePairs)
Initialize or reinitialize this object, without signal propagation.
SecretRecovery(int threshold, BufferedTransformation *attachment=NULL, bool removePadding=true)
Construct a SecretRecovery.
std::vector< char * > parameters
std::map< word32, unsigned int > InputChannelMap
Shamir's Secret Sharing Algorithm.
Multiple channels support for custom signal processing.
Shamir's Secret Sharing Algorithm.
Interface for retrieving values given their names.