crypto: crct10dif - remove from crypto API

Remove the "crct10dif" shash algorithm from the crypto API.  It has no
known user now that the lib is no longer built on top of it.  It has no
remaining references in kernel code.  The only other potential users
would be the usual components that allow specifying arbitrary hash
algorithms by name, namely AF_ALG and dm-integrity.   However there are
no indications that "crct10dif" is being used with these components.
Debian Code Search and web searches don't find anything relevant, and
explicitly grepping the source code of the usual suspects (cryptsetup,
libell, iwd) finds no matches either.  "crc32" and "crc32c" are used in
a few more places, but that doesn't seem to be the case for "crct10dif".

crc_t10dif_update() is also tested by crc_kunit now, so the test
coverage provided via the crypto self-tests is no longer needed.

Also note that the "crct10dif" shash algorithm was inconsistent with the
rest of the shash API in that it wrote the digest in CPU endianness,
making the resulting byte array differ on little endian vs. big endian
platforms.  This means it was effectively just built for use by the lib
functions, and it was not actually correct to treat it as "just another
hash function" that could be dropped in via the shash API.

Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: "Martin K. Petersen" <martin.petersen@oracle.com>
Link: https://lore.kernel.org/r/20250206173857.39794-1-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
This commit is contained in:
Eric Biggers 2025-02-06 09:38:57 -08:00
parent 68ea3c2ae0
commit 8522104f75
11 changed files with 0 additions and 489 deletions

View file

@ -180,7 +180,6 @@ CONFIG_CRYPTO_XTS=m
CONFIG_CRYPTO_CMAC=m
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_CRC32=m
CONFIG_CRYPTO_CRCT10DIF=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_RMD160=m

View file

@ -175,7 +175,6 @@ CONFIG_CRYPTO_XTS=m
CONFIG_CRYPTO_CMAC=m
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_CRC32=m
CONFIG_CRYPTO_CRCT10DIF=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_RMD160=m

View file

@ -175,7 +175,6 @@ CONFIG_CRYPTO_XTS=m
CONFIG_CRYPTO_CMAC=m
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_CRC32=m
CONFIG_CRYPTO_CRCT10DIF=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_RMD160=m

View file

@ -1081,15 +1081,6 @@ config CRYPTO_CRC32
Used by RoCEv2 and f2fs.
config CRYPTO_CRCT10DIF
tristate "CRCT10DIF"
select CRYPTO_HASH
select CRC_T10DIF
help
CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
CRC algorithm used by the SCSI Block Commands standard.
endmenu
menu "Compression"

View file

@ -155,8 +155,6 @@ obj-$(CONFIG_CRYPTO_CRC32C) += crc32c_generic.o
obj-$(CONFIG_CRYPTO_CRC32) += crc32_generic.o
CFLAGS_crc32c_generic.o += -DARCH=$(ARCH)
CFLAGS_crc32_generic.o += -DARCH=$(ARCH)
obj-$(CONFIG_CRYPTO_CRCT10DIF) += crct10dif_generic.o
CFLAGS_crct10dif_generic.o += -DARCH=$(ARCH)
obj-$(CONFIG_CRYPTO_AUTHENC) += authenc.o authencesn.o
obj-$(CONFIG_CRYPTO_LZO) += lzo.o lzo-rle.o
obj-$(CONFIG_CRYPTO_LZ4) += lz4.o

View file

