From 43ed716af9e43959da6fad6744314a03f75b10c6 Mon Sep 17 00:00:00 2001 From: Zhi Guan Date: Wed, 22 Feb 2017 18:22:59 +0800 Subject: [PATCH] add avx2 engine --- engines/e_avx2.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/engines/e_avx2.c b/engines/e_avx2.c index 2f1992fd..20c1479f 100644 --- a/engines/e_avx2.c +++ b/engines/e_avx2.c @@ -108,21 +108,28 @@ static EVP_CIPHER *avx2_sms4_ctr = NULL; static int avx2_sms4_ecb_init(EVP_CIPHER_CTX *ctx, const unsigned char *key, const unsigned char *iv, int enc) { - printf(" %s\n", __FUNCTION__); + if (enc) + sms4_avx2_encrypt_init(ctx->data, key); + else + sms4_avx2_decrypt_init(ctx->data, key); + return 1; } static int avx2_sms4_ecb_do_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inlen) { - printf(" %s\n", __FUNCTION__); - memcpy(out, in, inlen); + while (inlen >= 8 * 16) { + sms4_avx2_encrypt_8blocks(ctx, out, in); + inlen -= 8 * 16; + } + return 1; } static int avx2_sms4_ecb_cleanup(EVP_CIPHER_CTX *ctx) { - printf(" %s\n", __FUNCTION__); + memset(ctx->data, 0, sizeof(sms4_avx2_key)); return 1; }