/************************************************* * DLIES Header File * * (C) 1999-2007 Jack Lloyd * *************************************************/ #ifndef BOTAN_DLIES_H__ #define BOTAN_DLIES_H__ #include #include #include namespace Botan { /************************************************* * DLIES Encryption * *************************************************/ class BOTAN_DLL DLIES_Encryptor : public PK_Encryptor { public: DLIES_Encryptor(const PK_Key_Agreement_Key&, KDF* kdf, MessageAuthenticationCode* mac, u32bit mac_key_len = 20); ~DLIES_Encryptor(); void set_other_key(const MemoryRegion&); private: SecureVector enc(const byte[], u32bit, RandomNumberGenerator&) const; u32bit maximum_input_size() const; const PK_Key_Agreement_Key& key; SecureVector other_key; KDF* kdf; MessageAuthenticationCode* mac; u32bit mac_keylen; }; /************************************************* * DLIES Decryption * *************************************************/ class BOTAN_DLL DLIES_Decryptor : public PK_Decryptor { public: DLIES_Decryptor(const PK_Key_Agreement_Key&, KDF* kdf, MessageAuthenticationCode* mac, u32bit mac_key_len = 20); ~DLIES_Decryptor(); private: SecureVector dec(const byte[], u32bit) const; const PK_Key_Agreement_Key& key; KDF* kdf; MessageAuthenticationCode* mac; u32bit mac_keylen; }; } #endif