| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #ifndef Key_H
- #define Key_H
- #include "OperatingSystem.h"
- #include "ReferenceCounter.h"
- namespace Framework
- {
- namespace Encryption
- {
- //! Stores an array of bytes
- class Bytes : public virtual ReferenceCounter
- {
- private:
- char* bytes;
- bool del;
- int length;
- public:
- //! Creates an empty byte array
- DLLEXPORT Bytes();
- //! Creates a new byte array with a specific length
- //! \param length The length of the array
- DLLEXPORT Bytes(int length);
- //! Creates a new byte array by copying the bytes
- //! \param daten The bytes to copy
- //! \param length The number of bytes to copy
- DLLEXPORT Bytes(const char* daten, int length);
- //! Deletes the array
- DLLEXPORT ~Bytes();
- //! Fills the byte array by copying the bytes
- //! \param daten The bytes to copy
- DLLEXPORT void setBytes(const char* daten);
- //! Deletes the array and creates a new one
- //! \param daten The bytes to copy
- //! \param length The length of the array
- DLLEXPORT void setBytes(const char* daten, int length);
- //! Deletes the array and takes ownership of the given one without copying
- //! \param daten The new byte array
- //! \param length The length of the array
- DLLEXPORT void setBytesZ(char* daten, int length);
- //! Sets all bytes of the array to a specific value
- //! \param c The value to set the bytes to
- DLLEXPORT void fill(const char c);
- //! Sets a specific number of bytes of the array to a specific value
- //! \param c The value to set the bytes to
- //! \param len The number of bytes to set
- DLLEXPORT void fill(const char c, int len);
- //! Sets a specific section of bytes of the array to a specific value
- //! \param c The value to set the bytes to
- //! \param beg The start position of the section to set
- //! \param end The end position of the section to set (exclusive)
- DLLEXPORT void fill(const char c, int beg, int end);
- //! Copies specific bytes into the array
- //! \param c The bytes to copy
- //! \param cLength The number of bytes to set
- DLLEXPORT void fill(const char* c, int cLength);
- //! Sets a specific byte to a value
- //! \param c The value to set the byte to
- //! \param pos The position of the byte in the array
- DLLEXPORT void set(const char c, int pos);
- //! Returns the length of the array
- DLLEXPORT int getLength() const;
- //! Returns the array of bytes
- DLLEXPORT char* getBytes() const;
- };
- //! Can encrypt and decrypt byte sequences with specific keys
- class Key : public virtual ReferenceCounter
- {
- private:
- unsigned char* key;
- int length;
- int pos;
- public:
- //! Creates an empty object
- DLLEXPORT Key();
- //! Creates a new object with a key
- //! \param s The key to use for encryption and decryption
- //! \param length The length of the key
- DLLEXPORT Key(const char* s, int length);
- //! Deletes the object
- DLLEXPORT ~Key();
- //! Sets the position in the key where encryption and decryption
- //! should begin \param p The position in the key
- DLLEXPORT void setPos(__int64 p);
- //! Sets the key to use for encryption and decryption
- //! \param s The key \param length The length of the key
- DLLEXPORT void setKey(const char* s, int length);
- //! Encrypts a byte array with the set key
- //! \param daten The byte array to encrypt. Modified by the function
- DLLEXPORT void encode2(Bytes* daten);
- //! Decrypts a byte array with the set key
- //! \param daten The byte array to decrypt. Modified by the function
- DLLEXPORT void decode2(Bytes* daten);
- };
- } // namespace Encryption
- } // namespace Framework
- #endif
|