diff options
author | lethality <lee@lethality.me.uk> | 2014-02-18 22:24:24 +0000 |
---|---|---|
committer | lethality <lee@lethality.me.uk> | 2014-02-18 22:24:24 +0000 |
commit | 5933a5e9b1ade9f926145b67e557b87ae6dd6e8f (patch) | |
tree | 41c9c8b4c1818531251c292ce184601a8721aed4 /include/modules/encryption.h | |
parent | f1c5c27f3fda90265d5da8205db1bdd4d12c9851 (diff) | |
parent | 109d8f431f3d25d56570a6aaa1af957867bbb80e (diff) |
Merge remote branch 'upstream/2.0' into 2.0
Diffstat (limited to 'include/modules/encryption.h')
-rw-r--r-- | include/modules/encryption.h | 37 |
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; + }; +} + |