Update sm4.c

Prevent sm4_cbc_decrypt_blocks in == out
This commit is contained in:
Zhi Guan
2026-06-13 20:12:33 +08:00
parent 54d9cba0ec
commit 8fded4abc7
3 changed files with 5 additions and 3 deletions

View File

@@ -768,7 +768,7 @@ endif()
#
set(CPACK_PACKAGE_NAME "GmSSL")
set(CPACK_PACKAGE_VENDOR "GmSSL develop team")
set(CPACK_PACKAGE_VERSION "3.2.0-dev.1033")
set(CPACK_PACKAGE_VERSION "3.2.0-dev.1034")
set(CPACK_PACKAGE_DESCRIPTION_FILE ${PROJECT_SOURCE_DIR}/README.md)
set(CPACK_NSIS_MODIFY_PATH ON)
include(CPack)

View File

@@ -19,7 +19,7 @@ extern "C" {
// Also update CPACK_PACKAGE_VERSION in CMakeLists.txt
#define GMSSL_VERSION_NUM 30200
#define GMSSL_VERSION_STR "GmSSL 3.2.0-dev.1033"
#define GMSSL_VERSION_STR "GmSSL 3.2.0-dev.1034"
int gmssl_version_num(void);
const char *gmssl_version_str(void);

View File

@@ -191,14 +191,16 @@ void sm4_cbc_decrypt_blocks(const SM4_KEY *key, uint8_t iv[16],
const uint8_t *in, size_t nblocks, uint8_t *out)
{
const uint8_t *piv = iv;
uint8_t next_iv[16];
while (nblocks--) {
size_t i;
memcpy(next_iv, in, 16);
sm4_encrypt(key, in, out);
for (i = 0; i < 16; i++) {
out[i] ^= piv[i];
}
piv = in;
piv = next_iv;
in += 16;
out += 16;
}