@@ -43,26 +43,22 @@ static int cipher_hw_sm4_initkey(PROV_CIPHER_CTX *ctx,
4343 } else
4444#endif
4545#ifdef VPSM4_EX_CAPABLE
46- if (VPSM4_EX_CAPABLE ) {
46+ if (VPSM4_EX_CAPABLE && ( ctx -> mode != EVP_CIPH_CBC_MODE ) ) {
4747 vpsm4_ex_set_encrypt_key (key , ks );
4848 ctx -> block = (block128_f )vpsm4_ex_encrypt ;
4949 ctx -> stream .cbc = NULL ;
50- if (ctx -> mode == EVP_CIPH_CBC_MODE )
51- ctx -> stream .cbc = (cbc128_f )vpsm4_ex_cbc_encrypt ;
52- else if (ctx -> mode == EVP_CIPH_ECB_MODE )
50+ if (ctx -> mode == EVP_CIPH_ECB_MODE )
5351 ctx -> stream .ecb = (ecb128_f )vpsm4_ex_ecb_encrypt ;
5452 else if (ctx -> mode == EVP_CIPH_CTR_MODE )
5553 ctx -> stream .ctr = (ctr128_f )vpsm4_ex_ctr32_encrypt_blocks ;
5654 } else
5755#endif
5856#ifdef VPSM4_CAPABLE
59- if (VPSM4_CAPABLE ) {
57+ if (VPSM4_CAPABLE && ( ctx -> mode != EVP_CIPH_CBC_MODE ) ) {
6058 vpsm4_set_encrypt_key (key , ks );
6159 ctx -> block = (block128_f )vpsm4_encrypt ;
6260 ctx -> stream .cbc = NULL ;
63- if (ctx -> mode == EVP_CIPH_CBC_MODE )
64- ctx -> stream .cbc = (cbc128_f )vpsm4_cbc_encrypt ;
65- else if (ctx -> mode == EVP_CIPH_ECB_MODE )
61+ if (ctx -> mode == EVP_CIPH_ECB_MODE )
6662 ctx -> stream .ecb = (ecb128_f )vpsm4_ecb_encrypt ;
6763 else if (ctx -> mode == EVP_CIPH_CTR_MODE )
6864 ctx -> stream .ctr = (ctr128_f )vpsm4_ctr32_encrypt_blocks ;
@@ -89,23 +85,19 @@ static int cipher_hw_sm4_initkey(PROV_CIPHER_CTX *ctx,
8985 } else
9086#endif
9187#ifdef VPSM4_EX_CAPABLE
92- if (VPSM4_EX_CAPABLE ) {
88+ if (VPSM4_EX_CAPABLE && ( ctx -> mode != EVP_CIPH_CBC_MODE ) ) {
9389 vpsm4_ex_set_decrypt_key (key , ks );
9490 ctx -> block = (block128_f )vpsm4_ex_decrypt ;
9591 ctx -> stream .cbc = NULL ;
96- if (ctx -> mode == EVP_CIPH_CBC_MODE )
97- ctx -> stream .cbc = (cbc128_f )vpsm4_ex_cbc_encrypt ;
9892 else if (ctx -> mode == EVP_CIPH_ECB_MODE )
9993 ctx -> stream .ecb = (ecb128_f )vpsm4_ex_ecb_encrypt ;
10094 } else
10195#endif
10296#ifdef VPSM4_CAPABLE
103- if (VPSM4_CAPABLE ) {
97+ if (VPSM4_CAPABLE && ( ctx -> mode != EVP_CIPH_CBC_MODE ) ) {
10498 vpsm4_set_decrypt_key (key , ks );
10599 ctx -> block = (block128_f )vpsm4_decrypt ;
106100 ctx -> stream .cbc = NULL ;
107- if (ctx -> mode == EVP_CIPH_CBC_MODE )
108- ctx -> stream .cbc = (cbc128_f )vpsm4_cbc_encrypt ;
109101 else if (ctx -> mode == EVP_CIPH_ECB_MODE )
110102 ctx -> stream .ecb = (ecb128_f )vpsm4_ecb_encrypt ;
111103 } else
0 commit comments