1
0
mirror of https://github.com/veracrypt/VeraCrypt.git synced 2025-11-11 19:08:26 -06:00

Use properly aligned memory in code using Streebog hash implementation that uses SSE.

This commit is contained in:
Mounir IDRASSI
2016-09-28 00:14:05 +02:00
parent 3e029b0dde
commit 57ce7aab7b
7 changed files with 65 additions and 23 deletions

View File

@@ -71,17 +71,18 @@ namespace VeraCrypt
{
public:
Buffer ();
Buffer (size_t size);
Buffer (const ConstBufferPtr &bufferPtr) { CopyFrom (bufferPtr); }
Buffer (size_t size, size_t alignment = 0);
Buffer (const ConstBufferPtr &bufferPtr, size_t alignment = 0) { CopyFrom (bufferPtr, alignment); }
virtual ~Buffer ();
virtual void Allocate (size_t size);
virtual void CopyFrom (const ConstBufferPtr &bufferPtr);
virtual void Allocate (size_t size, size_t alignment = 0);
virtual void CopyFrom (const ConstBufferPtr &bufferPtr, size_t alignment = 0);
virtual byte *Ptr () const { return DataPtr; }
virtual void Erase ();
virtual void Free ();
virtual BufferPtr GetRange (size_t offset, size_t size) const;
virtual size_t Size () const { return DataSize; }
virtual size_t Alignment () const { return DataAlignment; }
virtual bool IsAllocated () const { return DataSize != 0; }
virtual void Zero ();
@@ -92,6 +93,7 @@ namespace VeraCrypt
protected:
byte *DataPtr;
size_t DataSize;
size_t DataAlignment;
private:
Buffer (const Buffer &);
@@ -102,11 +104,11 @@ namespace VeraCrypt
{
public:
SecureBuffer () { }
SecureBuffer (size_t size);
SecureBuffer (size_t size, size_t alignment = 0);
SecureBuffer (const ConstBufferPtr &bufferPtr) { CopyFrom (bufferPtr); }
virtual ~SecureBuffer ();
virtual void Allocate (size_t size);
virtual void Allocate (size_t size, size_t alignment = 0);
virtual void Free ();
private: