Date: Thursday, April 12, 2012 @ 15:33:55
  Author: pierre
Revision: 156070

Fix FS#29384

Added:
  openssl/trunk/vpaes.patch
Modified:
  openssl/trunk/PKGBUILD

-------------+
 PKGBUILD    |   10 +++++---
 vpaes.patch |   69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 76 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2012-04-12 18:41:47 UTC (rev 156069)
+++ PKGBUILD    2012-04-12 19:33:55 UTC (rev 156070)
@@ -6,7 +6,7 @@
 # use a pacman compatible version scheme
 # pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}}
 pkgver=$_ver
-pkgrel=2
+pkgrel=3
 pkgdesc='The Open Source toolkit for Secure Sockets Layer and Transport Layer 
Security'
 arch=('i686' 'x86_64')
 url='https://www.openssl.org'
@@ -20,13 +20,15 @@
         'fix-manpages.patch'
         'no-rpath.patch'
         'ca-dir.patch'
-        'disable-tls12-client.patch')
+        'disable-tls12-client.patch'
+        'vpaes.patch')
 md5sums=('134f168bc2a8333f19f81d684841710b'
          'efbe93c11747fed52e60567819409d8a'
          '5bbc0655bda2af95bc8eb568963ce8ba'
          'dc78d3d06baffc16217519242ce92478'
          '3bf51be3a1bbd262be46dc619f92aa90'
-         '26432b9d7af63c63828b6405c9185400')
+         '26432b9d7af63c63828b6405c9185400'
+         '55ad53e8ec3db1db6978af55e3ce1b5d')
 
 build() {
        cd $srcdir/$pkgname-$_ver
@@ -48,6 +50,8 @@
        patch -p0 -i $srcdir/ca-dir.patch
        # workaround for PR#2771
        patch -p1 -i $srcdir/disable-tls12-client.patch
+       # fix for PR#2775
+       patch -p1 -i $srcdir/vpaes.patch
        # mark stack as non-executable: http://bugs.archlinux.org/task/12434
        ./Configure --prefix=/usr --openssldir=/etc/ssl --libdir=lib \
                shared zlib enable-md2 ${optflags} \

Added: vpaes.patch
===================================================================
--- vpaes.patch                         (rev 0)
+++ vpaes.patch 2012-04-12 19:33:55 UTC (rev 156070)
@@ -0,0 +1,69 @@
+Index: openssl/crypto/aes/asm/vpaes-x86.pl
+RCS File: /v/openssl/cvs/openssl/crypto/aes/asm/vpaes-x86.pl,v
+rcsdiff -q -kk '-r1.5.4.4' '-r1.5.4.5' -u 
'/v/openssl/cvs/openssl/crypto/aes/asm/vpaes-x86.pl,v' 2>/dev/null
+--- vpaes-x86.pl       2011/12/15 22:20:26     1.5.4.4
++++ vpaes-x86.pl       2012/03/31 16:55:18     1.5.4.5
+@@ -843,6 +843,8 @@
+       &mov    ($out,&wparam(1));              # out
+       &mov    ($round,&wparam(2));            # len
+       &mov    ($key,&wparam(3));              # key
++      &sub    ($round,16);
++      &jc     (&label("cbc_abort"));
+       &lea    ($base,&DWP(-56,"esp"));
+       &mov    ($const,&wparam(4));            # ivp
+       &and    ($base,-16);
+@@ -853,7 +855,6 @@
+       &mov    (&DWP(48,"esp"),$base);
+ 
+       &mov    (&DWP(0,"esp"),$out);           # save out
+-      &sub    ($round,16);
+       &mov    (&DWP(4,"esp"),$key)            # save key
+       &mov    (&DWP(8,"esp"),$const);         # save ivp
+       &mov    ($out,$round);                  # $out works as $len
+@@ -896,6 +897,7 @@
+       &mov    ($base,&DWP(8,"esp"));          # restore ivp
+       &mov    ("esp",&DWP(48,"esp"));
+       &movdqu (&QWP(0,$base),"xmm1");         # write IV
++&set_label("cbc_abort");
+ &function_end("${PREFIX}_cbc_encrypt");
+ 
+ &asm_finish();
+Index: openssl/crypto/aes/asm/vpaes-x86_64.pl
+RCS File: /v/openssl/cvs/openssl/crypto/aes/asm/vpaes-x86_64.pl,v
+rcsdiff -q -kk '-r1.4.4.2' '-r1.4.4.3' -u 
'/v/openssl/cvs/openssl/crypto/aes/asm/vpaes-x86_64.pl,v' 2>/dev/null
+--- vpaes-x86_64.pl    2011/11/14 21:01:17     1.4.4.2
++++ vpaes-x86_64.pl    2012/03/31 16:55:18     1.4.4.3
+@@ -263,7 +263,7 @@
+       pshufb  %xmm2,  %xmm4   # 4 = sbou
+       pxor    %xmm0,  %xmm4   # 4 = sb1u + k
+       movdqa  0x70(%r10), %xmm0       # 0 : sbot
+-      movdqa  .Lk_sr-.Lk_dsbd(%r11), %xmm2
++      movdqa  -0x160(%r11), %xmm2     # .Lk_sr-.Lk_dsbd=-0x160
+       pshufb  %xmm3,  %xmm0   # 0 = sb1t
+       pxor    %xmm4,  %xmm0   # 0 = A
+       pshufb  %xmm2,  %xmm0
+@@ -869,6 +869,8 @@
+ ___
+ ($len,$key)=($key,$len);
+ $code.=<<___;
++      sub     \$16,$len
++      jc      .Lcbc_abort
+ ___
+ $code.=<<___ if ($win64);
+       lea     -0xb8(%rsp),%rsp
+@@ -887,7 +889,6 @@
+ $code.=<<___;
+       movdqu  ($ivp),%xmm6            # load IV
+       sub     $inp,$out
+-      sub     \$16,$len
+       call    _vpaes_preheat
+       cmp     \$0,${enc}d
+       je      .Lcbc_dec_loop
+@@ -932,6 +933,7 @@
+ .Lcbc_epilogue:
+ ___
+ $code.=<<___;
++.Lcbc_abort:
+       ret
+ .size ${PREFIX}_cbc_encrypt,.-${PREFIX}_cbc_encrypt
+ ___

Reply via email to