xref: /netbsd-src/crypto/external/bsd/openssl/lib/libdes/README (revision 49d46fa3c871a76b2e79b95237192a7724d66dc3)
1*49d46fa3Schristos
2*49d46fa3Schristos		libdes, Version 4.01 10-Jan-97
3*49d46fa3Schristos
4*49d46fa3Schristos		Copyright (c) 1997, Eric Young
5*49d46fa3Schristos			  All rights reserved.
6*49d46fa3Schristos
7*49d46fa3Schristos    This program is free software; you can redistribute it and/or modify
8*49d46fa3Schristos    it under the terms specified in COPYRIGHT.
9*49d46fa3Schristos
10*49d46fa3Schristos--
11*49d46fa3SchristosThe primary ftp site for this library is
12*49d46fa3Schristosftp://ftp.psy.uq.oz.au/pub/Crypto/DES/libdes-x.xx.tar.gz
13*49d46fa3Schristoslibdes is now also shipped with SSLeay.  Primary ftp site of
14*49d46fa3Schristosftp://ftp.psy.uq.oz.au/pub/Crypto/SSL/SSLeay-x.x.x.tar.gz
15*49d46fa3Schristos
16*49d46fa3SchristosThe best way to build this library is to build it as part of SSLeay.
17*49d46fa3Schristos
18*49d46fa3SchristosThis kit builds a DES encryption library and a DES encryption program.
19*49d46fa3SchristosIt supports ecb, cbc, ofb, cfb, triple ecb, triple cbc, triple ofb,
20*49d46fa3Schristostriple cfb, desx, and MIT's pcbc encryption modes and also has a fast
21*49d46fa3Schristosimplementation of crypt(3).
22*49d46fa3SchristosIt contains support routines to read keys from a terminal,
23*49d46fa3Schristosgenerate a random key, generate a key from an arbitrary length string,
24*49d46fa3Schristosread/write encrypted data from/to a file descriptor.
25*49d46fa3Schristos
26*49d46fa3SchristosThe implementation was written so as to conform with the manual entry
27*49d46fa3Schristosfor the des_crypt(3) library routines from MIT's project Athena.
28*49d46fa3Schristos
29*49d46fa3Schristosdestest should be run after compilation to test the des routines.
30*49d46fa3Schristosrpw should be run after compilation to test the read password routines.
31*49d46fa3SchristosThe des program is a replacement for the sun des command.  I believe it
32*49d46fa3Schristosconforms to the sun version.
33*49d46fa3Schristos
34*49d46fa3SchristosThe Imakefile is setup for use in the kerberos distribution.
35*49d46fa3Schristos
36*49d46fa3SchristosThese routines are best compiled with gcc or any other good
37*49d46fa3Schristosoptimising compiler.
38*49d46fa3SchristosJust turn you optimiser up to the highest settings and run destest
39*49d46fa3Schristosafter the build to make sure everything works.
40*49d46fa3Schristos
41*49d46fa3SchristosI believe these routines are close to the fastest and most portable DES
42*49d46fa3Schristosroutines that use small lookup tables (4.5k) that are publicly available.
43*49d46fa3SchristosThe fcrypt routine is faster than ufc's fcrypt (when compiling with
44*49d46fa3Schristosgcc2 -O2) on the sparc 2 (1410 vs 1270) but is not so good on other machines
45*49d46fa3Schristos(on a sun3/260 168 vs 336).  It is a function of CPU on chip cache size.
46*49d46fa3Schristos[ 10-Jan-97 and a function of an incorrect speed testing program in
47*49d46fa3Schristos  ufc which gave much better test figures that reality ].
48*49d46fa3Schristos
49*49d46fa3SchristosIt is worth noting that on sparc and Alpha CPUs, performance of the DES
50*49d46fa3Schristoslibrary can vary by upto %10 due to the positioning of files after application
51*49d46fa3Schristoslinkage.
52*49d46fa3Schristos
53*49d46fa3SchristosEric Young (eay@cryptsoft.com)
54*49d46fa3Schristos
55