On Fri, Jul 18, 2014 at 3:02 AM,  <nicolas....@free.fr> wrote:
>
> 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.
>
Hmmm... something does not sound correct.

I was tracing in the context of md_rand (crypto/rand/md_rand.c). When
ssleay_rand_add() or ssleay_rand_bytes() is called, md_rand is mixing
with something. Its clearly not setting `m` to something like
EVP_md5(); rather its using the default implementation discussed in
the docs.

Jeff

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

Reply via email to