summaryrefslogtreecommitdiff
path: root/include/modules/encryption.h
diff options
context:
space:
mode:
authorlethality <lee@lethality.me.uk>2014-02-18 22:24:24 +0000
committerlethality <lee@lethality.me.uk>2014-02-18 22:24:24 +0000
commit5933a5e9b1ade9f926145b67e557b87ae6dd6e8f (patch)
tree41c9c8b4c1818531251c292ce184601a8721aed4 /include/modules/encryption.h
parentf1c5c27f3fda90265d5da8205db1bdd4d12c9851 (diff)
parent109d8f431f3d25d56570a6aaa1af957867bbb80e (diff)
Merge remote branch 'upstream/2.0' into 2.0
Diffstat (limited to 'include/modules/encryption.h')
-rw-r--r--include/modules/encryption.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/include/modules/encryption.h b/include/modules/encryption.h
new file mode 100644
index 000000000..95c5703aa
--- /dev/null
+++ b/include/modules/encryption.h
@@ -0,0 +1,37 @@
+/*
+ *
+ * (C) 2003-2014 Anope Team
+ * Contact us at team@anope.org
+ *
+ * Please read COPYING and README for further details.
+ *
+ * Based on the original code of Epona by Lara.
+ * Based on the original code of Services by Andy Church.
+ *
+ */
+
+namespace Encryption
+{
+ typedef std::pair<const unsigned char *, size_t> Hash;
+ typedef std::pair<const uint32_t *, size_t> IV;
+
+ class Context
+ {
+ public:
+ virtual ~Context() { }
+ virtual void Update(const unsigned char *data, size_t len) = 0;
+ virtual void Finalize() = 0;
+ virtual Hash GetFinalizedHash() = 0;
+ };
+
+ class Provider : public Service
+ {
+ public:
+ Provider(Module *creator, const Anope::string &sname) : Service(creator, "Encryption::Provider", sname) { }
+ virtual ~Provider() { }
+
+ virtual Context *CreateContext(IV * = NULL) = 0;
+ virtual IV GetDefaultIV() = 0;
+ };
+}
+