00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __NETCOMM_WORLDINFO_ENCRYPT_H_
00025 #define __NETCOMM_WORLDINFO_ENCRYPT_H_
00026
00027 #include <core/exception.h>
00028 #include <cstddef>
00029
00030 namespace fawkes {
00031
00032 class MessageEncryptionException : public Exception
00033 {
00034 public:
00035 MessageEncryptionException(const char *msg);
00036 };
00037
00038 class WorldInfoMessageEncryptor
00039 {
00040 public:
00041 WorldInfoMessageEncryptor(const unsigned char *key, const unsigned char *iv);
00042 ~WorldInfoMessageEncryptor();
00043
00044 void set_plain_buffer(void *buffer, size_t buffer_length);
00045 void set_crypt_buffer(void *buffer, size_t buffer_length);
00046
00047 size_t recommended_crypt_buffer_size();
00048
00049 size_t encrypt();
00050
00051 private:
00052 void *plain_buffer;
00053 size_t plain_buffer_length;
00054 void *crypt_buffer;
00055 size_t crypt_buffer_length;
00056
00057 const unsigned char *key;
00058 const unsigned char *iv;
00059 };
00060
00061 }
00062
00063 #endif