mirror of
https://github.com/torvalds/linux.git
synced 2025-11-03 18:20:25 +02:00
crypto: lib/chacha - remove unused arch-specific init support
All implementations of chacha_init_arch() just call chacha_init_generic(), so it is pointless. Just delete it, and replace chacha_init() with what was previously chacha_init_generic(). Signed-off-by: Eric Biggers <ebiggers@google.com> Acked-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
fce8b8d598
commit
ca17aa6640
9 changed files with 16 additions and 61 deletions
|
|
@ -76,12 +76,6 @@ void hchacha_block_arch(const u32 *state, u32 *stream, int nrounds)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(hchacha_block_arch);
|
EXPORT_SYMBOL(hchacha_block_arch);
|
||||||
|
|
||||||
void chacha_init_arch(u32 *state, const u32 *key, const u8 *iv)
|
|
||||||
{
|
|
||||||
chacha_init_generic(state, key, iv);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(chacha_init_arch);
|
|
||||||
|
|
||||||
void chacha_crypt_arch(u32 *state, u8 *dst, const u8 *src, unsigned int bytes,
|
void chacha_crypt_arch(u32 *state, u8 *dst, const u8 *src, unsigned int bytes,
|
||||||
int nrounds)
|
int nrounds)
|
||||||
{
|
{
|
||||||
|
|
@ -116,7 +110,7 @@ static int chacha_stream_xor(struct skcipher_request *req,
|
||||||
|
|
||||||
err = skcipher_walk_virt(&walk, req, false);
|
err = skcipher_walk_virt(&walk, req, false);
|
||||||
|
|
||||||
chacha_init_generic(state, ctx->key, iv);
|
chacha_init(state, ctx->key, iv);
|
||||||
|
|
||||||
while (walk.nbytes > 0) {
|
while (walk.nbytes > 0) {
|
||||||
unsigned int nbytes = walk.nbytes;
|
unsigned int nbytes = walk.nbytes;
|
||||||
|
|
@ -166,7 +160,7 @@ static int do_xchacha(struct skcipher_request *req, bool neon)
|
||||||
u32 state[16];
|
u32 state[16];
|
||||||
u8 real_iv[16];
|
u8 real_iv[16];
|
||||||
|
|
||||||
chacha_init_generic(state, ctx->key, req->iv);
|
chacha_init(state, ctx->key, req->iv);
|
||||||
|
|
||||||
if (!IS_ENABLED(CONFIG_KERNEL_MODE_NEON) || !neon) {
|
if (!IS_ENABLED(CONFIG_KERNEL_MODE_NEON) || !neon) {
|
||||||
hchacha_block_arm(state, subctx.key, ctx->nrounds);
|
hchacha_block_arm(state, subctx.key, ctx->nrounds);
|
||||||
|
|
|
||||||
|
|
@ -74,12 +74,6 @@ void hchacha_block_arch(const u32 *state, u32 *stream, int nrounds)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(hchacha_block_arch);
|
EXPORT_SYMBOL(hchacha_block_arch);
|
||||||
|
|
||||||
void chacha_init_arch(u32 *state, const u32 *key, const u8 *iv)
|
|
||||||
{
|
|
||||||
chacha_init_generic(state, key, iv);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(chacha_init_arch);
|
|
||||||
|
|
||||||
void chacha_crypt_arch(u32 *state, u8 *dst, const u8 *src, unsigned int bytes,
|
void chacha_crypt_arch(u32 *state, u8 *dst, const u8 *src, unsigned int bytes,
|
||||||
int nrounds)
|
int nrounds)
|
||||||
{
|
{
|
||||||
|
|
@ -110,7 +104,7 @@ static int chacha_neon_stream_xor(struct skcipher_request *req,
|
||||||
|
|
||||||
err = skcipher_walk_virt(&walk, req, false);
|
err = skcipher_walk_virt(&walk, req, false);
|
||||||
|
|
||||||
chacha_init_generic(state, ctx->key, iv);
|
chacha_init(state, ctx->key, iv);
|
||||||
|
|
||||||
while (walk.nbytes > 0) {
|
while (walk.nbytes > 0) {
|
||||||
unsigned int nbytes = walk.nbytes;
|
unsigned int nbytes = walk.nbytes;
|
||||||
|
|
@ -151,7 +145,7 @@ static int xchacha_neon(struct skcipher_request *req)
|
||||||
u32 state[16];
|
u32 state[16];
|
||||||
u8 real_iv[16];
|
u8 real_iv[16];
|
||||||
|
|
||||||
chacha_init_generic(state, ctx->key, req->iv);
|
chacha_init(state, ctx->key, req->iv);
|
||||||
hchacha_block_arch(state, subctx.key, ctx->nrounds);
|
hchacha_block_arch(state, subctx.key, ctx->nrounds);
|
||||||
subctx.nrounds = ctx->nrounds;
|
subctx.nrounds = ctx->nrounds;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,12 +20,6 @@ EXPORT_SYMBOL(chacha_crypt_arch);
|
||||||
asmlinkage void hchacha_block_arch(const u32 *state, u32 *stream, int nrounds);
|
asmlinkage void hchacha_block_arch(const u32 *state, u32 *stream, int nrounds);
|
||||||
EXPORT_SYMBOL(hchacha_block_arch);
|
EXPORT_SYMBOL(hchacha_block_arch);
|
||||||
|
|
||||||
void chacha_init_arch(u32 *state, const u32 *key, const u8 *iv)
|
|
||||||
{
|
|
||||||
chacha_init_generic(state, key, iv);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(chacha_init_arch);
|
|
||||||
|
|
||||||
static int chacha_mips_stream_xor(struct skcipher_request *req,
|
static int chacha_mips_stream_xor(struct skcipher_request *req,
|
||||||
const struct chacha_ctx *ctx, const u8 *iv)
|
const struct chacha_ctx *ctx, const u8 *iv)
|
||||||
{
|
{
|
||||||
|
|
@ -35,7 +29,7 @@ static int chacha_mips_stream_xor(struct skcipher_request *req,
|
||||||
|
|
||||||
err = skcipher_walk_virt(&walk, req, false);
|
err = skcipher_walk_virt(&walk, req, false);
|
||||||
|
|
||||||
chacha_init_generic(state, ctx->key, iv);
|
chacha_init(state, ctx->key, iv);
|
||||||
|
|
||||||
while (walk.nbytes > 0) {
|
while (walk.nbytes > 0) {
|
||||||
unsigned int nbytes = walk.nbytes;
|
unsigned int nbytes = walk.nbytes;
|
||||||
|
|
@ -67,7 +61,7 @@ static int xchacha_mips(struct skcipher_request *req)
|
||||||
u32 state[16];
|
u32 state[16];
|
||||||
u8 real_iv[16];
|
u8 real_iv[16];
|
||||||
|
|
||||||
chacha_init_generic(state, ctx->key, req->iv);
|
chacha_init(state, ctx->key, req->iv);
|
||||||
|
|
||||||
hchacha_block(state, subctx.key, ctx->nrounds);
|
hchacha_block(state, subctx.key, ctx->nrounds);
|
||||||
subctx.nrounds = ctx->nrounds;
|
subctx.nrounds = ctx->nrounds;
|
||||||
|
|
|
||||||
|
|
@ -57,12 +57,6 @@ void hchacha_block_arch(const u32 *state, u32 *stream, int nrounds)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(hchacha_block_arch);
|
EXPORT_SYMBOL(hchacha_block_arch);
|
||||||
|
|
||||||
void chacha_init_arch(u32 *state, const u32 *key, const u8 *iv)
|
|
||||||
{
|
|
||||||
chacha_init_generic(state, key, iv);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(chacha_init_arch);
|
|
||||||
|
|
||||||
void chacha_crypt_arch(u32 *state, u8 *dst, const u8 *src, unsigned int bytes,
|
void chacha_crypt_arch(u32 *state, u8 *dst, const u8 *src, unsigned int bytes,
|
||||||
int nrounds)
|
int nrounds)
|
||||||
{
|
{
|
||||||
|
|
@ -95,7 +89,7 @@ static int chacha_p10_stream_xor(struct skcipher_request *req,
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
chacha_init_generic(state, ctx->key, iv);
|
chacha_init(state, ctx->key, iv);
|
||||||
|
|
||||||
while (walk.nbytes > 0) {
|
while (walk.nbytes > 0) {
|
||||||
unsigned int nbytes = walk.nbytes;
|
unsigned int nbytes = walk.nbytes;
|
||||||
|
|
@ -137,7 +131,7 @@ static int xchacha_p10(struct skcipher_request *req)
|
||||||
u32 state[16];
|
u32 state[16];
|
||||||
u8 real_iv[16];
|
u8 real_iv[16];
|
||||||
|
|
||||||
chacha_init_generic(state, ctx->key, req->iv);
|
chacha_init(state, ctx->key, req->iv);
|
||||||
hchacha_block_arch(state, subctx.key, ctx->nrounds);
|
hchacha_block_arch(state, subctx.key, ctx->nrounds);
|
||||||
subctx.nrounds = ctx->nrounds;
|
subctx.nrounds = ctx->nrounds;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ static int chacha20_s390(struct skcipher_request *req)
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
rc = skcipher_walk_virt(&walk, req, false);
|
rc = skcipher_walk_virt(&walk, req, false);
|
||||||
chacha_init_generic(state, ctx->key, req->iv);
|
chacha_init(state, ctx->key, req->iv);
|
||||||
|
|
||||||
while (walk.nbytes > 0) {
|
while (walk.nbytes > 0) {
|
||||||
nbytes = walk.nbytes;
|
nbytes = walk.nbytes;
|
||||||
|
|
@ -69,12 +69,6 @@ void hchacha_block_arch(const u32 *state, u32 *stream, int nrounds)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(hchacha_block_arch);
|
EXPORT_SYMBOL(hchacha_block_arch);
|
||||||
|
|
||||||
void chacha_init_arch(u32 *state, const u32 *key, const u8 *iv)
|
|
||||||
{
|
|
||||||
chacha_init_generic(state, key, iv);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(chacha_init_arch);
|
|
||||||
|
|
||||||
void chacha_crypt_arch(u32 *state, u8 *dst, const u8 *src,
|
void chacha_crypt_arch(u32 *state, u8 *dst, const u8 *src,
|
||||||
unsigned int bytes, int nrounds)
|
unsigned int bytes, int nrounds)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -133,12 +133,6 @@ void hchacha_block_arch(const u32 *state, u32 *stream, int nrounds)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(hchacha_block_arch);
|
EXPORT_SYMBOL(hchacha_block_arch);
|
||||||
|
|
||||||
void chacha_init_arch(u32 *state, const u32 *key, const u8 *iv)
|
|
||||||
{
|
|
||||||
chacha_init_generic(state, key, iv);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(chacha_init_arch);
|
|
||||||
|
|
||||||
void chacha_crypt_arch(u32 *state, u8 *dst, const u8 *src, unsigned int bytes,
|
void chacha_crypt_arch(u32 *state, u8 *dst, const u8 *src, unsigned int bytes,
|
||||||
int nrounds)
|
int nrounds)
|
||||||
{
|
{
|
||||||
|
|
@ -169,7 +163,7 @@ static int chacha_simd_stream_xor(struct skcipher_request *req,
|
||||||
|
|
||||||
err = skcipher_walk_virt(&walk, req, false);
|
err = skcipher_walk_virt(&walk, req, false);
|
||||||
|
|
||||||
chacha_init_generic(state, ctx->key, iv);
|
chacha_init(state, ctx->key, iv);
|
||||||
|
|
||||||
while (walk.nbytes > 0) {
|
while (walk.nbytes > 0) {
|
||||||
unsigned int nbytes = walk.nbytes;
|
unsigned int nbytes = walk.nbytes;
|
||||||
|
|
@ -211,7 +205,7 @@ static int xchacha_simd(struct skcipher_request *req)
|
||||||
struct chacha_ctx subctx;
|
struct chacha_ctx subctx;
|
||||||
u8 real_iv[16];
|
u8 real_iv[16];
|
||||||
|
|
||||||
chacha_init_generic(state, ctx->key, req->iv);
|
chacha_init(state, ctx->key, req->iv);
|
||||||
|
|
||||||
if (req->cryptlen > CHACHA_BLOCK_SIZE && crypto_simd_usable()) {
|
if (req->cryptlen > CHACHA_BLOCK_SIZE && crypto_simd_usable()) {
|
||||||
kernel_fpu_begin();
|
kernel_fpu_begin();
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ static int chacha_stream_xor(struct skcipher_request *req,
|
||||||
|
|
||||||
err = skcipher_walk_virt(&walk, req, false);
|
err = skcipher_walk_virt(&walk, req, false);
|
||||||
|
|
||||||
chacha_init_generic(state, ctx->key, iv);
|
chacha_init(state, ctx->key, iv);
|
||||||
|
|
||||||
while (walk.nbytes > 0) {
|
while (walk.nbytes > 0) {
|
||||||
unsigned int nbytes = walk.nbytes;
|
unsigned int nbytes = walk.nbytes;
|
||||||
|
|
@ -54,7 +54,7 @@ static int crypto_xchacha_crypt(struct skcipher_request *req)
|
||||||
u8 real_iv[16];
|
u8 real_iv[16];
|
||||||
|
|
||||||
/* Compute the subkey given the original key and first 128 nonce bits */
|
/* Compute the subkey given the original key and first 128 nonce bits */
|
||||||
chacha_init_generic(state, ctx->key, req->iv);
|
chacha_init(state, ctx->key, req->iv);
|
||||||
hchacha_block_generic(state, subctx.key, ctx->nrounds);
|
hchacha_block_generic(state, subctx.key, ctx->nrounds);
|
||||||
subctx.nrounds = ctx->nrounds;
|
subctx.nrounds = ctx->nrounds;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -62,8 +62,7 @@ static inline void chacha_init_consts(u32 *state)
|
||||||
state[3] = CHACHA_CONSTANT_TE_K;
|
state[3] = CHACHA_CONSTANT_TE_K;
|
||||||
}
|
}
|
||||||
|
|
||||||
void chacha_init_arch(u32 *state, const u32 *key, const u8 *iv);
|
static inline void chacha_init(u32 *state, const u32 *key, const u8 *iv)
|
||||||
static inline void chacha_init_generic(u32 *state, const u32 *key, const u8 *iv)
|
|
||||||
{
|
{
|
||||||
chacha_init_consts(state);
|
chacha_init_consts(state);
|
||||||
state[4] = key[0];
|
state[4] = key[0];
|
||||||
|
|
@ -80,14 +79,6 @@ static inline void chacha_init_generic(u32 *state, const u32 *key, const u8 *iv)
|
||||||
state[15] = get_unaligned_le32(iv + 12);
|
state[15] = get_unaligned_le32(iv + 12);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void chacha_init(u32 *state, const u32 *key, const u8 *iv)
|
|
||||||
{
|
|
||||||
if (IS_ENABLED(CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA))
|
|
||||||
chacha_init_arch(state, key, iv);
|
|
||||||
else
|
|
||||||
chacha_init_generic(state, key, iv);
|
|
||||||
}
|
|
||||||
|
|
||||||
void chacha_crypt_arch(u32 *state, u8 *dst, const u8 *src,
|
void chacha_crypt_arch(u32 *state, u8 *dst, const u8 *src,
|
||||||
unsigned int bytes, int nrounds);
|
unsigned int bytes, int nrounds);
|
||||||
void chacha_crypt_generic(u32 *state, u8 *dst, const u8 *src,
|
void chacha_crypt_generic(u32 *state, u8 *dst, const u8 *src,
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ static int test_lib_chacha(u8 *revert, u8 *cipher, u8 *plain)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Encrypt */
|
/* Encrypt */
|
||||||
chacha_init_arch(chacha_state, (u32*)key, iv);
|
chacha_init(chacha_state, (u32 *)key, iv);
|
||||||
|
|
||||||
start = ktime_get_ns();
|
start = ktime_get_ns();
|
||||||
chacha_crypt_arch(chacha_state, cipher, plain, data_size, 20);
|
chacha_crypt_arch(chacha_state, cipher, plain, data_size, 20);
|
||||||
|
|
@ -81,7 +81,7 @@ static int test_lib_chacha(u8 *revert, u8 *cipher, u8 *plain)
|
||||||
pr_info("lib encryption took: %lld nsec", end - start);
|
pr_info("lib encryption took: %lld nsec", end - start);
|
||||||
|
|
||||||
/* Decrypt */
|
/* Decrypt */
|
||||||
chacha_init_arch(chacha_state, (u32 *)key, iv);
|
chacha_init(chacha_state, (u32 *)key, iv);
|
||||||
|
|
||||||
start = ktime_get_ns();
|
start = ktime_get_ns();
|
||||||
chacha_crypt_arch(chacha_state, revert, cipher, data_size, 20);
|
chacha_crypt_arch(chacha_state, revert, cipher, data_size, 20);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue