On 25 April 2018 at 14:20, Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> wrote: > In preparation of adding support for the SIMD based arm64 implementation > of arm64, SM4 ^^^ > which requires a fallback to non-SIMD code when invoked in > certain contexts, expose the generic SM4 encrypt and decrypt routines > to other drivers. > > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> > --- > crypto/sm4_generic.c | 10 ++++++---- > include/crypto/sm4.h | 3 +++ > 2 files changed, 9 insertions(+), 4 deletions(-) > > diff --git a/crypto/sm4_generic.c b/crypto/sm4_generic.c > index f537a2766c55..c18eebfd5edd 100644 > --- a/crypto/sm4_generic.c > +++ b/crypto/sm4_generic.c > @@ -190,21 +190,23 @@ static void sm4_do_crypt(const u32 *rk, u32 *out, const u32 *in) > > /* encrypt a block of text */ > > -static void sm4_encrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in) > +void crypto_sm4_encrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in) > { > const struct crypto_sm4_ctx *ctx = crypto_tfm_ctx(tfm); > > sm4_do_crypt(ctx->rkey_enc, (u32 *)out, (u32 *)in); > } > +EXPORT_SYMBOL_GPL(crypto_sm4_encrypt); > > /* decrypt a block of text */ > > -static void sm4_decrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in) > +void crypto_sm4_decrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in) > { > const struct crypto_sm4_ctx *ctx = crypto_tfm_ctx(tfm); > > sm4_do_crypt(ctx->rkey_dec, (u32 *)out, (u32 *)in); > } > +EXPORT_SYMBOL_GPL(crypto_sm4_decrypt); > > static struct crypto_alg sm4_alg = { > .cra_name = "sm4", > @@ -219,8 +221,8 @@ static struct crypto_alg sm4_alg = { > .cia_min_keysize = SM4_KEY_SIZE, > .cia_max_keysize = SM4_KEY_SIZE, > .cia_setkey = crypto_sm4_set_key, > - .cia_encrypt = sm4_encrypt, > - .cia_decrypt = sm4_decrypt > + .cia_encrypt = crypto_sm4_encrypt, > + .cia_decrypt = crypto_sm4_decrypt > } > } > }; > diff --git a/include/crypto/sm4.h b/include/crypto/sm4.h > index b64e64d20b28..7afd730d16ff 100644 > --- a/include/crypto/sm4.h > +++ b/include/crypto/sm4.h > @@ -25,4 +25,7 @@ int crypto_sm4_set_key(struct crypto_tfm *tfm, const u8 *in_key, > int crypto_sm4_expand_key(struct crypto_sm4_ctx *ctx, const u8 *in_key, > unsigned int key_len); > > +void crypto_sm4_encrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in); > +void crypto_sm4_decrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in); > + > #endif > -- > 2.17.0 >