diff options
author | markus <> | 2003-11-18 12:39:05 +0000 |
---|---|---|
committer | markus <> | 2003-11-18 12:39:05 +0000 |
commit | 3cf6590e9b2b978b44c38897634f84fbf167db4f (patch) | |
tree | 7f604b9764cd13753c7602979f5424b7dc97e04b /src/lib/libcrypto/des | |
parent | 56f777457f24d2899caf9b29a79285b5753e3e9b (diff) | |
download | openbsd-3cf6590e9b2b978b44c38897634f84fbf167db4f.tar.gz openbsd-3cf6590e9b2b978b44c38897634f84fbf167db4f.tar.bz2 openbsd-3cf6590e9b2b978b44c38897634f84fbf167db4f.zip |
use bn_asm_vax.S (from netbsd); test + ok by miod
use asm code for i386, except for the CBC code, because
it is not clean PIC code.
add <machime/asm.h> support to x86unix.pl
tested by: nick (on 30386), henning, djm, tedu, jmc and more;
no shlib minor crank necessary, only internal symbols changed.
Diffstat (limited to 'src/lib/libcrypto/des')
-rw-r--r-- | src/lib/libcrypto/des/asm/des-586.pl | 12 | ||||
-rw-r--r-- | src/lib/libcrypto/des/des_enc.c | 2 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/lib/libcrypto/des/asm/des-586.pl b/src/lib/libcrypto/des/asm/des-586.pl index b75d3c6b3a..60d577cc8d 100644 --- a/src/lib/libcrypto/des/asm/des-586.pl +++ b/src/lib/libcrypto/des/asm/des-586.pl | |||
@@ -22,10 +22,14 @@ $R="esi"; | |||
22 | &external_label("DES_SPtrans"); | 22 | &external_label("DES_SPtrans"); |
23 | &DES_encrypt("DES_encrypt1",1); | 23 | &DES_encrypt("DES_encrypt1",1); |
24 | &DES_encrypt("DES_encrypt2",0); | 24 | &DES_encrypt("DES_encrypt2",0); |
25 | &DES_encrypt3("DES_encrypt3",1); | 25 | |
26 | &DES_encrypt3("DES_decrypt3",0); | 26 | if (!$main'openbsd) |
27 | &cbc("DES_ncbc_encrypt","DES_encrypt1","DES_encrypt1",0,4,5,3,5,-1); | 27 | { |
28 | &cbc("DES_ede3_cbc_encrypt","DES_encrypt3","DES_decrypt3",0,6,7,3,4,5); | 28 | &DES_encrypt3("DES_encrypt3",1); |
29 | &DES_encrypt3("DES_decrypt3",0); | ||
30 | &cbc("DES_ncbc_encrypt","DES_encrypt1","DES_encrypt1",0,4,5,3,5,-1); | ||
31 | &cbc("DES_ede3_cbc_encrypt","DES_encrypt3","DES_decrypt3",0,6,7,3,4,5); | ||
32 | } | ||
29 | 33 | ||
30 | &asm_finish(); | 34 | &asm_finish(); |
31 | 35 | ||
diff --git a/src/lib/libcrypto/des/des_enc.c b/src/lib/libcrypto/des/des_enc.c index 1c37ab96d3..4f09804c44 100644 --- a/src/lib/libcrypto/des/des_enc.c +++ b/src/lib/libcrypto/des/des_enc.c | |||
@@ -58,6 +58,7 @@ | |||
58 | 58 | ||
59 | #include "des_locl.h" | 59 | #include "des_locl.h" |
60 | 60 | ||
61 | #ifndef OPENBSD_DES_ASM | ||
61 | void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc) | 62 | void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc) |
62 | { | 63 | { |
63 | register DES_LONG l,r,t,u; | 64 | register DES_LONG l,r,t,u; |
@@ -246,6 +247,7 @@ void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, int enc) | |||
246 | data[1]=ROTATE(r,3)&0xffffffffL; | 247 | data[1]=ROTATE(r,3)&0xffffffffL; |
247 | l=r=t=u=0; | 248 | l=r=t=u=0; |
248 | } | 249 | } |
250 | #endif | ||
249 | 251 | ||
250 | void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1, | 252 | void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1, |
251 | DES_key_schedule *ks2, DES_key_schedule *ks3) | 253 | DES_key_schedule *ks2, DES_key_schedule *ks3) |