diff options
author | Keith Busch <kbusch@kernel.org> | 2022-03-03 21:13:10 +0100 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2022-03-07 20:48:35 +0100 |
commit | f3813f4b287e480b1fcd62ca798d8556644b8278 (patch) | |
tree | 9f77b5e0c719e20bb7c9dd9faacf1be71b76045d /crypto/testmgr.h | |
parent | lib: add rocksoft model crc64 (diff) | |
download | linux-f3813f4b287e480b1fcd62ca798d8556644b8278.tar.xz linux-f3813f4b287e480b1fcd62ca798d8556644b8278.zip |
crypto: add rocksoft 64b crc guard tag framework
Hardware specific features may be able to calculate a crc64, so provide
a framework for drivers to register their implementation. If nothing is
registered, fallback to the generic table lookup implementation. The
implementation is modeled after the crct10dif equivalent.
Signed-off-by: Keith Busch <kbusch@kernel.org>
Link: https://lore.kernel.org/r/20220303201312.3255347-7-kbusch@kernel.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'crypto/testmgr.h')
-rw-r--r-- | crypto/testmgr.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/crypto/testmgr.h b/crypto/testmgr.h index a253d66ba1c1..f1a22794c404 100644 --- a/crypto/testmgr.h +++ b/crypto/testmgr.h @@ -3679,6 +3679,21 @@ static const struct hash_testvec rmd160_tv_template[] = { } }; +static const u8 zeroes[4096] = { [0 ... 4095] = 0 }; +static const u8 ones[4096] = { [0 ... 4095] = 0xff }; + +static const struct hash_testvec crc64_rocksoft_tv_template[] = { + { + .plaintext = zeroes, + .psize = 4096, + .digest = (u8 *)(u64[]){ 0x6482d367eb22b64eull }, + }, { + .plaintext = ones, + .psize = 4096, + .digest = (u8 *)(u64[]){ 0xc0ddba7302eca3acull }, + } +}; + static const struct hash_testvec crct10dif_tv_template[] = { { .plaintext = "abc", |