@ -1,168 +0,0 @@
/*
* Cryptographic API.
*
* T10 Data Integrity Field CRC16 Crypto Transform
*
* Copyright (c) 2007 Oracle Corporation. All rights reserved.
* Written by Martin K. Petersen <martin.petersen@oracle.com>
* Copyright (C) 2013 Intel Corporation
* Author: Tim Chen <tim.c.chen@linux.intel.com>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
*/
#include <linux/module.h>
#include <linux/crc-t10dif.h>
#include <crypto/internal/hash.h>
#include <linux/init.h>
#include <linux/kernel.h>
struct chksum_desc_ctx {
__u16 crc;
};
/*
* Steps through buffer one byte at a time, calculates reflected
* crc using table.
*/
static int chksum_init(struct shash_desc *desc)
{
struct chksum_desc_ctx *ctx = shash_desc_ctx(desc);
ctx->crc = 0;
return 0;
}
static int chksum_update(struct shash_desc *desc, const u8 *data,
unsigned int length)
{
struct chksum_desc_ctx *ctx = shash_desc_ctx(desc);
ctx->crc = crc_t10dif_generic(ctx->crc, data, length);
return 0;
}
static int chksum_update_arch(struct shash_desc *desc, const u8 *data,
unsigned int length)
{
struct chksum_desc_ctx *ctx = shash_desc_ctx(desc);
ctx->crc = crc_t10dif_update(ctx->crc, data, length);
return 0;
}
static int chksum_final(struct shash_desc *desc, u8 *out)
{
struct chksum_desc_ctx *ctx = shash_desc_ctx(desc);
*(__u16 *)out = ctx->crc;
return 0;
}
static int __chksum_finup(__u16 crc, const u8 *data, unsigned int len, u8 *out)
{
*(__u16 *)out = crc_t10dif_generic(crc, data, len);
return 0;
}
static int __chksum_finup_arch(__u16 crc, const u8 *data, unsigned int len,
u8 *out)
{
*(__u16 *)out = crc_t10dif_update(crc, data, len);
return 0;
}
static int chksum_finup(struct shash_desc *desc, const u8 *data,
unsigned int len, u8 *out)
{
struct chksum_desc_ctx *ctx = shash_desc_ctx(desc);
return __chksum_finup(ctx->crc, data, len, out);
}
static int chksum_finup_arch(struct shash_desc *desc, const u8 *data,
unsigned int len, u8 *out)
{
struct chksum_desc_ctx *ctx = shash_desc_ctx(desc);
return __chksum_finup_arch(ctx->crc, data, len, out);
}
static int chksum_digest(struct shash_desc *desc, const u8 *data,
unsigned int length, u8 *out)
{
return __chksum_finup(0, data, length, out);
}
static int chksum_digest_arch(struct shash_desc *desc, const u8 *data,
unsigned int length, u8 *out)
{
return __chksum_finup_arch(0, data, length, out);
}
static struct shash_alg algs[] = {{
.digestsize = CRC_T10DIF_DIGEST_SIZE,
.init = chksum_init,
.update = chksum_update,
.final = chksum_final,
.finup = chksum_finup,
.digest = chksum_digest,
.descsize = sizeof(struct chksum_desc_ctx),
.base.cra_name = "crct10dif",
.base.cra_driver_name = "crct10dif-generic",
.base.cra_priority = 100,
.base.cra_blocksize = CRC_T10DIF_BLOCK_SIZE,
.base.cra_module = THIS_MODULE,
}, {
.digestsize = CRC_T10DIF_DIGEST_SIZE,
.init = chksum_init,
.update = chksum_update_arch,
.final = chksum_final,
.finup = chksum_finup_arch,
.digest = chksum_digest_arch,
.descsize = sizeof(struct chksum_desc_ctx),
.base.cra_name = "crct10dif",
.base.cra_driver_name = "crct10dif-" __stringify(ARCH),
.base.cra_priority = 150,
.base.cra_blocksize = CRC_T10DIF_BLOCK_SIZE,
.base.cra_module = THIS_MODULE,
}};
static int num_algs;
static int __init crct10dif_mod_init(void)
{
/* register the arch flavor only if it differs from the generic one */
num_algs = 1 + crc_t10dif_is_optimized();
return crypto_register_shashes(algs, num_algs);
}
static void __exit crct10dif_mod_fini(void)
{
crypto_unregister_shashes(algs, num_algs);
}
subsys_initcall(crct10dif_mod_init);
module_exit(crct10dif_mod_fini);
MODULE_AUTHOR("Tim Chen <tim.c.chen@linux.intel.com>");
MODULE_DESCRIPTION("T10 DIF CRC calculation.");
MODULE_LICENSE("GPL");
MODULE_ALIAS_CRYPTO("crct10dif");
MODULE_ALIAS_CRYPTO("crct10dif-generic");

