Skip to content

Commit 9163042

Browse files
committed
Disabled vpsm4_cbc and vpsm4_ex_cbc in cipher_sm4_hw.c.
1 parent a6ddc11 commit 9163042

2 files changed

Lines changed: 6 additions & 19 deletions

File tree

include/crypto/sm4_platform.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,10 @@ extern unsigned int OPENSSL_arm_midr;
1818
static inline int vpsm4_capable(void)
1919
{
2020
return (OPENSSL_armcap_P & ARMV7_NEON);
21-
//return (OPENSSL_armcap_P & ARMV8_CPUID) &&
22-
// (MIDR_IS_CPU_MODEL(OPENSSL_arm_midr, ARM_CPU_IMP_ARM, ARM_CPU_PART_V1) ||
23-
// MIDR_IS_CPU_MODEL(OPENSSL_arm_midr, ARM_CPU_IMP_ARM, ARM_CPU_PART_N1));
2421
}
2522
static inline int vpsm4_ex_capable(void)
2623
{
2724
return (OPENSSL_armcap_P & (ARMV7_NEON | ARMV8_AES));
28-
//return (OPENSSL_armcap_P & ARMV8_CPUID) &&
29-
// (MIDR_IS_CPU_MODEL(OPENSSL_arm_midr, HISI_CPU_IMP, HISI_CPU_PART_KP920));
3025
}
3126
# if defined(VPSM4_ASM)
3227
# define VPSM4_CAPABLE vpsm4_capable()

providers/implementations/ciphers/cipher_sm4_hw.c

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)