EVP_SM4_CBC(3) | Library Functions Manual | EVP_SM4_CBC(3)

# NAME

`EVP_sm4_cbc`, `EVP_sm4_ecb`, `EVP_sm4_cfb`, `EVP_sm4_cfb128`, `EVP_sm4_ofb`, `EVP_sm4_ctr` — EVP SM4 cipher

# SYNOPSIS

library “libcrypto”
`#include <openssl/evp.h>`

const EVP_CIPHER *
`EVP_sm4_cbc`(void);

const EVP_CIPHER *
`EVP_sm4_ecb`(void);

const EVP_CIPHER *
`EVP_sm4_cfb`(void);

const EVP_CIPHER *
`EVP_sm4_cfb128`(void);

const EVP_CIPHER *
`EVP_sm4_ofb`(void);

const EVP_CIPHER *
`EVP_sm4_ctr`(void);

# DESCRIPTION

These functions provide the SM4 blockcipher in the evp(3) framework.

All modes use a key length of 128 bits and act on blocks of 128 bits.

`EVP_sm4_cfb`() is an alias for `EVP_sm4_cfb128`(), implemented as a macro.

With an argument of "sm4" or "SM4", EVP_get_cipherbyname(3) returns `EVP_sm4_cbc`().

# RETURN VALUES

These functions return an EVP_CIPHER structure that provides the implementation of the symmetric cipher.

# SEE ALSO

evp(3), EVP_EncryptInit(3)

# STANDARDS

Information security technology - SM4 block cipher algorithm, National Standards of People's Republic of China, GB/T 32907-2016, August 29, 2016.

# HISTORY

These functions appeared in OpenSSL 1.1.1 and have been available since OpenBSD 6.5.

June 8, 2025 | Debian