|
|
@@ -44,7 +44,7 @@ func NewChaCha20Stream(key []byte, nonce []byte, rounds int) *ChaCha20Stream {
|
|
|
}
|
|
|
|
|
|
s.rounds = rounds
|
|
|
- s.advance()
|
|
|
+ ChaCha20Block(&s.state, s.block[:], s.rounds)
|
|
|
return s
|
|
|
}
|
|
|
|
|
|
@@ -72,14 +72,9 @@ func (s *ChaCha20Stream) XORKeyStream(dst, src []byte) {
|
|
|
s.offset = o
|
|
|
|
|
|
if o == blockSize {
|
|
|
- s.advance()
|
|
|
+ s.offset = 0
|
|
|
+ s.state[12]++
|
|
|
+ ChaCha20Block(&s.state, s.block[:], s.rounds)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-func (s *ChaCha20Stream) advance() {
|
|
|
- ChaCha20Block(&s.state, s.block[:], s.rounds)
|
|
|
-
|
|
|
- s.offset = 0
|
|
|
- s.state[12]++
|
|
|
-}
|