EVP_DESX_CBC(3ossl)

πŸ“¦ version 3.5.0, in opensuse-leap 16.0

πŸ’… EVP_DESX_CBC(3ossl) β€” like, the whole OpenSSL manual page, bestie

okay so real talk, this one's called EVP_desx_cbc and it lives in the OpenSSL manual pages (that's the 3ossl bit, iykyk). Sit down, grab a boba, we're learning about a whole cipher together 🫢


✨ NAME ✨

EVP_desx_cbc β€” the EVP DES-X cipher. that's it, that's the name, slay πŸ’…


🌸 SYNOPSIS 🌸

okay so first you gotta let your code know you're about to do cipher things:

#include <openssl/evp.h>

const EVP_CIPHER *EVP_desx_cbc(void);

like literally just that one function call, no drama, no cap ✨


πŸ¦‹ DESCRIPTION πŸ¦‹

So it's the DES-X encryption algorithm, but for EVP (the OpenSSL EVP layer, the main character of cipher-land πŸ‘‘).

Lowkey important deets, bestie β€” read these carefully:

  • all modes below use a key length of 128 bits and act on blocks of 128-bits. literally exactly what it says, no notes πŸ“

πŸ’œ EVP_desx_cbc()

  • The DES-X algorithm, in CBC mode. iconic behaviour fr fr.
  • ⚠️ This algorithm is not provided by the OpenSSL default provider. So if you just call it and expect it to work, it's giving nothing. To actually use it you have to load either the OpenSSL legacy provider or another implementation. no legacy provider, no cipher β€” that's the vibe check 🫠

πŸ’€ performance, unfortunately

Developers should be aware of the negative performance implications of calling this function multiple times 😭 β€” like don't be out here spamming it in a loop, that's not the move.

Instead, consider using EVP_CIPHER_fetch(3) with EVP_CIPHER-DES(7) instead. See "Performance" in crypto(7) for further information β€” go read it, bestie, it's worth the scroll πŸ“–βœ¨


πŸŽ€ RETURN VALUES πŸŽ€

These functions return an EVP_CIPHER structure that contains the implementation of the symmetric cipher. So like, you get the cipher object back πŸ’–

See EVP_CIPHER_meth_new(3) for details of the EVP_CIPHER structure β€” that's where all the lore lives 🧚


πŸ”₯ SEE ALSO πŸ”₯


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, you ate that πŸ“

signing off with love: this was 3.5.0, dated 2026-09-25, straight from the EVP_DESX_CBC(3ossl) manual page. mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from