On 18. 12. 6., Jung-uk Kim wrote:
> On 18. 12. 6., John Nielsen wrote:
>>> On Dec 6, 2018, at 4:04 PM, Xin LI <delp...@gmail.com> wrote:
>>>
>>> On Thu, Dec 6, 2018 at 11:37 AM John Nielsen <li...@jnielsen.net> wrote:
>>>>
>>>> I have upgraded two physical machines from 11-STABLE to 12-STABLE recently 
>>>> (one is 12.0-PRERELEASE r341380 and the other is 12.0-PRERELEASE r341391). 
>>>> I noticed today that neither machine seems to be utilizing /dev/crypto. 
>>>> Typically I see at least ssh/sshd have the device open plus some programs 
>>>> from ports. But 'fuser' doesn't list any processes on either machine:
>>>>
>>>> # fuser /dev/crypto
>>>> /dev/crypto:
>>>>
>>>> Both machines are running custom kernels that include "device crypto" and 
>>>> "device cryptodev". One of them additionally has "device aesni".
>>>>
>>>> Is anyone else seeing this? Any idea what would cause it?
>>>
>>> Your average OpenSSL applications should not use /dev/crypto, if your
>>> goal is to utilize AES-NI (which does not require /dev/crypto).  On
>>> capable systems, AES-NI would be used automatically (and it's faster
>>> this way).
>>
>> Thanks for the response. Is there a way to verify that AES-NI is being used 
>> for e.g. ssh?
>> I'm also curious why/when/how the change to not use (or support?) 
>> /dev/crypto from base
>> openssl was made.
> 
> OpenSSL 1.1.1 removed the old cryptodev:
> 
> https://svnweb.freebsd.org/base/vendor-crypto/openssl/dist/CHANGES?revision=340690&view=markup#l400
> 
> Instead, OpenSSL added devcrypto engine for Linux:
> 
> https://github.com/openssl/openssl/commit/619eb33
> 
> and added BSD support:
> 
> https://github.com/openssl/openssl/commit/4f79aff
> 
> then, completely removed BSD-specific cryptodev:
> 
> https://github.com/openssl/openssl/commit/f39a550
> 
> However, it is disabled by default.  Theoretically, it is functionally
> equivalent but it wasn't tested much.
> 
> I can enable the new engine on head if many users request it.

FYI, the attached patch should enable the new engine.

Jung-uk Kim
Index: secure/lib/libcrypto/Makefile
===================================================================
--- secure/lib/libcrypto/Makefile	(revision 341666)
+++ secure/lib/libcrypto/Makefile	(working copy)
@@ -192,8 +192,8 @@ SRCS+=	ecp_nistz256-x86.S ecp_nistz256.c
 .endif
 
 # engine
-SRCS+=	eng_all.c eng_cnf.c eng_ctrl.c eng_dyn.c eng_err.c eng_fat.c
-SRCS+=	eng_init.c eng_lib.c eng_list.c eng_openssl.c eng_pkey.c
+SRCS+=	eng_all.c eng_cnf.c eng_ctrl.c eng_devcrypto.c eng_dyn.c eng_err.c
+SRCS+=	eng_fat.c eng_init.c eng_lib.c eng_list.c eng_openssl.c eng_pkey.c
 SRCS+=	eng_rdrand.c eng_table.c tb_asnmth.c tb_cipher.c tb_dh.c tb_digest.c
 SRCS+=	tb_dsa.c tb_eckey.c tb_pkmeth.c tb_rand.c tb_rsa.c
 
Index: secure/lib/libcrypto/opensslconf.h.in
===================================================================
--- secure/lib/libcrypto/opensslconf.h.in	(revision 341666)
+++ secure/lib/libcrypto/opensslconf.h.in	(working copy)
@@ -46,9 +46,6 @@ extern "C" {
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE
 # define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE
 #endif
-#ifndef OPENSSL_NO_DEVCRYPTOENG
-# define OPENSSL_NO_DEVCRYPTOENG
-#endif
 #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128
 # define OPENSSL_NO_EC_NISTP_64_GCC_128
 #endif

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to