aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/rc4
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2004-11-26 15:12:17 +0000
committerAndy Polyakov <appro@openssl.org>2004-11-26 15:12:17 +0000
commitbc3e7fabe7f93084d8d93f55bebe20057a0b6970 (patch)
tree2c55eac5ababd587ea42cd730a50c751554ebb2c /crypto/rc4
parentd675c74d14f9e7f7046ee7b383e41868782ab5bd (diff)
downloadopenssl-bc3e7fabe7f93084d8d93f55bebe20057a0b6970.tar.gz
Engage RC4 IA-64 assembler module.
Diffstat (limited to 'crypto/rc4')
-rw-r--r--crypto/rc4/Makefile.ssl3
-rw-r--r--crypto/rc4/rc4.h4
-rw-r--r--crypto/rc4/rc4_enc.c4
-rw-r--r--crypto/rc4/rc4_skey.c4
4 files changed, 15 insertions, 0 deletions
diff --git a/crypto/rc4/Makefile.ssl b/crypto/rc4/Makefile.ssl
index 5878aecf8f..08e411403d 100644
--- a/crypto/rc4/Makefile.ssl
+++ b/crypto/rc4/Makefile.ssl
@@ -65,6 +65,9 @@ rx86-out.s: asm/rc4-586.pl ../perlasm/x86asm.pl
asm/rc4-amd64.s: asm/rc4-amd64.pl; $(PERL) $< $@
+asm/rc4-ia64.s: asm/rc4-ia64.S
+ $(CC) $(CFLAGS) -E asm/rc4-ia64.S > $@
+
files:
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
diff --git a/crypto/rc4/rc4.h b/crypto/rc4/rc4.h
index 7aec04fe93..c24a5b1281 100644
--- a/crypto/rc4/rc4.h
+++ b/crypto/rc4/rc4.h
@@ -72,6 +72,10 @@ typedef struct rc4_key_st
{
RC4_INT x,y;
RC4_INT data[256];
+#if defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
+ /* see crypto/rc4/asm/rc4-ia64.S for further details... */
+ RC4_INT pad[512-256-2];
+#endif
} RC4_KEY;
diff --git a/crypto/rc4/rc4_enc.c b/crypto/rc4/rc4_enc.c
index d5f18a3a70..81a97ea3b7 100644
--- a/crypto/rc4/rc4_enc.c
+++ b/crypto/rc4/rc4_enc.c
@@ -77,6 +77,10 @@ void RC4(RC4_KEY *key, unsigned long len, const unsigned char *indata,
x=key->x;
y=key->y;
d=key->data;
+#if defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
+ /* see crypto/rc4/asm/rc4-ia64.S for further details... */
+ d=(RC4_INT *)(((size_t)(d+255))&~(sizeof(key->data)-1));
+#endif
#if defined(RC4_CHUNK)
/*
diff --git a/crypto/rc4/rc4_skey.c b/crypto/rc4/rc4_skey.c
index 781ff2d8b9..083b53dfb8 100644
--- a/crypto/rc4/rc4_skey.c
+++ b/crypto/rc4/rc4_skey.c
@@ -93,6 +93,10 @@ void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data)
unsigned int i;
d= &(key->data[0]);
+#if defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
+ /* see crypto/rc4/asm/rc4-ia64.S for further details... */
+ d=(RC4_INT *)(((size_t)(d+255))&~(sizeof(key->data)-1));
+#endif
key->x = 0;
key->y = 0;
id1=id2=0;