diff options
author | Christian Pointner <equinox@anytun.org> | 2008-02-20 00:25:29 +0000 |
---|---|---|
committer | Christian Pointner <equinox@anytun.org> | 2008-02-20 00:25:29 +0000 |
commit | 7b75dd9d4afd6030fe1837ea7d2d3fcd225ae785 (patch) | |
tree | eb9375dcfd63e78965d844674577491c1dd1a5e9 /cipher.h | |
parent | further cleanups (diff) |
further cleanups
cipher could work now
Diffstat (limited to 'cipher.h')
-rw-r--r-- | cipher.h | 19 |
1 files changed, 13 insertions, 6 deletions
@@ -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_; }; |