Update comments
parent
779e28a9b0
commit
82f80124e6
14
chacha.cpp
14
chacha.cpp
|
|
@ -425,7 +425,10 @@ void ChaChaTLS_Policy::CipherResynchronize(byte *keystreamBuffer, const byte *IV
|
||||||
|
|
||||||
void ChaChaTLS_Policy::SeekToIteration(lword iterationCount)
|
void ChaChaTLS_Policy::SeekToIteration(lword iterationCount)
|
||||||
{
|
{
|
||||||
// Should we throw here???
|
// Should we throw here??? If the initial block counter is
|
||||||
|
// large then we can wrap and process more data as long as
|
||||||
|
// data processed in the security context does not exceed
|
||||||
|
// 2^32 blocks or approximately 256 GB of data.
|
||||||
CRYPTOPP_ASSERT(iterationCount <= std::numeric_limits<word32>::max());
|
CRYPTOPP_ASSERT(iterationCount <= std::numeric_limits<word32>::max());
|
||||||
m_state[12] = (word32)iterationCount; // low word
|
m_state[12] = (word32)iterationCount; // low word
|
||||||
}
|
}
|
||||||
|
|
@ -447,11 +450,12 @@ void ChaChaTLS_Policy::OperateKeystream(KeystreamOperation operation,
|
||||||
ChaCha_OperateKeystream(operation, m_state, m_state[12], discard,
|
ChaCha_OperateKeystream(operation, m_state, m_state[12], discard,
|
||||||
m_rounds, output, input, iterationCount);
|
m_rounds, output, input, iterationCount);
|
||||||
|
|
||||||
// If this fires it means ChaCha_OperateKeystream generated a carry
|
// If this fires it means ChaCha_OperateKeystream generated a counter
|
||||||
// that was discarded. The problem is, the RFC does not specify what
|
// block carry that was discarded. The problem is, the RFC does not
|
||||||
// should happen when the counter block wraps. All we can do is
|
// specify what should happen when the counter block wraps. All we can
|
||||||
// inform the user that something bad may happen because we don't
|
// do is inform the user that something bad may happen because we don't
|
||||||
// know what we should do.
|
// know what we should do.
|
||||||
|
// Also see https://github.com/weidai11/cryptopp/issues/790.
|
||||||
CRYPTOPP_ASSERT(discard==0);
|
CRYPTOPP_ASSERT(discard==0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue