From 7b75dd9d4afd6030fe1837ea7d2d3fcd225ae785 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Wed, 20 Feb 2008 00:25:29 +0000 Subject: further cleanups cipher could work now --- cipher.h | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'cipher.h') diff --git a/cipher.h b/cipher.h index cabb076..190d9fe 100644 --- a/cipher.h +++ b/cipher.h @@ -44,14 +44,15 @@ class Cipher public: virtual ~Cipher() {}; - void encrypt(const PlainPacket & in,EncryptedPacket & out, seq_nr_t seq_nr, sender_id_t sender_id); - void decrypt(const EncryptedPacket & in,PlainPacket & out); - + void encrypt(const PlainPacket & in, EncryptedPacket & out, seq_nr_t seq_nr, sender_id_t sender_id); + void decrypt(const EncryptedPacket & in, PlainPacket & out); + virtual void setKey(Buffer key) = 0; virtual void setSalt(Buffer salt) = 0; protected: - virtual void cipher(u_int8_t * in, u_int8_t * out, u_int32_t length, seq_nr_t seq_nr, sender_id_t sender_id) = 0; + virtual u_int32_t cipher(u_int8_t* in, u_int32_t ilen, u_int8_t* out, u_int32_t olen, seq_nr_t seq_nr, sender_id_t sender_id) = 0; + virtual u_int32_t decipher(u_int8_t* in, u_int32_t ilen, u_int8_t* out, u_int32_t olen, seq_nr_t seq_nr, sender_id_t sender_id) = 0; }; //****** NullCipher ****** @@ -63,7 +64,8 @@ public: void setSalt(Buffer salt) {}; protected: - void cipher(u_int8_t * in, u_int8_t * out, u_int32_t length, seq_nr_t seq_nr, sender_id_t sender_id); + u_int32_t cipher(u_int8_t* in, u_int32_t ilen, u_int8_t* out, u_int32_t olen, seq_nr_t seq_nr, sender_id_t sender_id); + u_int32_t decipher(u_int8_t* in, u_int32_t ilen, u_int8_t* out, u_int32_t olen, seq_nr_t seq_nr, sender_id_t sender_id); }; //****** AesIcmCipher ****** @@ -77,7 +79,12 @@ public: void setSalt(Buffer salt); protected: - void cipher(u_int8_t * in, u_int8_t * out, u_int32_t length, seq_nr_t seq_nr, sender_id_t sender_id); + u_int32_t cipher(u_int8_t* in, u_int32_t ilen, u_int8_t* out, u_int32_t olen, seq_nr_t seq_nr, sender_id_t sender_id); + u_int32_t decipher(u_int8_t* in, u_int32_t ilen, u_int8_t* out, u_int32_t olen, seq_nr_t seq_nr, sender_id_t sender_id); + +private: + void calc(u_int8_t* in, u_int32_t ilen, u_int8_t* out, u_int32_t olen, seq_nr_t seq_nr, sender_id_t sender_id); + gcry_cipher_hd_t cipher_; Buffer salt_; }; -- cgit v1.2.3