~andersk/ubuntu/oneiric/openssl/spurious-reboot

« 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): Colin Watson
  • Date: 2011-05-01 23:51:53 UTC
  • mfrom: (11.1.20 sid)
  • Revision ID: james.westby@ubuntu.com-20110501235153-bjcxitndquaezb68
Tags: 1.0.0d-2ubuntu1
* Resynchronise with Debian (LP: #675566).  Remaining changes:
  - debian/libssl1.0.0.postinst:
    + Display a system restart required notification bubble on libssl1.0.0
      upgrade.
    + Use a different priority for libssl1.0.0/restart-services depending
      on whether a desktop, or server dist-upgrade is being performed.
  - debian/{libssl1.0.0-udeb.dirs, control, rules}: Create
    libssl1.0.0-udeb, for the benefit of wget-udeb (no wget-udeb package
    in Debian).
  - debian/{libcrypto1.0.0-udeb.dirs, libssl1.0.0.dirs, libssl1.0.0.files,
    rules}: Move runtime libraries to /lib, for the benefit of
    wpasupplicant.
  - debian/patches/aesni.patch: Backport Intel AES-NI support, now from
    http://rt.openssl.org/Ticket/Display.html?id=2065 rather than the
    0.9.8 variant.
  - debian/patches/Bsymbolic-functions.patch: Link using
    -Bsymbolic-functions.
  - debian/patches/perlpath-quilt.patch: Don't change perl #! paths under
    .pc.
  - debian/rules:
    + Don't run 'make test' when cross-building.
    + Use host compiler when cross-building.  Patch from Neil Williams.
    + Don't build for processors no longer supported: i486, i586 (on
      i386), v8 (on sparc).
    + Fix Makefile to properly clean up libs/ dirs in clean target.
    + Replace duplicate files in the doc directory with symlinks.
* Update architectures affected by Bsymbolic-functions.patch.
* Drop debian/patches/no-sslv2.patch; Debian now adds the 'no-ssl2'
  configure option, which compiles out SSLv2 support entirely, so this is
  no longer needed.
* Drop openssl-doc in favour of the libssl-doc package introduced by
  Debian.  Add Conflicts/Replaces until the next LTS release.

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