openssl/crypto/evp
Viktor Dukhovni babab8e7c9 Avoid fragile aliasing of SHA224/384 update/final
This is purported to save a few cycles, but makes the code less
obvious and more brittle, and in fact breaks on platforms where for
ABI continuity reasons there is a SHA2 implementation in libc, and
so EVP needs to call those to avoid conflicts.

A sufficiently good optimizer could simply generate the same entry
points for:

        foo(...) { ... }
    and
        bar(...) { return foo(...); }

but, even without that, the different is negligible, with the
"winner" varying from run to run (openssl speed -evp sha384):

    Old:
    type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes 16384 bytes
    sha384           28864.28k   117362.62k   266469.21k   483258.03k   635144.87k 649123.16k

    New:
    type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes 16384 bytes
    sha384           30055.18k   120725.98k   272057.26k   482847.40k   634585.09k 650308.27k

Reviewed-by: Rich Salz <rsalz@openssl.org>
2018-02-13 23:27:51 -05:00
..
bio_b64.c Fix invalid function type casts. 2017-12-15 19:33:48 +01:00
bio_enc.c Fix invalid function type casts. 2017-12-15 19:33:48 +01:00
bio_md.c Fix invalid function type casts. 2017-12-15 19:33:48 +01:00
bio_ok.c Fix invalid function type casts. 2017-12-15 19:33:48 +01:00
build.info SM3: restructure to EVP internal and update doc to right location 2017-11-06 07:21:15 +08:00
c_allc.c SM4: Add SM4 block cipher to EVP 2017-10-31 15:19:14 +10:00
c_alld.c SHA512/224 and SHA512/256 2018-01-24 07:09:46 +10:00
cmeth_lib.c
digest.c
e_aes_cbc_hmac_sha1.c
e_aes_cbc_hmac_sha256.c
e_aes.c crypto/evp/e_aes.c: add comments to s390x aes gcm implementation 2018-02-06 19:41:21 +01:00
e_aria.c
e_bf.c
e_camellia.c
e_cast.c
e_chacha20_poly1305.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
e_des3.c
e_des.c
e_idea.c
e_null.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
e_old.c
e_rc2.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
e_rc4_hmac_md5.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
e_rc4.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
e_rc5.c
e_seed.c
e_sm4.c SM4: Add SM4 block cipher to EVP 2017-10-31 15:19:14 +10:00
e_xcbc_d.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
encode.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
evp_cnf.c
evp_enc.c Consistent formatting for sizeof(foo) 2017-12-07 19:11:49 -05:00
evp_err.c Have EVP_PKEY_asn1_find_str() work more like EVP_PKEY_asn1_find() 2018-01-23 20:27:32 +01:00
evp_key.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
evp_lib.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
evp_locl.h
evp_pbe.c
evp_pkey.c
m_md2.c
m_md4.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
m_md5_sha1.c
m_md5.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
m_mdc2.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
m_null.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
m_ripemd.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
m_sha1.c Avoid fragile aliasing of SHA224/384 update/final 2018-02-13 23:27:51 -05:00
m_sha3.c
m_sigver.c
m_wp.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
names.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
p5_crpt2.c Consistent formatting for sizeof(foo) 2017-12-07 19:11:49 -05:00
p5_crpt.c
p_dec.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
p_enc.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
p_lib.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
p_open.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
p_seal.c Remove parentheses of return. 2017-10-18 16:05:06 +01:00
p_sign.c
p_verify.c
pbe_scrypt.c evp/pbe_scrypt.c: add boundary condition for implicit cast. 2017-11-13 10:58:14 +01:00
pmeth_fn.c
pmeth_gn.c Support public key and param check in EVP interface 2017-11-20 07:20:30 +01:00
pmeth_lib.c Support public key and param check in EVP interface 2017-11-20 07:20:30 +01:00