diff --git a/crypto/evp/e_sms4_xts.c b/crypto/evp/e_sms4_xts.c index 3e2ddf43..523d6727 100644 --- a/crypto/evp/e_sms4_xts.c +++ b/crypto/evp/e_sms4_xts.c @@ -107,29 +107,22 @@ static int sms4_xts_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr) static int sms4_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, const unsigned char *iv, int enc) { - EVP_SMS4_XTS_CTX *xctx = EVP_C_DATA(EVP_SMS4_XTS_CTX,ctx); + EVP_SMS4_XTS_CTX *xctx = EVP_C_DATA(EVP_SMS4_XTS_CTX, ctx); if (!iv && !key) return 1; - if (key) - do { - xctx->stream = NULL; - /* key_len is two SMS4 keys */ - (void)0; /* terminate potentially open 'else' */ - - if (enc) { - sms4_set_encrypt_key(&xctx->ks1.ks, key); - xctx->xts.block1 = (block128_f)sms4_encrypt; - } else { - sms4_set_decrypt_key(&xctx->ks1.ks, key); - xctx->xts.block1 = (block128_f)sms4_encrypt; - } - - sms4_set_encrypt_key(&xctx->ks2.ks, key + EVP_CIPHER_CTX_key_length(ctx)/2); - xctx->xts.block2 = (block128_f)sms4_encrypt; - - xctx->xts.key1 = &xctx->ks1; - } while (0); + if (key) { + xctx->stream = NULL; + if (enc) { + sms4_set_encrypt_key(&xctx->ks1.ks, key); + } else { + sms4_set_decrypt_key(&xctx->ks1.ks, key); + } + sms4_set_encrypt_key(&xctx->ks2.ks, key + SMS4_KEY_LENGTH); + xctx->xts.block1 = (block128_f)sms4_encrypt; + xctx->xts.block2 = (block128_f)sms4_encrypt; + xctx->xts.key1 = &xctx->ks1; + } if (iv) { xctx->xts.key2 = &xctx->ks2; @@ -167,7 +160,7 @@ static int sms4_xts_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, static const EVP_CIPHER sms4_xts = { NID_sms4_xts, SMS4_XTS_BLOCK_SIZE, - SMS4_KEY_LENGTH, + SMS4_KEY_LENGTH * 2, SMS4_IV_LENGTH, SMS4_XTS_FLAGS, sms4_xts_init_key, diff --git a/include/openssl/opensslv.h b/include/openssl/opensslv.h index 29c0a769..1c64de26 100644 --- a/include/openssl/opensslv.h +++ b/include/openssl/opensslv.h @@ -41,9 +41,9 @@ extern "C" { */ # define OPENSSL_VERSION_NUMBER 0x1010004fL # ifdef OPENSSL_FIPS -# define OPENSSL_VERSION_TEXT "GmSSL 2.5.2 - OpenSSL 1.1.0d-fips 18 July 2019" +# define OPENSSL_VERSION_TEXT "GmSSL 2.5.2 - OpenSSL 1.1.0d-fips 1 Aug 2019" # else -# define OPENSSL_VERSION_TEXT "GmSSL 2.5.2 - OpenSSL 1.1.0d 18 July 2019" +# define OPENSSL_VERSION_TEXT "GmSSL 2.5.2 - OpenSSL 1.1.0d 1 Aug 2019" # endif /*-