Subject: CVS commit: syssrc/sys/crypto
To: None <source-changes@netbsd.org>
From: Thor Lancelot Simon <tls@netbsd.org>
List: source-changes
Date: 09/09/2001 14:03:59
Module Name:	syssrc
Committed By:	tls
Date:		Sun Sep  9 11:03:59 UTC 2001

Added Files:
	syssrc/sys/crypto/blowfish: bf_cbc.c
	syssrc/sys/crypto/des: des_cbc.c des_enc.c

Log Message:
Add asm versions of blowfish and des transforms for i386.

This also involved updating the in-kernel DES functions to correspond
to the versions in our in-tree OpenSSL, because the des_SPtrans table
has changed; the asm code will not work with the old permutation table!

C and i386 asm code for the DES, 3DES, and Blowfish CBC modes is also
included; it is not currently built as the ESP processing in esp_core.c
splits the CBC operation and the cipher transform apart.  Hopefully that
will be fixed as there is a substantial performance improvement to be had
from doing so.  It will remain necessary to use the C version of the
Blowfish CBC function on some i386 machines, however, as the asm version
uses bswapl, which ony 486 and later processors have.  The DES CBC code
doesn't have this problem.

Finally, change esp_core.c to use the ecb3_encrypt function instead of
calling ecb_encrypt three times; this improves performance a bit, in
particular in the asm case.


To generate a diff of this commit:
cvs rdiff -r0 -r1.4 syssrc/sys/crypto/blowfish/bf_cbc.c
cvs rdiff -r0 -r1.4 syssrc/sys/crypto/des/des_cbc.c
cvs rdiff -r0 -r1.1 syssrc/sys/crypto/des/des_enc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.