EVP_IDEA_CBC(3ossl)

πŸ’– EVP_IDEA_CBC β€” the OpenSSL manual, but make it make sense πŸ’–

okay bestie, gather round, because we're talking about the <openssl/evp.h> girlies today and this one is so specific. This is page EVP_IDEA_CBC(3ossl) from the OpenSSL manual, and it's all about the IDEA cipher family in EVP. short page, but every single line matters, so let's go 🫢


✨ NAME ✨

EVP_idea_cbc, EVP_idea_cfb, EVP_idea_cfb64, EVP_idea_ecb, EVP_idea_ofb β€” the EVP IDEA cipher, that's the whole vibe πŸ’…


🌸 SYNOPSIS 🌸

first things first, you gotta pull in the header, no cap:

#include <openssl/evp.h>

and then these five little icons, each one returns a const EVP_CIPHER *:

const EVP_CIPHER *EVP_idea_cbc(void);
const EVP_CIPHER *EVP_idea_cfb(void);
const EVP_CIPHER *EVP_idea_cfb64(void);
const EVP_CIPHER *EVP_idea_ecb(void);
const EVP_CIPHER *EVP_idea_ofb(void);

like, no arguments, no drama, just a pointer to a cipher. periodt ✨


πŸ¦‹ DESCRIPTION πŸ¦‹

so the whole point here: this is the IDEA encryption algorithm for EVP. that's it, that's the description, she's concise.

and here's the lineup, one function per mode, fr fr:

  • EVP_idea_cbc(), EVP_idea_cfb(), EVP_idea_cfb64(), EVP_idea_ecb(), EVP_idea_ofb() β€” these hand you the IDEA encryption algorithm in CBC, CFB, ECB and OFB modes respectively. so like: CBC mode, CFB mode, ECB mode, OFB mode. and yes, cfb and cfb64 are both in that list, they're both there, I'm not merging them, do not come for me πŸ™ˆ

πŸ‘‘ NOTES πŸ‘‘

okay this is the part where I have to be the responsible bestie for a sec:

Developers should be aware of the negative performance implications of calling these functions multiple times and should consider using EVP_CIPHER_fetch(3) with EVP_CIPHER-IDEA(7) instead.

so basically: calling these over and over is not it, it's giving performance L. the glow-up move is EVP_CIPHER_fetch(3) paired with EVP_CIPHER-IDEA(7). if you wanna know why, go read "Performance" in crypto(7) β€” it's all laid out there, iykyk πŸ’œ


πŸ’€ RETURN VALUES πŸ’€

these functions return an EVP_CIPHER structure, and inside that structure lives the implementation of the symmetric cipher. if you wanna know what's actually in an EVP_CIPHER structure, the details are in EVP_CIPHER_meth_new(3). she's not mysterious, she's documented πŸ”₯


🌈 SEE ALSO 🌈

the required reading, the syllabus, the group chat links:


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>.

like, actually read the license bestie, it's not decorative πŸ’…


and that's the whole page, we ate, no crumbs left. this was OpenSSL 3.5.9, dated 2026-09-29 β€” so if you're reading this from the future, hey, hope the ciphers are ciphering πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from