EVP_BF_CBC(3SSL)

πŸ’… EVP_BF_CBC β€” the OpenSSL Blowfish cipher moment

okay bestie, we're in the 3SSL section of the OpenSSL manual, and today's main character is EVP_BF_CBC β€” aka the EVP Blowfish cipher. yes, that Blowfish. the smol round boy who will absolutely still serve. let's get into it 🐑✨


🌸 NAME 🌸

EVP_bf_cbc, EVP_bf_cfb, EVP_bf_cfb64, EVP_bf_ecb, EVP_bf_ofb β€” it's giving EVP Blowfish cipher. like, the whole squad. no cap πŸ’–


✨ SYNOPSIS ✨

#include <openssl/evp.h>

const EVP_CIPHER *EVP_bf_cbc(void);
const EVP_CIPHER *EVP_bf_cfb(void);
const EVP_CIPHER *EVP_bf_cfb64(void);
const EVP_CIPHER *EVP_bf_ecb(void);
const EVP_CIPHER *EVP_bf_ofb(void);

five lil functions, all returning a const EVP_CIPHER *, all taking absolutely nothing. low maintenance queens fr fr πŸ‘‘


πŸ¦‹ DESCRIPTION πŸ¦‹

So. The Blowfish encryption algorithm for EVP. that's the whole vibe. that's the assignment. 🐑

It's a variable key length cipher, which is exactly as it sounds β€” the key length isn't locked down to one single number. flexibility, she's iconic πŸ’…

Here's the squad, and what each one is doing:

  • EVP_bf_cbc() β€” Blowfish encryption algorithm in CBC mode
  • EVP_bf_cfb() β€” Blowfish encryption algorithm in CFB mode
  • EVP_bf_cfb64() β€” Blowfish encryption algorithm in CFB mode (the 64 version, bestie)
  • EVP_bf_ecb() β€” Blowfish encryption algorithm in ECB mode
  • EVP_bf_ofb() β€” Blowfish encryption algorithm in OFB mode

respectively. very "each one ate and left no crumbs" of them 🌈


🫢 NOTES 🫢

okay listen. real talk. no cutesy voice for this one because it actually matters:

Developers should be aware of the negative performance implications of calling these functions multiple times. Like, repeatedly. In a loop. You know what you did. πŸ’€

Instead, you should consider using EVP_CIPHER_fetch(3) with EVP_CIPHER-BLOWFISH(7). that's the upgrade arc, bestie.

And if you want the full deets on that, go read "Performance" in crypto(7) for further information. iykyk πŸ“š

not me telling you to stop calling the same function over and over... anyway. consider the fetch route. your perf will thank you πŸ₯²

πŸ”₯ RETURN VALUES πŸ”₯

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

that's it. that's the return. one struct, doing its lil thing, holding the symmetric cipher implementation like it's carrying the whole group project. she's doing her best and honestly? she's doing great 🌸


πŸ‘‘ SEE ALSO πŸ‘‘

go be nosy, bestie, the lore goes deep πŸ¦‹


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


and that's the whole page, angel πŸ’–

this was OpenSSL 4.0.3, dated 2026-09-29, filed under the manual name EVP_BF_CBC(3SSL) β€” go forth, encrypt responsibly, and remember: variable key length, five modes, one absolutely slaying Blowfish. periodt πŸŽ€βœ¨

πŸ“¦ where this page comes from