~ubuntu-branches/ubuntu/hardy/openssl/hardy-security

« back to all changes in this revision

Viewing changes to crypto/des/asm/desboth.pl

  • Committer: Bazaar Package Importer
  • Author(s): Christoph Martin
  • Date: 2004-05-24 17:02:29 UTC
  • Revision ID: james.westby@ubuntu.com-20040524170229-ixlo08bbbly0xied
Tags: upstream-0.9.7d
ImportĀ upstreamĀ versionĀ 0.9.7d

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/local/bin/perl
 
2
 
 
3
$L="edi";
 
4
$R="esi";
 
5
 
 
6
sub DES_encrypt3
 
7
        {
 
8
        local($name,$enc)=@_;
 
9
 
 
10
        &function_begin_B($name,"");
 
11
        &push("ebx");
 
12
        &mov("ebx",&wparam(0));
 
13
 
 
14
        &push("ebp");
 
15
        &push("esi");
 
16
 
 
17
        &push("edi");
 
18
 
 
19
        &comment("");
 
20
        &comment("Load the data words");
 
21
        &mov($L,&DWP(0,"ebx","",0));
 
22
        &mov($R,&DWP(4,"ebx","",0));
 
23
        &stack_push(3);
 
24
 
 
25
        &comment("");
 
26
        &comment("IP");
 
27
        &IP_new($L,$R,"edx",0);
 
28
 
 
29
        # put them back
 
30
        
 
31
        if ($enc)
 
32
                {
 
33
                &mov(&DWP(4,"ebx","",0),$R);
 
34
                 &mov("eax",&wparam(1));
 
35
                &mov(&DWP(0,"ebx","",0),"edx");
 
36
                 &mov("edi",&wparam(2));
 
37
                 &mov("esi",&wparam(3));
 
38
                }
 
39
        else
 
40
                {
 
41
                &mov(&DWP(4,"ebx","",0),$R);
 
42
                 &mov("esi",&wparam(1));
 
43
                &mov(&DWP(0,"ebx","",0),"edx");
 
44
                 &mov("edi",&wparam(2));
 
45
                 &mov("eax",&wparam(3));
 
46
                }
 
47
        &mov(&swtmp(2), (DWC(($enc)?"1":"0")));
 
48
        &mov(&swtmp(1), "eax");
 
49
        &mov(&swtmp(0), "ebx");
 
50
        &call("DES_encrypt2");
 
51
        &mov(&swtmp(2), (DWC(($enc)?"0":"1")));
 
52
        &mov(&swtmp(1), "edi");
 
53
        &mov(&swtmp(0), "ebx");
 
54
        &call("DES_encrypt2");
 
55
        &mov(&swtmp(2), (DWC(($enc)?"1":"0")));
 
56
        &mov(&swtmp(1), "esi");
 
57
        &mov(&swtmp(0), "ebx");
 
58
        &call("DES_encrypt2");
 
59
 
 
60
        &stack_pop(3);
 
61
        &mov($L,&DWP(0,"ebx","",0));
 
62
        &mov($R,&DWP(4,"ebx","",0));
 
63
 
 
64
        &comment("");
 
65
        &comment("FP");
 
66
        &FP_new($L,$R,"eax",0);
 
67
 
 
68
        &mov(&DWP(0,"ebx","",0),"eax");
 
69
        &mov(&DWP(4,"ebx","",0),$R);
 
70
 
 
71
        &pop("edi");
 
72
        &pop("esi");
 
73
        &pop("ebp");
 
74
        &pop("ebx");
 
75
        &ret();
 
76
        &function_end_B($name);
 
77
        }
 
78
 
 
79