I'm a little confused about the way Intel AES-NI is supported in OpenSSL
HEAD.
This is just a feature of new CPUs, like SSE is. Yet SSE support is
directly included in the normal assembly routines for x86, while AES-NI
is implemented separately as an engine. Why is that?
Are we slowly moving _all_ the 'special' implementations to engines, and
uncluttering the core implementations? Or are we just being
inconsistent? Or is there some distinction between the two (SSE/AESNI)
that I'm missing, which makes it sensible to treat them differently?
For now, let's at least address the major disadvantage of the engine,
which is that it doesn't even get _used_ unless someone registers it.
diff --git a/crypto/engine/eng_aesni.c b/crypto/engine/eng_aesni.c
index 2a997ca..91fb5b8 100644
--- a/crypto/engine/eng_aesni.c
+++ b/crypto/engine/eng_aesni.c
@@ -106,6 +106,7 @@ void ENGINE_load_aesni (void)
return;
ENGINE_add (toadd);
ENGINE_free (toadd);
+ ENGINE_register_complete (toadd);
ERR_clear_error ();
#endif
}
--
David Woodhouse Open Source Technology Centre
[email protected] Intel Corporation
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [email protected]
Automated List Manager [email protected]