EcbMode: Optimize data management on decryption hotpath.
This commit is contained in:
@@ -172,8 +172,6 @@ public:
|
|||||||
uint64_t BlockBytesPacked_;
|
uint64_t BlockBytesPacked_;
|
||||||
BlockArray Block_;
|
BlockArray Block_;
|
||||||
|
|
||||||
BlockArray DecryptedBlock_;
|
|
||||||
|
|
||||||
bool PreviousBlockSaved_;
|
bool PreviousBlockSaved_;
|
||||||
BlockArray PreviousBlock_;
|
BlockArray PreviousBlock_;
|
||||||
|
|
||||||
@@ -213,22 +211,17 @@ public:
|
|||||||
{
|
{
|
||||||
BlockBytesPacked_ = 0;
|
BlockBytesPacked_ = 0;
|
||||||
|
|
||||||
Decryptor_.DecryptBlock(DecryptedBlock_.Begin(), DecryptedBlock_.End(),
|
|
||||||
Block_.Begin(), Block_.End());
|
|
||||||
|
|
||||||
if (PreviousBlockSaved_)
|
if (PreviousBlockSaved_)
|
||||||
{
|
{
|
||||||
out = EnsureCopy(out, outEnd,
|
out = EnsureCopy(out, outEnd,
|
||||||
PreviousBlock_.Begin(), PreviousBlock_.End());
|
PreviousBlock_.Begin(), PreviousBlock_.End());
|
||||||
PreviousBlock_ = DecryptedBlock_;
|
|
||||||
|
|
||||||
written += CipherT::BlockSize;
|
written += CipherT::BlockSize;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
Decryptor_.DecryptBlock(PreviousBlock_.Begin(), PreviousBlock_.End(),
|
||||||
PreviousBlock_ = DecryptedBlock_;
|
Block_.Begin(), Block_.End());
|
||||||
PreviousBlockSaved_ = true;
|
PreviousBlockSaved_ = true;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user