aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/pubkey/blinding.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/pubkey/blinding.h')
-rw-r--r--src/lib/pubkey/blinding.h46
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