diff options
Diffstat (limited to 'src/lib/pubkey/blinding.h')
-rw-r--r-- | src/lib/pubkey/blinding.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/lib/pubkey/blinding.h b/src/lib/pubkey/blinding.h new file mode 100644 index 000000000..712030e4d --- /dev/null +++ b/src/lib/pubkey/blinding.h @@ -0,0 +1,46 @@ +/* +* Blinding for public key operations +* (C) 1999-2010 Jack Lloyd +* +* Distributed under the terms of the Botan license +*/ + +#ifndef BOTAN_BLINDER_H__ +#define BOTAN_BLINDER_H__ + +#include <botan/bigint.h> +#include <botan/reducer.h> + +namespace Botan { + +/** +* Blinding Function Object +*/ +class BOTAN_DLL Blinder + { + public: + BigInt blind(const BigInt& x) const; + BigInt unblind(const BigInt& x) const; + + bool initialized() const { return reducer.initialized(); } + + Blinder() {} + + /** + * Construct a blinder + * @param mask the forward (blinding) mask + * @param inverse_mask the inverse of mask (depends on algo) + * @param modulus of the group operations are performed in + */ + Blinder(const BigInt& mask, + const BigInt& inverse_mask, + const BigInt& modulus); + + private: + Modular_Reducer reducer; + mutable BigInt e, d; + }; + +} + +#endif |