12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #ifndef FILE_ACCESS_ENCRYPTED_H
- #define FILE_ACCESS_ENCRYPTED_H
- #include "core/os/file_access.h"
- class FileAccessEncrypted : public FileAccess {
- public:
- enum Mode {
- MODE_READ,
- MODE_WRITE_AES256,
- MODE_MAX
- };
- private:
- Mode mode;
- Vector<uint8_t> key;
- bool writing;
- FileAccess *file;
- size_t base;
- size_t length;
- Vector<uint8_t> data;
- mutable int pos;
- mutable bool eofed;
- public:
- Error open_and_parse(FileAccess *p_base, const Vector<uint8_t> &p_key, Mode p_mode);
- Error open_and_parse_password(FileAccess *p_base, const String &p_key, Mode p_mode);
- virtual Error _open(const String &p_path, int p_mode_flags);
- virtual void close();
- virtual bool is_open() const;
- virtual void seek(size_t p_position);
- virtual void seek_end(int64_t p_position = 0);
- virtual size_t get_position() const;
- virtual size_t get_len() const;
- virtual bool eof_reached() const;
- virtual uint8_t get_8() const;
- virtual int get_buffer(uint8_t *p_dst, int p_length) const;
- virtual Error get_error() const;
- virtual void flush();
- virtual void store_8(uint8_t p_dest);
- virtual void store_buffer(const uint8_t *p_src, int p_length);
- virtual bool file_exists(const String &p_name);
- virtual uint64_t _get_modified_time(const String &p_file);
- FileAccessEncrypted();
- ~FileAccessEncrypted();
- };
- #endif
|