EVP_RC5_32_12_16_CBC(3ossl)
π NAME π
okay so bestie, welcome to EVP_RC5_32_12_16_CBC(3ossl) β the OpenSSL manual page for the EVP RC5 cipher π
the whole squad of functions on this page is: EVP_rc5_32_12_16_cbc, EVP_rc5_32_12_16_cfb, EVP_rc5_32_12_16_cfb64, EVP_rc5_32_12_16_ecb, and EVP_rc5_32_12_16_ofb β and they're all literally just the EVP RC5 cipher β¨
β¨ SYNOPSIS β¨
#include <openssl/evp.h>
const EVP_CIPHER *EVP_rc5_32_12_16_cbc(void);
const EVP_CIPHER *EVP_rc5_32_12_16_cfb(void);
const EVP_CIPHER *EVP_rc5_32_12_16_cfb64(void);
const EVP_CIPHER *EVP_rc5_32_12_16_ecb(void);
const EVP_CIPHER *EVP_rc5_32_12_16_ofb(void);
π DESCRIPTION π
it's the RC5 encryption algorithm, but for EVP π«Ά
πΈ the five functions πΈ
EVP_rc5_32_12_16_cbc(),EVP_rc5_32_12_16_cfb(),EVP_rc5_32_12_16_cfb64(),EVP_rc5_32_12_16_ecb(),EVP_rc5_32_12_16_ofb()β these bad boys give you the RC5 encryption algorithm in CBC, CFB, ECB and OFB modes respectively π«
and here's the iconic part: this is a variable key length cipher with an extra "number of rounds" parameter π
- by default the key length is set to 128 bits and 12 rounds β
- you can set alternative key lengths with
EVP_CIPHER_CTX_set_key_length(3)π§ - the maximum key length is 2040 bits π₯
π¦ the rc5-specific ctrls π¦
these are supported too β see EVP_CIPHER_CTX_ctrl(3) for the deets:
EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_SET_RC5_ROUNDS, rounds, NULL)
sets the number of rounds to rounds. no cap, this must be one of RC5_8_ROUNDS, RC5_12_ROUNDS or RC5_16_ROUNDS π
EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_GET_RC5_ROUNDS, 0, &rounds)
stores the number of rounds currently configured in *rounds, where *rounds is an int π
π₯ NOTES π₯
bestie, hear me out β there are negative performance implications of calling these functions multiple times π so maybe consider using EVP_CIPHER_fetch(3) with EVP_CIPHER-RC5(7) instead β¨ see "Performance" in crypto(7) for the full tea β
π RETURN VALUES π
these functions return an EVP_CIPHER structure that contains the implementation of the symmetric cipher π«Ά see EVP_CIPHER_meth_new(3) if you wanna know what's inside that EVP_CIPHER structure π
π§ SEE ALSO π§
π COPYRIGHT π
Copyright 2017-2023 The OpenSSL Project Authors. All Rights Reserved. π
Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html.
okay that's the whole page, mwah π β this was version 3.5.0, dated 2026-09-25, and yes the title is still EVP_RC5_32_12_16_CBC(3ossl) because we don't do name changes around here πβ¨πΈ
π¦ where this page comes from
- opensuse-leap 16.0: openssl-3-doc 3.5.0-160000.11.1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms