Hi, Actually, there's no default digest. When created, the EVP_MD_CTX struct is initialized to 0, then all pointers are NULL by default, in particular ctx->type. If a a digest was previously used, it can be reused if no EVP_MD is given, otherwise the initialization will fail.
Concerning engine, they work as blackboxes for an algorithm implementation, then their type depend on the algorithm. MD2 is just not included at compilation ----- Mail d'origine ----- De: Jeffrey Walton <noloa...@gmail.com> À: OpenSSL Users List <openssl-users@openssl.org> Envoyé: Fri, 18 Jul 2014 06:04:17 +0200 (CEST) Objet: Default digest implementation? https://www.openssl.org/docs/crypto/EVP_DigestInit.html The doc states the default default digest implementation is used if 'impl' is NULL. The docs also state "OpenSSL 1.0 and later does not include the MD2 digest algorithm in the default configuration...". I found the call to EVP_DigestInit which calls EVP_DigestInit_ex. But I'm getting lost in EVP_DigestInit_ex: if(impl) { ... } else { /* Ask if an ENGINE is reserved for this job */ impl = ENGINE_get_digest_engine(type->type); } I'm having trouble tracking down 'type' used by ENGINE_get_digest_engine. What is the default digest implementation for 1.0 and later? Or where can I find the source file that sets the default? ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager majord...@openssl.org ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager majord...@openssl.org