Print this page
6189743 Need an ARCFOUR implementation optimized for AMD64
@@ -1,12 +1,11 @@
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
@@ -18,18 +17,26 @@
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
-#pragma ident "@(#)arcfour_crypt.c 1.5 05/08/23 SMI"
+#pragma ident "@(#)arcfour_crypt.c 1.6 08/01/02 SMI"
#include "arcfour.h"
+#if defined(__amd64)
+/*
+ * Use hand-tuned, processor-specific assembly version of arcfour_crypt()
+ * for 64-bit x86:
+ */
+#define USE_PSR_VERSION_OF_ARCFOUR_CRYPT
+#endif /* __amd64 */
+
/* Initialize the key stream 'key' using the key value */
void
arcfour_key_init(ARCFour_key *key, uchar_t *keyval, int keyvallen)
{
/* EXPORT DELETE START */
@@ -59,12 +66,13 @@
/* EXPORT DELETE END */
}
+#if !defined(USE_PSR_VERSION_OF_ARCFOUR_CRYPT)
/*
- * Encipher 'in' using 'key.
+ * Encipher 'in' using 'key'.
* in and out can point to the same location
*/
void
arcfour_crypt(ARCFour_key *key, uchar_t *in, uchar_t *out, size_t len)
{
@@ -128,5 +136,6 @@
}
#endif /* sun4u */
/* EXPORT DELETE END */
}
+#endif /* !USE_PSR_VERSION_OF_ARCFOUR_CRYPT */