ports/164795: Add Via Padlock support to security/openssl (patch included)

Stefan Krüger stadtkind2 at gmx.de
Sun Feb 5 12:40:08 UTC 2012


>Number:         164795
>Category:       ports
>Synopsis:       Add Via Padlock support to security/openssl (patch included)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Feb 05 12:40:08 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Stefan Krüger
>Release:        FreeBSD 9.0-REL amd64
>Organization:
>Environment:
...
>Description:
Via Padlock support in OpenSSL is suboptimal at the moment, the attached patch adds some 3rd party openssl patches to enable full support for Via Padlock CPUs:

$ dmesg | grep CPU
CPU: VIA Nano U3300 at 1200MHz (1197.03-MHz K8-class CPU)
$ /usr/local/bin/openssl engine -c -tt
(cryptodev) BSD cryptodev engine
 [RSA, DSA, DH, AES-128-CBC, AES-192-CBC, AES-256-CBC]
     [ available ]
(dynamic) Dynamic engine loading support
     [ unavailable ]
(padlock) VIA PadLock: RNG ACE2 PHE PMM NANO
 [AES-128-ECB, AES-128-CBC, AES-128-CFB, AES-128-OFB, AES-192-ECB, AES-192-CBC, AES-192-CFB, AES-192-OFB, AES-256-ECB, AES-256-CBC, AES-256-CFB, AES-256-OFB, SHA1, DSA, SHA224, SHA256]
     [ available ]
$ /usr/local/bin/openssl speed sha1 sha256 hmac-sha1 -engine padlock
engine "padlock" set.
..
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
sha1             31285.09k    93837.78k   216682.72k   322326.58k   376196.59k
sha256           28490.06k    84352.09k   190977.55k   279109.44k   322914.87k
hmac(sha1)       11233.03k    40204.20k   122229.52k   249804.46k   361585.79k

>How-To-Repeat:
There's no support for Via CPUs's sha1/sha224/sha256/hmac-sha1 in OpenSSL. Running "/usr/local/bin/openssl speed sha1 sha256 hmac-sha1 -engine padlock" will not make use of hw accel.

The third patch (0003-engines-e_padlock-backport-cvs-head-changes.patch) also fixes 64bit issues with newer Via Nano 64bit CPUs.
>Fix:
diff -uNr openssl.orig/Makefile openssl/Makefile
--- openssl.orig/Makefile       2012-02-05 12:05:00.000000000 +0100
+++ openssl/Makefile    2012-02-05 13:04:36.000000000 +0100
@@ -33,6 +33,7 @@
                ZLIB    "Build with zlib compression" on \
                MD2     "Build with MD2 hash (obsolete)" on \
                RC5     "Build with RC5 chipher (patented)" off \
+               PADLOCK "Build with Via Padlock support" off \
                RFC3779 "Build with RFC3779 support" off \
        DTLS_RENEGOTIATION      "Build with DTLS Abbr. renegotiations" off \
        DTLS_HEARTBEAT          "Build with DTLS Heartbeat Extension" off \
@@ -1092,6 +1093,16 @@
 PLIST_SUB+=    WITH_RC5="@comment "
 .endif

+.if defined(WITH_PADLOCK)
+PATCH_DIST_STRIP= -p1
+PATCH_SITES+=  http://git.alpinelinux.org/cgit/aports/plain/main/openssl/:padlock
+PATCHFILES+=   0001-crypto-hmac-support-EVP_MD_CTX_FLAG_ONESHOT-and-set-.patch:padlock \
+       0002-apps-speed-fix-digest-speed-measurement-and-add-hmac.patch:padlock \
+       0003-engines-e_padlock-backport-cvs-head-changes.patch:padlock \
+       0004-engines-e_padlock-implement-sha1-sha224-sha256-accel.patch:padlock \
+       0005-crypto-engine-autoload-padlock-dynamic-engine.patch:padlock
+.endif
+
 .if defined(WITH_GMP)
 EXTRACONFIGURE+=       enable-gmp
 IGNORE=                GMP is LGPLv3 an can not be linked.
diff -uNr openssl.orig/distinfo openssl/distinfo
--- openssl.orig/distinfo       2012-02-05 12:05:00.000000000 +0100
+++ openssl/distinfo    2012-02-05 12:14:48.000000000 +0100
@@ -6,3 +6,13 @@
 SIZE (openssl-1.0.0g/dtls-heartbeats.patch) = 14132
 SHA256 (openssl-1.0.0g/dtls-sctp-24.patch) = 8335423c6f4767b899d923091244ec90cab4aabbd6e557358d04d0daf023001a
 SIZE (openssl-1.0.0g/dtls-sctp-24.patch) = 57229
+SHA256 (openssl-1.0.0g/0001-crypto-hmac-support-EVP_MD_CTX_FLAG_ONESHOT-and-set-.patch) = 7f40edec04115e97ae2c64e77d3324f6083963200add148f9a4dec090c60550b
+SIZE (openssl-1.0.0g/0001-crypto-hmac-support-EVP_MD_CTX_FLAG_ONESHOT-and-set-.patch) = 3089
+SHA256 (openssl-1.0.0g/0002-apps-speed-fix-digest-speed-measurement-and-add-hmac.patch) = 7e00b1e36ea7e00a87c33c095c4d1379f21c6ef8f83a65ab457fd03166f6e0e9
+SIZE (openssl-1.0.0g/0002-apps-speed-fix-digest-speed-measurement-and-add-hmac.patch) = 10561
+SHA256 (openssl-1.0.0g/0003-engines-e_padlock-backport-cvs-head-changes.patch) = cc5e464d7bf8e181bb454de65772366ed90ee91716ecbadaaf2dfda2e080fdc2
+SIZE (openssl-1.0.0g/0003-engines-e_padlock-backport-cvs-head-changes.patch) = 5897
+SHA256 (openssl-1.0.0g/0004-engines-e_padlock-implement-sha1-sha224-sha256-accel.patch) = bff8308f6652c8ddade1dd3261e5519fa3aa1660bea3474fc9996a53382a26b5
+SIZE (openssl-1.0.0g/0004-engines-e_padlock-implement-sha1-sha224-sha256-accel.patch) = 20552
+SHA256 (openssl-1.0.0g/0005-crypto-engine-autoload-padlock-dynamic-engine.patch) = 5a2d80da0f24ae7675f38bdb3227ebe081eaefdfe3ba390acdb5d8dbefa80e93
+SIZE (openssl-1.0.0g/0005-crypto-engine-autoload-padlock-dynamic-engine.patch) = 838

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list