00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __CODEX_THRESHOLDCRYPTO_THRESHOLDRSA_H__
00019 #define __CODEX_THRESHOLDCRYPTO_THRESHOLDRSA_H__
00020
00021 #include "CODEX_VSS/CombinatoricFeldman.h"
00022 #include "CODEX_VSS/ModExpFunctional.h"
00023 #include "CODEX_Ciphers/RSA.h"
00024 #include "CODEX_VSS/Range.h"
00025
00026 namespace CODEX_ThresholdCrypto
00027 {
00032 template< class _ShareType >
00033 class ThresholdRSACrypto;
00034
00040 class ThresholdRSARange : public CODEX_VSS::Range
00041 {
00042 public :
00044 ThresholdRSARange( const BIGNUM * modulus,
00045 unsigned int n );
00046
00048 virtual ~ThresholdRSARange();
00049
00050 const BIGNUM * min() const { return m_min; }
00051 const BIGNUM * max() const { return m_max; }
00052 private :
00053 BIGNUM * m_min;
00054 BIGNUM * m_max;
00055 };
00056
00063 class ThresholdRSASubRange : public ThresholdRSARange
00064 {
00065 public :
00067 ThresholdRSASubRange( const BIGNUM * modulus );
00068
00070 virtual ~ThresholdRSASubRange();
00071 };
00072
00073 }
00074
00075 #endif