xforms that support processing of multiple blocks at a time (to support
more efficient modes, for example) can define the encrypt_ and
decrypt_multi interfaces. If these interfaces are not present, the
generic cryptosoft code falls back on the block-at-a-time
encrypt/decrypt interfaces.
Stream ciphers may support arbitrarily sized inputs (equivalent to an
input block size of 1 byte) but may be more efficient if a larger block
is passed. Expand the larger buffer used to match that of Chacha20's
native block size and enhance the cryptosoft logic to use such APIs when
an xform defines them.