EcbMode: Optimize data management on decryption hotpath.

This commit is contained in:
hashlag
2026-07-30 01:17:47 +03:00
parent c9a262bac4
commit 192cd67deb
+3 -10
View File
@@ -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,24 +211,19 @@ 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;
} }
} }
}
return written; return written;
} }