first commit

This commit is contained in:
2026-06-22 11:49:35 +02:00
commit d805f2ba86
619 changed files with 126873 additions and 0 deletions

View File

@ -0,0 +1,73 @@
/* -----------------------------------------------------------------------------
GSFramework
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */
#ifndef __NIOCRYPTO__
#define __NIOCRYPTO__
#include "filesystem/io_memory.h"
#include "memory/nauto_ptr.h"
namespace GS {
namespace IO {
//
class CryptoHandle : public Handle
{
friend class Crypto;
AutoPtr <Handle> cached_h;
String path;
Mode io_mode;
CryptoHandle(Base *, Handle *, const char *, Mode);
public:
~CryptoHandle();
};
/*!
@short I/O Crypto proxy.
@author Emmanuel Julien (ejulien@nworks.fr)
*/
class Crypto : public Base
{
String key;
SharedPtr <Base> wrapped_io;
SharedPtr <Memory> cache_io;
void Encrypt(Array <char> &);
void Decrypt(Array <char> &);
public:
virtual uint GetCaps() const;
virtual Handle *Open(const char *, Mode = ModeRead);
virtual void Close(Handle *);
virtual bool Delete(const char *);
virtual size_t Tell(Handle *);
virtual size_t Seek(Handle *, ptrdiff_t offset, SeekRef = SeekCurrent);
virtual size_t Read(Handle *, void *, size_t);
virtual size_t Write(Handle *, const void *, size_t);
virtual bool MkDir(const char *);
Crypto(Base *, const char *key);
};
} // IO
} // GS
#endif // __NIOCRYPTO__