EVP_DES_CBC(3ossl)
π EVP_DES_CBC(3ossl) β the DES cipher era, explained β¨
okay so bestie, pull up a chair because we're about to talk about DES and all its lil friends in the OpenSSL world. this is from the 3ossl manual, and honestly? it's giving vintage crypto realness. let's get into it π
πΈ NAME πΈ
okay so there are so many of these functions, and they're all DES-related. here's the full lineup, no cap:
EVP_des_cbc, EVP_des_cfb, EVP_des_cfb1, EVP_des_cfb8, EVP_des_cfb64, EVP_des_ecb, EVP_des_ofb, EVP_des_ede, EVP_des_ede_cbc, EVP_des_ede_cfb, EVP_des_ede_cfb64, EVP_des_ede_ecb, EVP_des_ede_ofb, EVP_des_ede3, EVP_des_ede3_cbc, EVP_des_ede3_cfb, EVP_des_ede3_cfb1, EVP_des_ede3_cfb8, EVP_des_ede3_cfb64, EVP_des_ede3_ecb, EVP_des_ede3_ofb, EVP_des_ede3_wrap
they're all the EVP DES cipher functions. iconic lineup tbh π
β¨ SYNOPSIS β¨
like, here's the vibe of how you call any of these:
#include <openssl/evp.h>
const EVP_CIPHER *EVP_ciphername(void)
and just so we're clear: EVP_ciphername is literally just a placeholder for any of the cipher functions described above, like EVP_des_cbc for example. it's not a real function name, bestie β it's a stand-in. iykyk π«
π¦ DESCRIPTION π¦
so the DES encryption algorithm for EVP β that's the whole vibe of this page. but lemme break down the groups because there are levels to this:
π EVP_des_cbc(), EVP_des_ecb(), EVP_des_cfb(), EVP_des_cfb1(), EVP_des_cfb8(), EVP_des_cfb64(), EVP_des_ofb()
DES in CBC, ECB, CFB with 64-bit shift, CFB with 1-bit shift, CFB with 8-bit shift and OFB modes. that's a whole lotta modes, periodt.
β οΈ okay so this is important: none of these algorithms are provided by the OpenSSL default provider. to use them you literally have to load either the OpenSSL legacy provider or another implementation. no cap, don't skip this step or you'll be confused why nothing works π
π EVP_des_ede(), EVP_des_ede_cbc(), EVP_des_ede_cfb(), EVP_des_ede_cfb64(), EVP_des_ede_ecb(), EVP_des_ede_ofb()
Two key triple DES in ECB, CBC, CFB with 64-bit shift and OFB modes. that's the "ede" girlies β two keys, three operations, slay β¨
π₯ EVP_des_ede3(), EVP_des_ede3_cbc(), EVP_des_ede3_cfb(), EVP_des_ede3_cfb1(), EVP_des_ede3_cfb8(), EVP_des_ede3_cfb64(), EVP_des_ede3_ecb(), EVP_des_ede3_ofb()
Three-key triple DES in ECB, CBC, CFB with 64-bit shift, CFB with 1-bit shift, CFB with 8-bit shift and OFB modes. the "ede3" crew β three keys, maximum DES energy π
π EVP_des_ede3_wrap()
Triple-DES key wrap according to RFC 3217 Section 3. it's giving "i wrap keys for a living" and honestly? we love that for her π«Ά
β NOTES β
bestie, listen β the devs need to know about the negative performance implications of calling these functions multiple times. like, it's not it. they should consider using EVP_CIPHER_fetch(3) with EVP_CIPHER-DES(7) instead. see "Performance" in crypto(7) for the full tea. β
no cap, this is the "don't spam these calls" warning and we respect it π
π« 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 all the details of the EVP_CIPHER structure β that's where the lore lives πβ¨
π SEE ALSO π
the required reading, bestie:
π 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>.
π and that's the whole DES cipher manual, bestie! you ate that reading session fr fr. this page is from OpenSSL version 3.5.0, dated 2026-09-25 β go forth and load that legacy provider like the main character you are ππ
π¦ 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