speed: Fix execution of EdDSA measurement
Running 'openssl speed eddsa' fails with
Doing 253 bits sign
Ed25519 ops for 10s: EdDSA sign failure
000003FF9306C7D0:error:
030000BC:digital envelope routines:EVP_DigestSign:
final error:crypto/evp/m_sigver.c:585:
-1 253 bits
Ed25519 sign ops in 0.00s
Doing 253 bits verify
Ed25519 ops for 10s: EdDSA verify failure
000003FF9306C7D0:error:
030000BC:digital envelope routines:EVP_DigestVerify:
final error:crypto/evp/m_sigver.c:694:
-1 253 bits
Ed25519 verify ops in 0.00s
This is because the EVP_DigestSign/Verify() calls in the EdDSA_sign/verify_loop()
fail because the context has already been finalized by the previous
EVP_DigestSign/Verify call during the EdDSA signature test done by speed_main().
This happens since commit
3fc2b7d6b8f961144905330dfd4689f5bd515199 where the
EVP_DigestSign/Verify() functions have been changed to set a flag that the
context has been finalized.
Fix this by re-initializing the context using EVP_DigestSign/Verify() in the
EdDSA_sign/verify_loop().
Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21491)
(cherry picked from commit
0c85bcbaeabe3a695831bec44ab87964725a51a6)