kcapi_cipher_enc_sm4_cbc - Man Page

Convenience function for SM4 CBC encryption

Synopsis

ssize_t kcapi_cipher_enc_sm4_cbc(const uint8_t * key, uint32_t keylen, const uint8_t * in, size_t inlen, const uint8_t * iv, uint8_t * out, size_t outlen);

Arguments

key

[in] key buffer

keylen

[in] length of key buffer

in

[in] plaintext data buffer

inlen

[in] length of in buffer

iv

[in] IV to be used for cipher operation

out

[out] ciphertext data buffer

outlen

[in] length of out buffer

Description

The convenience function performs an SM4 CBC encryption operation using the provided key, the given input buffer and the given IV​. The output is stored in the out buffer​.

Note, SM4 CBC requires an input data that is a multiple of 16 bytes​. If you have data that is not guaranteed to be multiples of 16 bytes, either add zero bytes at the end of the buffer to pad it up to a multiple of 16 bytes​. Otherwise, the CTR mode encryption operation may be usable​.

The output buffer must be at least as large as the input buffer​.

The IV must be exactly 16 bytes in size​.

The SM4 key is fixed 16 bytes long​.

return number of bytes generated upon success; a negative errno-style error code if an error occurred

Author

Stephan Mueller <​smueller@chronox.de​>

Author.

Info

August 2026 libkcapi Manual 1.5.1 Programming Interface