# info > EVP_CIPHER-SM4

---
type: CommandReference
command: EVP_CIPHER-SM4
mode: man
section: 7
source: man-pages
---

## Quick Reference
- `EVP_sm4_cbc()` — get cipher object for SM4-CBC
- `EVP_sm4_ecb()` — get cipher object for SM4-ECB
- `EVP_sm4_ctr()` — get cipher object for SM4-CTR
- `EVP_sm4_ofb()` — get cipher object for SM4-OFB
- `EVP_sm4_cfb()` — get cipher object for SM4-CFB

## Name
EVP_CIPHER-SM4 — The SM4 EVP_CIPHER implementations

## Synopsis
Available cipher names (default provider):

- `"SM4-CBC"` or `"SM4"`
- `"SM4-ECB"`
- `"SM4-CTR"`
- `"SM4-OFB"` or `"SM4-OFB128"`
- `"SM4-CFB"` or `"SM4-CFB128"`

## Options
This implementation supports the parameters described in “PARAMETERS” in [EVP_EncryptInit(3)](http://localhost/phpMan.php/man/EVPEncryptInit/3/markdown). No cipher‑specific additional parameters.

## Examples
c
EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
EVP_EncryptInit_ex(ctx, EVP_sm4_cbc(), NULL, key, iv);
EVP_EncryptUpdate(ctx, ciphertext, &len, plaintext, plaintext_len);
EVP_EncryptFinal_ex(ctx, ciphertext + len, &len);
EVP_CIPHER_CTX_free(ctx);
## See Also
- [provider-cipher(7)](http://localhost/phpMan.php/man/provider-cipher/7/markdown)
- [OSSL_PROVIDER-default(7)](http://localhost/phpMan.php/man/OSSLPROVIDER-default/7/markdown)