diff options
author | lloyd <[email protected]> | 2010-05-25 14:44:27 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2010-05-25 14:44:27 +0000 |
commit | 432bcf59badb8f6271146772ccbc1649822c25cb (patch) | |
tree | 1353fa7ea1807be29e9e70237ad90014a36119d2 /src/block/block_cipher.h | |
parent | 211d835a356f55e037ff8035017d79c458f13615 (diff) |
Change BlockCipher::parallelism() to return the native parallelism of
the implementation rather than the preferred one. Update all
implementations.
Add a new function parallel_bytes() which returns
parallelism() * BLOCK_SIZE * BUILD_TIME_CONSTANT
This is because i noticed all current calls of parallelism() just
multiplied the result by the block size already, so this simplified
that code.
The build time constant is set to 4, which was the previous default
return value of parallelism(). However the SIMD versions returned
2*native paralellism rather than 4*, so this increases the buffer
sizes used for those algorithms.
The constant multiple lives in buildh.in and build.h, and is named
BOTAN_BLOCK_CIPHER_PAR_MULT.
Diffstat (limited to 'src/block/block_cipher.h')
-rw-r--r-- | src/block/block_cipher.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/block/block_cipher.h b/src/block/block_cipher.h index 2d9198c58..55bc6d90c 100644 --- a/src/block/block_cipher.h +++ b/src/block/block_cipher.h @@ -24,9 +24,17 @@ class BOTAN_DLL BlockCipher : public SymmetricAlgorithm const u32bit BLOCK_SIZE; /** - * @return the preferred parallelism of this cipher + * @return the native parallelism of this cipher in blocks */ - virtual u32bit parallelism() const { return 4; } + virtual u32bit parallelism() const { return 1; } + + /** + * @return the prefererred parallelism of this cipher in bytes + */ + u32bit parallel_bytes() const + { + return parallelism() * BLOCK_SIZE * BOTAN_BLOCK_CIPHER_PAR_MULT; + } /** * Encrypt a block. |