View file

@ -1654,10 +1654,6 @@ static int do_test(const char *alg, u32 type, u32 mask, int m, u32 num_mb)
ret = min(ret, tcrypt_test("ghash"));
break;
case 47:
ret = min(ret, tcrypt_test("crct10dif"));
break;
case 48:
ret = min(ret, tcrypt_test("sha3-224"));
break;
@ -2272,10 +2268,6 @@ static int do_test(const char *alg, u32 type, u32 mask, int m, u32 num_mb)
test_hash_speed("crc32c", sec, generic_hash_speed_template);
if (mode > 300 && mode < 400) break;
fallthrough;
case 320:
test_hash_speed("crct10dif", sec, generic_hash_speed_template);
if (mode > 300 && mode < 400) break;
fallthrough;
case 321:
test_hash_speed("poly1305", sec, poly1305_speed_template);
if (mode > 300 && mode < 400) break;

View file

@ -4759,13 +4759,6 @@ static const struct alg_test_desc alg_test_descs[] = {
.suite = {
.hash = __VECS(crc32c_tv_template)
}
}, {
.alg = "crct10dif",
.test = alg_test_hash,
.fips_allowed = 1,
.suite = {
.hash = __VECS(crct10dif_tv_template)
}
}, {
.alg = "ctr(aes)",
.test = alg_test_skcipher,

View file

@ -6017,294 +6017,6 @@ static const struct hash_testvec rmd160_tv_template[] = {
}
};
static const struct hash_testvec crct10dif_tv_template[] = {
{
.plaintext = "abc",
.psize = 3,
.digest = (u8 *)(u16 []){ 0x443b },
}, {
.plaintext = "1234567890123456789012345678901234567890"
"123456789012345678901234567890123456789",
.psize = 79,
.digest = (u8 *)(u16 []){ 0x4b70 },
}, {
.plaintext = "abcdddddddddddddddddddddddddddddddddddddddd"
"ddddddddddddd",
.psize = 56,
.digest = (u8 *)(u16 []){ 0x9ce3 },
}, {
.plaintext = "1234567890123456789012345678901234567890"
"1234567890123456789012345678901234567890"
"1234567890123456789012345678901234567890"
"1234567890123456789012345678901234567890"
"1234567890123456789012345678901234567890"
"1234567890123456789012345678901234567890"
"1234567890123456789012345678901234567890"
"123456789012345678901234567890123456789",
.psize = 319,
.digest = (u8 *)(u16 []){ 0x44c6 },
}, {
.plaintext = "\x6e\x05\x79\x10\xa7\x1b\xb2\x49"
"\xe0\x54\xeb\x82\x19\x8d\x24\xbb"
"\x2f\xc6\x5d\xf4\x68\xff\x96\x0a"
"\xa1\x38\xcf\x43\xda\x71\x08\x7c"
"\x13\xaa\x1e\xb5\x4c\xe3\x57\xee"
"\x85\x1c\x90\x27\xbe\x32\xc9\x60"
"\xf7\x6b\x02\x99\x0d\xa4\x3b\xd2"
"\x46\xdd\x74\x0b\x7f\x16\xad\x21"
"\xb8\x4f\xe6\x5a\xf1\x88\x1f\x93"
"\x2a\xc1\x35\xcc\x63\xfa\x6e\x05"
"\x9c\x10\xa7\x3e\xd5\x49\xe0\x77"
"\x0e\x82\x19\xb0\x24\xbb\x52\xe9"
"\x5d\xf4\x8b\x22\x96\x2d\xc4\x38"
"\xcf\x66\xfd\x71\x08\x9f\x13\xaa"
"\x41\xd8\x4c\xe3\x7a\x11\x85\x1c"
"\xb3\x27\xbe\x55\xec\x60\xf7\x8e"
"\x02\x99\x30\xc7\x3b\xd2\x69\x00"
"\x74\x0b\xa2\x16\xad\x44\xdb\x4f"
"\xe6\x7d\x14\x88\x1f\xb6\x2a\xc1"
"\x58\xef\x63\xfa\x91\x05\x9c\x33"
"\xca\x3e\xd5\x6c\x03\x77\x0e\xa5"
"\x19\xb0\x47\xde\x52\xe9\x80\x17"
"\x8b\x22\xb9\x2d\xc4\x5b\xf2\x66"
"\xfd\x94\x08\x9f\x36\xcd\x41\xd8"
"\x6f\x06\x7a\x11\xa8\x1c\xb3\x4a"
"\xe1\x55\xec\x83\x1a\x8e\x25\xbc"
"\x30\xc7\x5e\xf5\x69\x00\x97\x0b"
"\xa2\x39\xd0\x44\xdb\x72\x09\x7d"
"\x14\xab\x1f\xb6\x4d\xe4\x58\xef"
"\x86\x1d\x91\x28\xbf\x33\xca\x61"
"\xf8\x6c\x03\x9a\x0e\xa5\x3c\xd3"
"\x47\xde\x75\x0c\x80\x17\xae\x22"
"\xb9\x50\xe7\x5b\xf2\x89\x20\x94"
"\x2b\xc2\x36\xcd\x64\xfb\x6f\x06"
"\x9d\x11\xa8\x3f\xd6\x4a\xe1\x78"
"\x0f\x83\x1a\xb1\x25\xbc\x53\xea"
"\x5e\xf5\x8c\x00\x97\x2e\xc5\x39"
"\xd0\x67\xfe\x72\x09\xa0\x14\xab"
"\x42\xd9\x4d\xe4\x7b\x12\x86\x1d"
"\xb4\x28\xbf\x56\xed\x61\xf8\x8f"
"\x03\x9a\x31\xc8\x3c\xd3\x6a\x01"
"\x75\x0c\xa3\x17\xae\x45\xdc\x50"
"\xe7\x7e\x15\x89\x20\xb7\x2b\xc2"
"\x59\xf0\x64\xfb\x92\x06\x9d\x34"
"\xcb\x3f\xd6\x6d\x04\x78\x0f\xa6"
"\x1a\xb1\x48\xdf\x53\xea\x81\x18"
"\x8c\x23\xba\x2e\xc5\x5c\xf3\x67"
"\xfe\x95\x09\xa0\x37\xce\x42\xd9"
"\x70\x07\x7b\x12\xa9\x1d\xb4\x4b"
"\xe2\x56\xed\x84\x1b\x8f\x26\xbd"
"\x31\xc8\x5f\xf6\x6a\x01\x98\x0c"
"\xa3\x3a\xd1\x45\xdc\x73\x0a\x7e"
"\x15\xac\x20\xb7\x4e\xe5\x59\xf0"
"\x87\x1e\x92\x29\xc0\x34\xcb\x62"
"\xf9\x6d\x04\x9b\x0f\xa6\x3d\xd4"
"\x48\xdf\x76\x0d\x81\x18\xaf\x23"
"\xba\x51\xe8\x5c\xf3\x8a\x21\x95"
"\x2c\xc3\x37\xce\x65\xfc\x70\x07"
"\x9e\x12\xa9\x40\xd7\x4b\xe2\x79"
"\x10\x84\x1b\xb2\x26\xbd\x54\xeb"
"\x5f\xf6\x8d\x01\x98\x2f\xc6\x3a"
"\xd1\x68\xff\x73\x0a\xa1\x15\xac"
"\x43\xda\x4e\xe5\x7c\x13\x87\x1e"
"\xb5\x29\xc0\x57\xee\x62\xf9\x90"
"\x04\x9b\x32\xc9\x3d\xd4\x6b\x02"
"\x76\x0d\xa4\x18\xaf\x46\xdd\x51"
"\xe8\x7f\x16\x8a\x21\xb8\x2c\xc3"
"\x5a\xf1\x65\xfc\x93\x07\x9e\x35"
"\xcc\x40\xd7\x6e\x05\x79\x10\xa7"
"\x1b\xb2\x49\xe0\x54\xeb\x82\x19"
"\x8d\x24\xbb\x2f\xc6\x5d\xf4\x68"
"\xff\x96\x0a\xa1\x38\xcf\x43\xda"
"\x71\x08\x7c\x13\xaa\x1e\xb5\x4c"
"\xe3\x57\xee\x85\x1c\x90\x27\xbe"
"\x32\xc9\x60\xf7\x6b\x02\x99\x0d"
"\xa4\x3b\xd2\x46\xdd\x74\x0b\x7f"
"\x16\xad\x21\xb8\x4f\xe6\x5a\xf1"
"\x88\x1f\x93\x2a\xc1\x35\xcc\x63"
"\xfa\x6e\x05\x9c\x10\xa7\x3e\xd5"
"\x49\xe0\x77\x0e\x82\x19\xb0\x24"
"\xbb\x52\xe9\x5d\xf4\x8b\x22\x96"
"\x2d\xc4\x38\xcf\x66\xfd\x71\x08"
"\x9f\x13\xaa\x41\xd8\x4c\xe3\x7a"
"\x11\x85\x1c\xb3\x27\xbe\x55\xec"
"\x60\xf7\x8e\x02\x99\x30\xc7\x3b"
"\xd2\x69\x00\x74\x0b\xa2\x16\xad"
"\x44\xdb\x4f\xe6\x7d\x14\x88\x1f"
"\xb6\x2a\xc1\x58\xef\x63\xfa\x91"
"\x05\x9c\x33\xca\x3e\xd5\x6c\x03"
"\x77\x0e\xa5\x19\xb0\x47\xde\x52"
"\xe9\x80\x17\x8b\x22\xb9\x2d\xc4"
"\x5b\xf2\x66\xfd\x94\x08\x9f\x36"
"\xcd\x41\xd8\x6f\x06\x7a\x11\xa8"
"\x1c\xb3\x4a\xe1\x55\xec\x83\x1a"
"\x8e\x25\xbc\x30\xc7\x5e\xf5\x69"
"\x00\x97\x0b\xa2\x39\xd0\x44\xdb"
"\x72\x09\x7d\x14\xab\x1f\xb6\x4d"
"\xe4\x58\xef\x86\x1d\x91\x28\xbf"
"\x33\xca\x61\xf8\x6c\x03\x9a\x0e"
"\xa5\x3c\xd3\x47\xde\x75\x0c\x80"
"\x17\xae\x22\xb9\x50\xe7\x5b\xf2"
"\x89\x20\x94\x2b\xc2\x36\xcd\x64"
"\xfb\x6f\x06\x9d\x11\xa8\x3f\xd6"
"\x4a\xe1\x78\x0f\x83\x1a\xb1\x25"
"\xbc\x53\xea\x5e\xf5\x8c\x00\x97"
"\x2e\xc5\x39\xd0\x67\xfe\x72\x09"
"\xa0\x14\xab\x42\xd9\x4d\xe4\x7b"
"\x12\x86\x1d\xb4\x28\xbf\x56\xed"
"\x61\xf8\x8f\x03\x9a\x31\xc8\x3c"
"\xd3\x6a\x01\x75\x0c\xa3\x17\xae"
"\x45\xdc\x50\xe7\x7e\x15\x89\x20"
"\xb7\x2b\xc2\x59\xf0\x64\xfb\x92"
"\x06\x9d\x34\xcb\x3f\xd6\x6d\x04"
"\x78\x0f\xa6\x1a\xb1\x48\xdf\x53"
"\xea\x81\x18\x8c\x23\xba\x2e\xc5"
"\x5c\xf3\x67\xfe\x95\x09\xa0\x37"
"\xce\x42\xd9\x70\x07\x7b\x12\xa9"
"\x1d\xb4\x4b\xe2\x56\xed\x84\x1b"
"\x8f\x26\xbd\x31\xc8\x5f\xf6\x6a"
"\x01\x98\x0c\xa3\x3a\xd1\x45\xdc"
"\x73\x0a\x7e\x15\xac\x20\xb7\x4e"
"\xe5\x59\xf0\x87\x1e\x92\x29\xc0"
"\x34\xcb\x62\xf9\x6d\x04\x9b\x0f"
"\xa6\x3d\xd4\x48\xdf\x76\x0d\x81"
"\x18\xaf\x23\xba\x51\xe8\x5c\xf3"
"\x8a\x21\x95\x2c\xc3\x37\xce\x65"
"\xfc\x70\x07\x9e\x12\xa9\x40\xd7"
"\x4b\xe2\x79\x10\x84\x1b\xb2\x26"
"\xbd\x54\xeb\x5f\xf6\x8d\x01\x98"
"\x2f\xc6\x3a\xd1\x68\xff\x73\x0a"
"\xa1\x15\xac\x43\xda\x4e\xe5\x7c"
"\x13\x87\x1e\xb5\x29\xc0\x57\xee"
"\x62\xf9\x90\x04\x9b\x32\xc9\x3d"
"\xd4\x6b\x02\x76\x0d\xa4\x18\xaf"
"\x46\xdd\x51\xe8\x7f\x16\x8a\x21"
"\xb8\x2c\xc3\x5a\xf1\x65\xfc\x93"
"\x07\x9e\x35\xcc\x40\xd7\x6e\x05"
"\x79\x10\xa7\x1b\xb2\x49\xe0\x54"
"\xeb\x82\x19\x8d\x24\xbb\x2f\xc6"
"\x5d\xf4\x68\xff\x96\x0a\xa1\x38"
"\xcf\x43\xda\x71\x08\x7c\x13\xaa"
"\x1e\xb5\x4c\xe3\x57\xee\x85\x1c"
"\x90\x27\xbe\x32\xc9\x60\xf7\x6b"
"\x02\x99\x0d\xa4\x3b\xd2\x46\xdd"
"\x74\x0b\x7f\x16\xad\x21\xb8\x4f"
"\xe6\x5a\xf1\x88\x1f\x93\x2a\xc1"
"\x35\xcc\x63\xfa\x6e\x05\x9c\x10"
"\xa7\x3e\xd5\x49\xe0\x77\x0e\x82"
"\x19\xb0\x24\xbb\x52\xe9\x5d\xf4"
"\x8b\x22\x96\x2d\xc4\x38\xcf\x66"
"\xfd\x71\x08\x9f\x13\xaa\x41\xd8"
"\x4c\xe3\x7a\x11\x85\x1c\xb3\x27"
"\xbe\x55\xec\x60\xf7\x8e\x02\x99"
"\x30\xc7\x3b\xd2\x69\x00\x74\x0b"
"\xa2\x16\xad\x44\xdb\x4f\xe6\x7d"
"\x14\x88\x1f\xb6\x2a\xc1\x58\xef"
"\x63\xfa\x91\x05\x9c\x33\xca\x3e"
"\xd5\x6c\x03\x77\x0e\xa5\x19\xb0"
"\x47\xde\x52\xe9\x80\x17\x8b\x22"
"\xb9\x2d\xc4\x5b\xf2\x66\xfd\x94"
"\x08\x9f\x36\xcd\x41\xd8\x6f\x06"
"\x7a\x11\xa8\x1c\xb3\x4a\xe1\x55"
"\xec\x83\x1a\x8e\x25\xbc\x30\xc7"
"\x5e\xf5\x69\x00\x97\x0b\xa2\x39"
"\xd0\x44\xdb\x72\x09\x7d\x14\xab"
"\x1f\xb6\x4d\xe4\x58\xef\x86\x1d"
"\x91\x28\xbf\x33\xca\x61\xf8\x6c"
"\x03\x9a\x0e\xa5\x3c\xd3\x47\xde"
"\x75\x0c\x80\x17\xae\x22\xb9\x50"
"\xe7\x5b\xf2\x89\x20\x94\x2b\xc2"
"\x36\xcd\x64\xfb\x6f\x06\x9d\x11"
"\xa8\x3f\xd6\x4a\xe1\x78\x0f\x83"
"\x1a\xb1\x25\xbc\x53\xea\x5e\xf5"
"\x8c\x00\x97\x2e\xc5\x39\xd0\x67"
"\xfe\x72\x09\xa0\x14\xab\x42\xd9"
"\x4d\xe4\x7b\x12\x86\x1d\xb4\x28"
"\xbf\x56\xed\x61\xf8\x8f\x03\x9a"
"\x31\xc8\x3c\xd3\x6a\x01\x75\x0c"
"\xa3\x17\xae\x45\xdc\x50\xe7\x7e"
"\x15\x89\x20\xb7\x2b\xc2\x59\xf0"
"\x64\xfb\x92\x06\x9d\x34\xcb\x3f"
"\xd6\x6d\x04\x78\x0f\xa6\x1a\xb1"
"\x48\xdf\x53\xea\x81\x18\x8c\x23"
"\xba\x2e\xc5\x5c\xf3\x67\xfe\x95"
"\x09\xa0\x37\xce\x42\xd9\x70\x07"
"\x7b\x12\xa9\x1d\xb4\x4b\xe2\x56"
"\xed\x84\x1b\x8f\x26\xbd\x31\xc8"
"\x5f\xf6\x6a\x01\x98\x0c\xa3\x3a"
"\xd1\x45\xdc\x73\x0a\x7e\x15\xac"
"\x20\xb7\x4e\xe5\x59\xf0\x87\x1e"
"\x92\x29\xc0\x34\xcb\x62\xf9\x6d"
"\x04\x9b\x0f\xa6\x3d\xd4\x48\xdf"
"\x76\x0d\x81\x18\xaf\x23\xba\x51"
"\xe8\x5c\xf3\x8a\x21\x95\x2c\xc3"
"\x37\xce\x65\xfc\x70\x07\x9e\x12"
"\xa9\x40\xd7\x4b\xe2\x79\x10\x84"
"\x1b\xb2\x26\xbd\x54\xeb\x5f\xf6"
"\x8d\x01\x98\x2f\xc6\x3a\xd1\x68"
"\xff\x73\x0a\xa1\x15\xac\x43\xda"
"\x4e\xe5\x7c\x13\x87\x1e\xb5\x29"
"\xc0\x57\xee\x62\xf9\x90\x04\x9b"
"\x32\xc9\x3d\xd4\x6b\x02\x76\x0d"
"\xa4\x18\xaf\x46\xdd\x51\xe8\x7f"
"\x16\x8a\x21\xb8\x2c\xc3\x5a\xf1"
"\x65\xfc\x93\x07\x9e\x35\xcc\x40"
"\xd7\x6e\x05\x79\x10\xa7\x1b\xb2"
"\x49\xe0\x54\xeb\x82\x19\x8d\x24"
"\xbb\x2f\xc6\x5d\xf4\x68\xff\x96"
"\x0a\xa1\x38\xcf\x43\xda\x71\x08"
"\x7c\x13\xaa\x1e\xb5\x4c\xe3\x57"
"\xee\x85\x1c\x90\x27\xbe\x32\xc9"
"\x60\xf7\x6b\x02\x99\x0d\xa4\x3b"
"\xd2\x46\xdd\x74\x0b\x7f\x16\xad"
"\x21\xb8\x4f\xe6\x5a\xf1\x88\x1f"
"\x93\x2a\xc1\x35\xcc\x63\xfa\x6e"
"\x05\x9c\x10\xa7\x3e\xd5\x49\xe0"
"\x77\x0e\x82\x19\xb0\x24\xbb\x52"
"\xe9\x5d\xf4\x8b\x22\x96\x2d\xc4"
"\x38\xcf\x66\xfd\x71\x08\x9f\x13"
"\xaa\x41\xd8\x4c\xe3\x7a\x11\x85"
"\x1c\xb3\x27\xbe\x55\xec\x60\xf7"
"\x8e\x02\x99\x30\xc7\x3b\xd2\x69"
"\x00\x74\x0b\xa2\x16\xad\x44\xdb"
"\x4f\xe6\x7d\x14\x88\x1f\xb6\x2a"
"\xc1\x58\xef\x63\xfa\x91\x05\x9c"
"\x33\xca\x3e\xd5\x6c\x03\x77\x0e"
"\xa5\x19\xb0\x47\xde\x52\xe9\x80"
"\x17\x8b\x22\xb9\x2d\xc4\x5b\xf2"
"\x66\xfd\x94\x08\x9f\x36\xcd\x41"
"\xd8\x6f\x06\x7a\x11\xa8\x1c\xb3"
"\x4a\xe1\x55\xec\x83\x1a\x8e\x25"
"\xbc\x30\xc7\x5e\xf5\x69\x00\x97"
"\x0b\xa2\x39\xd0\x44\xdb\x72\x09"
"\x7d\x14\xab\x1f\xb6\x4d\xe4\x58"
"\xef\x86\x1d\x91\x28\xbf\x33\xca"
"\x61\xf8\x6c\x03\x9a\x0e\xa5\x3c"
"\xd3\x47\xde\x75\x0c\x80\x17\xae"
"\x22\xb9\x50\xe7\x5b\xf2\x89\x20"
"\x94\x2b\xc2\x36\xcd\x64\xfb\x6f"
"\x06\x9d\x11\xa8\x3f\xd6\x4a\xe1"
"\x78\x0f\x83\x1a\xb1\x25\xbc\x53"
"\xea\x5e\xf5\x8c\x00\x97\x2e\xc5"
"\x39\xd0\x67\xfe\x72\x09\xa0\x14"
"\xab\x42\xd9\x4d\xe4\x7b\x12\x86"
"\x1d\xb4\x28\xbf\x56\xed\x61\xf8"
"\x8f\x03\x9a\x31\xc8\x3c\xd3\x6a"
"\x01\x75\x0c\xa3\x17\xae\x45\xdc"
"\x50\xe7\x7e\x15\x89\x20\xb7\x2b"
"\xc2\x59\xf0\x64\xfb\x92\x06\x9d"
"\x34\xcb\x3f\xd6\x6d\x04\x78\x0f"
"\xa6\x1a\xb1\x48\xdf\x53\xea\x81"
"\x18\x8c\x23\xba\x2e\xc5\x5c\xf3"
"\x67\xfe\x95\x09\xa0\x37\xce\x42"
"\xd9\x70\x07\x7b\x12\xa9\x1d\xb4"
"\x4b\xe2\x56\xed\x84\x1b\x8f\x26"
"\xbd\x31\xc8\x5f\xf6\x6a\x01\x98",
.psize = 2048,
.digest = (u8 *)(u16 []){ 0x23ca },
}
};
/*
* Streebog test vectors from RFC 6986 and GOST R 34.11-2012
*/

View file

@ -4,9 +4,6 @@
#include <linux/types.h>
#define CRC_T10DIF_DIGEST_SIZE 2
#define CRC_T10DIF_BLOCK_SIZE 1
u16 crc_t10dif_arch(u16 crc, const u8 *p, size_t len);
u16 crc_t10dif_generic(u16 crc, const u8 *p, size_t len);

View file

@ -46,7 +46,6 @@ static void handle_kick_signal(int sig, siginfo_t *info, void *context)
}
static char *drivers[] = {
"crct10dif-arm64",
"sha1-ce",
"sha224-arm64",
"sha224-arm64-neon",