~ubuntu-branches/ubuntu/maverick/openssl/maverick-security

« back to all changes in this revision

Viewing changes to .pc/perl-path.diff/crypto/bf/asm/bf-686.pl

  • Committer: Bazaar Package Importer
  • Author(s): Marc Deslauriers
  • Date: 2010-06-14 09:08:29 UTC
  • mfrom: (11.1.14 sid)
  • Revision ID: james.westby@ubuntu.com-20100614090829-nf3nrftn7ly58mxv
Tags: 0.9.8o-1ubuntu1
* Merge from debian unstable, remaining changes (LP: #581167):
  - debian/patches/Bsymbolic-functions.patch: Link using
    -Bsymbolic-functions
  - Ship documentation in openssl-doc, suggested by the package.
  - Use a different priority for libssl0.9.8/restart-services
    depending on whether a desktop, or server dist-upgrade is being
    performed.
  - Display a system restart required notification bubble on libssl0.9.8
    upgrade.
  - Replace duplicate files in the doc directory with symlinks.
  - Move runtime libraries to /lib, for the benefit of wpasupplicant
  - Use host compiler when cross-building (patch from Neil Williams in
    Debian #465248).
  - Don't run 'make test' when cross-building.
  - Create libssl0.9.8-udeb, for the benefit of wget-udeb (LP: #503339).
  - debian/patches/aesni.patch: Backport Intel AES-NI support from
    http://rt.openssl.org/Ticket/Display.html?id=2067 (LP: #485518).
  - debian/patches/perlpath-quilt.patch: Don't change perl #! paths
    under .pc.
* Dropped patches, now upstream:
  - debian/patches/CVE-2009-3245.patch
  - debian/patches/CVE-2010-0740.patch
  - debian/patches/dtls-compatibility.patch
  - debian/patches/CVE-2009-4355.patch
* Dropped "Add support for lpia".
* Dropped "Disable SSLv2 during compile" as this had never actually
  disabled SSLv2.
* Don't disable CVE-2009-3555.patch for Maverick.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/local/bin/perl
 
2
 
 
3
push(@INC,"perlasm","../../perlasm");
 
4
require "x86asm.pl";
 
5
require "cbc.pl";
 
6
 
 
7
&asm_init($ARGV[0],"bf-686.pl");
 
8
 
 
9
$BF_ROUNDS=16;
 
10
$BF_OFF=($BF_ROUNDS+2)*4;
 
11
$L="ecx";
 
12
$R="edx";
 
13
$P="edi";
 
14
$tot="esi";
 
15
$tmp1="eax";
 
16
$tmp2="ebx";
 
17
$tmp3="ebp";
 
18
 
 
19
&des_encrypt("BF_encrypt",1);
 
20
&des_encrypt("BF_decrypt",0);
 
21
&cbc("BF_cbc_encrypt","BF_encrypt","BF_decrypt",1,4,5,3,-1,-1);
 
22
 
 
23
&asm_finish();
 
24
 
 
25
&file_end();
 
26
 
 
27
sub des_encrypt
 
28
        {
 
29
        local($name,$enc)=@_;
 
30
 
 
31
        &function_begin($name,"");
 
32
 
 
33
        &comment("");
 
34
        &comment("Load the 2 words");
 
35
        &mov("eax",&wparam(0));
 
36
        &mov($L,&DWP(0,"eax","",0));
 
37
        &mov($R,&DWP(4,"eax","",0));
 
38
 
 
39
        &comment("");
 
40
        &comment("P pointer, s and enc flag");
 
41
        &mov($P,&wparam(1));
 
42
 
 
43
        &xor(   $tmp1,  $tmp1);
 
44
        &xor(   $tmp2,  $tmp2);
 
45
 
 
46
        # encrypting part
 
47
 
 
48
        if ($enc)
 
49
                {
 
50
                &xor($L,&DWP(0,$P,"",0));
 
51
                for ($i=0; $i<$BF_ROUNDS; $i+=2)
 
52
                        {
 
53
                        &comment("");
 
54
                        &comment("Round $i");
 
55
                        &BF_ENCRYPT($i+1,$R,$L,$P,$tot,$tmp1,$tmp2,$tmp3);
 
56
 
 
57
                        &comment("");
 
58
                        &comment("Round ".sprintf("%d",$i+1));
 
59
                        &BF_ENCRYPT($i+2,$L,$R,$P,$tot,$tmp1,$tmp2,$tmp3);
 
60
                        }
 
61
                &xor($R,&DWP(($BF_ROUNDS+1)*4,$P,"",0));
 
62
 
 
63
                &mov("eax",&wparam(0));
 
64
                &mov(&DWP(0,"eax","",0),$R);
 
65
                &mov(&DWP(4,"eax","",0),$L);
 
66
                &function_end_A($name);
 
67
                }
 
68
        else
 
69
                {
 
70
                &xor($L,&DWP(($BF_ROUNDS+1)*4,$P,"",0));
 
71
                for ($i=$BF_ROUNDS; $i>0; $i-=2)
 
72
                        {
 
73
                        &comment("");
 
74
                        &comment("Round $i");
 
75
                        &BF_ENCRYPT($i,$R,$L,$P,$tot,$tmp1,$tmp2,$tmp3);
 
76
                        &comment("");
 
77
                        &comment("Round ".sprintf("%d",$i-1));
 
78
                        &BF_ENCRYPT($i-1,$L,$R,$P,$tot,$tmp1,$tmp2,$tmp3);
 
79
                        }
 
80
                &xor($R,&DWP(0,$P,"",0));
 
81
 
 
82
                &mov("eax",&wparam(0));
 
83
                &mov(&DWP(0,"eax","",0),$R);
 
84
                &mov(&DWP(4,"eax","",0),$L);
 
85
                &function_end_A($name);
 
86
                }
 
87
 
 
88
        &function_end_B($name);
 
89
        }
 
90
 
 
91
sub BF_ENCRYPT
 
92
        {
 
93
        local($i,$L,$R,$P,$tot,$tmp1,$tmp2,$tmp3)=@_;
 
94
 
 
95
        &rotr(  $R,             16);
 
96
        &mov(   $tot,           &DWP(&n2a($i*4),$P,"",0));
 
97
 
 
98
        &movb(  &LB($tmp1),     &HB($R));
 
99
        &movb(  &LB($tmp2),     &LB($R));
 
100
 
 
101
        &rotr(  $R,             16);
 
102
        &xor(   $L,             $tot);
 
103
 
 
104
        &mov(   $tot,           &DWP(&n2a($BF_OFF+0x0000),$P,$tmp1,4));
 
105
        &mov(   $tmp3,          &DWP(&n2a($BF_OFF+0x0400),$P,$tmp2,4));
 
106
 
 
107
        &movb(  &LB($tmp1),     &HB($R));
 
108
        &movb(  &LB($tmp2),     &LB($R));
 
109
 
 
110
        &add(   $tot,           $tmp3);
 
111
        &mov(   $tmp1,          &DWP(&n2a($BF_OFF+0x0800),$P,$tmp1,4)); # delay
 
112
 
 
113
        &xor(   $tot,           $tmp1);
 
114
        &mov(   $tmp3,          &DWP(&n2a($BF_OFF+0x0C00),$P,$tmp2,4));
 
115
 
 
116
        &add(   $tot,           $tmp3);
 
117
        &xor(   $tmp1,          $tmp1);
 
118
 
 
119
        &xor(   $L,             $tot);                                  
 
120
        # delay
 
121
        }
 
122
 
 
123
sub n2a
 
124
        {
 
125
        sprintf("%d",$_[0]);
 
126
        }
 
127